AI请你喝奶茶?背后其实是Function Calling
Function Calling最近千问“请大家喝奶茶”火了一把这背后是一次真实的接口调用。AI它不是在聊天而是在“调接口[下单系统]”。这种能力就叫Function Calling。当大模型从“生成文本”升级为“调用工具”AI 才真正开始从对话助手变成执行系统。Function Calling的步骤一Function Calling 的完整流程包括以下步骤定义工具tools告诉 AI 你有哪些函数/工具可以调用每个函数的参数是什么第一次调用大模型API[如何调用大模型API]AI 分析用户输入决定是否需要调用函数/工具检查响应如果 AI 返回了tool\_calls说明它想调用函数/工具执行函数/工具根据 AI 的请求执行实际的函数调用第二次调用大模型API将函数/工具执行结果返回给 AIAI 生成最终回复结合函数/工具结果生成用户可读的回答完整示例天气查询工具二2.1 定义工具——调用get_weather API查询天气#定义工具 tools [ { type: function, function:{ name: get_weather, description: 获取指定城市的实时天气信息, parameters:{ type: object, properties: { city: { type: string, description: 城市名称例如北京、上海 }, unit: { type: string, enum: [celsius,fahrenheit], description:温度单位celsius摄氏度或fahrenheit华氏度 } }, required: [city] #city是必填参数 } } } ] print(工具schema已定义) #这里我们自己定义下get_weather工具[实际使用时我们调用天气API] def get_weather(city: str, unit: str celsius) - str: 获取指定城市的天气信息Mock函数实际调用天气API Args: city: 城市名称 unit: 温度单位celsius或fahrenheit Returns: 天气信息的JSON字符串 #模拟天气数据 weather_data { 北京: {temperature: 15, condition: 晴天, humidity: 45}, 上海: {temperature: 20, condition: 多云, humidity: 60}, 深圳: {temperature: 28, condition: 小鱼, humidity: 75}, } #检查城市是否存在于模拟数据中 if city in weather_data: data weather_data[city] if unit fahrenheit: data[temperature] int(data[temperature] * 9/5 32) return json.dumps({ city: city, temperature: data[temperature], unit: unit, condition: data[condition], humidity: data[humidity] }, ensure_ascii False) else: return json.dumps({error: f未找到 {city} 的天气数据}, ensure_ascii False) print(测试天气查询函数:) print(get_weather(北京)) print(get_weather(上海, fahrenheit))2.2 第一次调用大模型APIimport json import os from openai import OpenAI from dotenv import load_dotenv load_dotenv(overrideTrue) client OpenAI( api_key os.getenv(DASHSCOPE_API_KEY), base_url https://dashscope.aliyuncs.com/compatible-mode/v1) #用户提问 user_query 北京现在的天气怎么样 #初始化信息 messages [ {role: system, content: 你是一个友好的天气助手可以查询天气信息。}, {role: user, content: user_query} ] print(f用户: {user_query}\n) #第一次调用让AI决定是否需要调用工具 response client.chat.completions.create( model deepseek-v3.2, messages messages, tools tools, #传递工具定义 tool_choice auto #auto为自动决定 )2.3 检查AI的响应是否想调用函数/工具if response.choices[0].message.tool_calls: print(AI决定调用工具) #提取工具调用信息 tool_call response.choices[0].message.tool_calls[0] function_name tool_call.function.name function_args json.loads(tool_call.function.arguments) print(f 函数名: {function_name}) print(f 参数: {function_args})2.4 执行函数/工具根据 AI 的请求执行实际的函数调用if function_name get_weather: function_result get_weather(**function_args) print(f函数执行结果{function_result}\n)2.5-2.6第二次调用 大模型APIAI生成最终回复#将函数结果添加到消息历史 messages.append(response.choices[0].message) #AI的工具调用请求 messages.append({ role: tool, tool_call_id: tool_call.id, content: function_result }) # 第二次调用让AI根据函数结果生成最终回复 final_response client.chat.completions.create( model deepseek-v3.2, messages messages ) final_answer final_response.choices[0].message.content print(fAI 最终回复{final_answer})2.7 测试如下Function calling的其他应用三这里给大家精心整理了一份全面的AI大模型学习资源包括AI大模型全套学习路线图从入门到实战、精品AI大模型学习书籍手册、视频教程、实战学习、面试题等资料免费分享扫码免费领取全部内容1. 成长路线图学习规划要学习一门新的技术作为新手一定要先学习成长路线图方向不对努力白费。这里我们为新手和想要进一步提升的专业人士准备了一份详细的学习成长路线图和规划。可以说是最科学最系统的学习成长路线。2. 大模型经典PDF书籍书籍和学习文档资料是学习大模型过程中必不可少的我们精选了一系列深入探讨大模型技术的书籍和学习文档它们由领域内的顶尖专家撰写内容全面、深入、详尽为你学习大模型提供坚实的理论基础。书籍含电子版PDF3. 大模型视频教程对于很多自学或者没有基础的同学来说书籍这些纯文字类的学习教材会觉得比较晦涩难以理解因此我们提供了丰富的大模型视频教程以动态、形象的方式展示技术概念帮助你更快、更轻松地掌握核心知识。4. 2026行业报告行业分析主要包括对不同行业的现状、趋势、问题、机会等进行系统地调研和评估以了解哪些行业更适合引入大模型的技术和应用以及在哪些方面可以发挥大模型的优势。5. 大模型项目实战学以致用当你的理论知识积累到一定程度就需要通过项目实战在实际操作中检验和巩固你所学到的知识同时为你找工作和职业发展打下坚实的基础。6. 大模型面试题面试不仅是技术的较量更需要充分的准备。在你已经掌握了大模型技术之后就需要开始准备面试我们将提供精心整理的大模型面试题库涵盖当前面试中可能遇到的各种技术问题让你在面试中游刃有余。7. 资料领取全套内容免费抱走学 AI 不用再找第二份不管你是 0 基础想入门 AI 大模型还是有基础想冲刺大厂、了解行业趋势这份资料都能满足你现在只需按照提示操作就能免费领取扫码免费领取全部内容
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2441075.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!