当前位置: 首页 > news >正文

【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 "抱歉,我没有理解您的问题"

 

http://www.jsqmd.com/news/695798/

相关文章:

  • 高效手机号码定位工具:3分钟实现电话号码地理位置精准查询
  • TailClaude:基于iii引擎与Tailscale的浏览器端Claude Code全功能解决方案
  • XGBoost在macOS上的源码编译与优化指南
  • 保姆级教程:创维E900-S盒子免拆刷机,用ADB命令刷入当贝桌面(附固件包)
  • Qt调试技巧:解决DLL输入点错误指南
  • 嗅觉界面测试标准:面向软件测试从业者的专业指南
  • 专知智库发布全球首个《数字内容资产成熟度认证白皮书》——三维生态模型破解“唯流量论”困境,五级成熟度等级重塑内容价值标尺
  • 低成本智能反射面(IRS)在6G毫米波通信中的设计与性能优化
  • 港科夜闻|香港科大于THE亚洲大学排名2026位列第12位,彰显顶尖亚洲大学地位
  • 2026年雅思集训营排行:写作提升营,出国备考营,口语集训营,名校申请营,听力特训营,封闭训练营,排行一览! - 优质品牌商家
  • Go应用性能监控实战:New Relic集成与gorelic原理详解
  • 避开这3个大坑,你的AIGC自学之路能省下90%时间
  • Claude Agent SDK Demos:从工具调用到智能体架构的实战指南
  • 使用ColumnTransformer优化混合数据预处理
  • 不用C、不用Verilog!用Ada点亮LED,这才是Zynq的“另一种打开方式”
  • 2026年甘肃冷冻库厂家TOP5靠谱排行 适配全场景需求 - 优质品牌商家
  • 如何在按需导入时仅执行目标类的初始化代码
  • Linux线程调度机制解析
  • HotswapAgent与DCEVM:实现Java应用运行时无限类重定义,告别重启开发
  • 2026华中杯数学建模A题完整文章35页+代码分享
  • 2026年3月本味啉供应链哪家性价比高,本味啉供应链价格,改善口感 - 品牌推荐师
  • 基于Odyssey平台构建视觉感知AI模型:模块化设计与工程实践
  • openEuler 22.03 LTS-SP3 多源配置实战:从华为云到清华镜像的切换与优化
  • # [特殊字符] 龍魂·恩师宣言 v1.0 · L-1 师承层(根的根)(我不争不显不露,唯一争此事,无人问津,和认同,我会让这水变了味道)
  • Android应用级虚拟定位实战指南:FakeLocation技术实现与深度应用
  • 梯度提升算法家族:Scikit-Learn、XGBoost、LightGBM与CatBoost对比
  • 告别Ubuntu桌面崩溃!手把手教你用Linux Mint 20.3 Cinnamon打造稳定工作站
  • XGBoost早停法实战:防过拟合与模型优化
  • AI入门数学基础:不用死磕公式,掌握这3点就够了(新手友好)
  • HTML能写样式吗_style属性与内联样式风险【解答】