diff --git a/fastchat/serve/api_provider.py b/fastchat/serve/api_provider.py index 2e967e3ef..dc15c82a6 100644 --- a/fastchat/serve/api_provider.py +++ b/fastchat/serve/api_provider.py @@ -348,6 +348,8 @@ def openai_api_stream_iter( max_tokens=max_new_tokens, stream=False, ) + if not res.choices or res.choices[0].message is None: + return text = res.choices[0].message.content pos = 0 while pos < len(text): diff --git a/fastchat/serve/monitor/classify/label.py b/fastchat/serve/monitor/classify/label.py index fe928a9ba..925167f81 100644 --- a/fastchat/serve/monitor/classify/label.py +++ b/fastchat/serve/monitor/classify/label.py @@ -64,6 +64,8 @@ def chat_completion_openai(model, messages, temperature, max_tokens, api_dict=No max_tokens=max_tokens, # extra_body={"guided_choice": GUIDED_CHOICES} if GUIDED_CHOICES else None, ) + if not completion.choices or completion.choices[0].message is None: + break output = completion.choices[0].message.content # print(output) break @@ -114,6 +116,8 @@ def chat_completion_anthropic(model, messages, temperature, max_tokens, api_dict temperature=temperature, system=sys_msg, ) + if not response.content: + break output = response.content[0].text break except anthropic.APIError as e: diff --git a/fastchat/serve/monitor/criteria_labeling.py b/fastchat/serve/monitor/criteria_labeling.py index b08b030d4..75010a563 100644 --- a/fastchat/serve/monitor/criteria_labeling.py +++ b/fastchat/serve/monitor/criteria_labeling.py @@ -89,6 +89,8 @@ def chat_completion_openai(model, messages, temperature, max_tokens, api_dict=No max_tokens=max_tokens, # extra_body={"guided_choice": GUIDED_CHOICES} if GUIDED_CHOICES else None, ) + if not completion.choices or completion.choices[0].message is None: + break output = completion.choices[0].message.content break except openai.RateLimitError as e: