【AI实战笔记】代码健壮性
    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 "抱歉,我没有理解您的问题"