def get_responses(self, question) :
dialogue = [
{"role": "system", "content": "你是一个家庭智能语音助手,可以控制空调和回答天气,客户如果用英文问,就用英文回答天气,回答问题简洁不失趣味,少于80字,请仅使用纯文本回答,严禁输出任何颜文字、emoji或表情符号。"},
{"role": "user", "content": question},
]
response = self.client.chat.completions.create(
model=self.model_name,
messages=dialogue,
max_tokens=100,
tools = all_tools,
tool_choice = "auto",
)
message = response.choices[0].message
if message.tool_calls :
tool_call = message.tool_calls[0]
if tool_call.function.name == "get_weather_info":
arguments = json.loads(tool_call.function.arguments)
weather_result = get_weather_info(location=arguments["location"])
dialogue.append(message)
dialogue.append({
"role": "tool",
"tool_call_id": tool_call.id,
"content": json.dumps(weather_result, ensure_ascii=False)
})
second_response = self.client.chat.completions.create(
model=self.model_name,
messages=dialogue,
max_tokens=100,
extra_body={"thinking": {"type": "disabled"}}
)
result = second_response.choices[0].message.content
return result if result else "抱歉,我没有理解您的问题"
elif tool_call.function.name == "control_ac":
print("================to function call of AC Control")
print(f"Raw arguments: {tool_call.function.arguments}")
arguments = json.loads(tool_call.function.arguments)
print(f"Parsed arguments: {arguments}")
ac_control_result = control_ac(**arguments)
dialogue.append(message)
dialogue.append({
"role": "tool",
"tool_call_id": tool_call.id,
"content": json.dumps(ac_control_result, ensure_ascii=False)
})
second_response = self.client.chat.completions.create(
model=self.model_name,
messages=dialogue,
max_tokens=100,
extra_body={"thinking": {"type": "disabled"}}
)
result = second_response.choices[0].message.content
return result if result else "抱歉,我没有理解您的问题"
result = message.content
return result if result else "抱歉,我没有理解您的问题"
