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

大模型之Function Calling

大模型本身不太擅长实时信息(比如“现在几点”)、精准计算(比如复杂数学题)这类任务,但Function Calling相当于给它开了个“外挂”:通过调用对应的外部工具(查时间的工具、计算器工具),就能让大模型把这些原本搞不定的问题给解决了。

工作原理

  1. 用户提问后

程序先喊大模型 “看看这问题要不要用工具”;

  1. 大模型判断

如果需要,就说 “用 XX 工具,参数填 XXX”;

  1. 程序跑腿

按照要求去调用工具(比如查天气),拿到结果;

  1. 再喊大模型

把工具结果和原问题一起给大模型,让它整理成回答;

  1. 最后回复用户

哪些大模型支持Function Calling呢,打开阿里云百炼平台看下

硅基流动平台有如下

快速开始

调用阿里云百炼平台云端接口

from openai import OpenAIfrom datetime import datetimeimport jsonimport osimport random # 初始化客户端client = OpenAI( # 用阿里云百炼API Key api_key=os.getenv("DASHSCOPE_API_KEY"), # 平台地址 base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",)# 模拟用户问题USER_QUESTION = "深圳天气咋样"# 定义工具列表tools = [ { "type": "function", "function": { "name": "get_current_weather", "description": "当你想查询指定城市的天气时非常有用。", "parameters": { "type": "object", "properties": { "location": { "type": "string", "description": "城市或县区,比如深圳市等。", } }, "required": ["location"], }, }, },] # 模拟天气查询工具def get_current_weather(arguments): weather_conditions = ["晴天", "多云", "雨天"] random_weather = random.choice(weather_conditions) location = arguments["location"] return f"{location}今天是{random_weather}。" # 封装模型响应函数def get_response(messages): completion = client.chat.completions.create( model="qwen-plus", messages=messages, tools=tools, ) return completion messages = [{"role": "user", "content": USER_QUESTION}]response = get_response(messages)assistant_output = response.choices[0].messageif assistant_output.content is None: assistant_output.content = ""messages.append(assistant_output)# 如果不需要调用工具,直接输出内容if assistant_output.tool_calls is None: print(f"无需调用天气查询工具,直接回复:{assistant_output.content}")else: # 进入工具调用循环 while assistant_output.tool_calls is not None: tool_call = assistant_output.tool_calls[0] tool_call_id = tool_call.id func_name = tool_call.function.name arguments = json.loads(tool_call.function.arguments) print(f"正在调用工具 [{func_name}],参数:{arguments}") # 执行工具 tool_result = get_current_weather(arguments) # 构造工具返回信息 tool_message = { "role": "tool", "tool_call_id": tool_call_id, "content": tool_result, # 保持原始工具输出 } print(f"工具返回:{tool_message['content']}") messages.append(tool_message) # 再次调用模型,获取总结后的自然语言回复 response = get_response(messages) assistant_output = response.choices[0].message if assistant_output.content is None: assistant_output.content = "" messages.append(assistant_output) print(f"助手最终回复:{assistant_output.content}")

运行结果

正在调用工具 [get_current_weather],参数:{'location': '深圳'}工具返回:深圳今天是晴。助手最终回复:深圳今天是晴的天气。

这里给大家精心整理了一份全面的AI大模型学习资源包括:AI大模型全套学习路线图(从入门到实战)、精品AI大模型学习书籍手册、视频教程、实战学习、面试题等,资料免费分享

👇👇扫码免费领取全部内容👇👇

1. 成长路线图&学习规划

要学习一门新的技术,作为新手一定要先学习成长路线图方向不对,努力白费

这里,我们为新手和想要进一步提升的专业人士准备了一份详细的学习成长路线图和规划。可以说是最科学最系统的学习成长路线。

2. 大模型经典PDF书籍

书籍和学习文档资料是学习大模型过程中必不可少的,我们精选了一系列深入探讨大模型技术的书籍和学习文档,它们由领域内的顶尖专家撰写,内容全面、深入、详尽,为你学习大模型提供坚实的理论基础(书籍含电子版PDF)

3. 大模型视频教程

对于很多自学或者没有基础的同学来说,书籍这些纯文字类的学习教材会觉得比较晦涩难以理解,因此,我们提供了丰富的大模型视频教程,以动态、形象的方式展示技术概念,帮助你更快、更轻松地掌握核心知识

4. 2026行业报告

行业分析主要包括对不同行业的现状、趋势、问题、机会等进行系统地调研和评估,以了解哪些行业更适合引入大模型的技术和应用,以及在哪些方面可以发挥大模型的优势。

5. 大模型项目实战

学以致用,当你的理论知识积累到一定程度,就需要通过项目实战,在实际操作中检验和巩固你所学到的知识,同时为你找工作和职业发展打下坚实的基础。

6. 大模型面试题

面试不仅是技术的较量,更需要充分的准备。

在你已经掌握了大模型技术之后,就需要开始准备面试,我们将提供精心整理的大模型面试题库,涵盖当前面试中可能遇到的各种技术问题,让你在面试中游刃有余。

7. 资料领取:全套内容免费抱走,学 AI 不用再找第二份

不管你是 0 基础想入门 AI 大模型,还是有基础想冲刺大厂、了解行业趋势,这份资料都能满足你!
现在只需按照提示操作,就能免费领取:

👇👇扫码免费领取全部内容👇👇

http://www.cnnetsun.cn/news/1627761.html

相关文章:

  • AI辅助开发:在快马平台上构建智能n8n工作流实现自动化客服
  • 深度解析PakePlus云打包:GitHub Token权限配置与安全实践
  • 3步掌控微信聊天记录:让普通用户实现数据备份与隐私保护
  • DrawIO二次开发实战:如何通过修改XML结构实现自定义绘图功能
  • 如何智能获取网络优质内容?6种技术方案深度解析
  • MySQL 主从复制与读写分离:从原理到实战全解析
  • 在Ubuntu 22.04上,除了apt-get,我是这样用Conda优雅管理SageMath环境的
  • 终极指南:如何在Windows上使用APK Installer轻松运行Android应用
  • Hunyuan-MT-7B应用场景:中国—中亚峰会多语同传辅助系统技术实现
  • 3步上手ComfyUI-LTXVideo:让文字和图片动起来的AI视频魔法
  • 广州企业建站公司有哪些服务项目_广州企业建站公司是否提供SEO优化服务
  • ai赋能开发:基于快马智能生成vmware api代码与配置模板
  • 利用快马平台快速搭建comfyui工作流原型,十分钟验证ai绘画创意
  • 3个革命性步骤:抖音音频提取工具让内容创作者效率提升10倍
  • 颠覆式屏幕标注工具ppInk:开启效率革命的开源解决方案
  • 正弦波触发单结晶体管振荡电路
  • Pixel Fashion Atelier部署案例:中小企业低成本GPU算力优化生成方案
  • 3步构建微信聊天记录的数字保险箱:WeChatMsg全方位数据守护指南
  • 避坑指南:SolidWorks2018安装激活全流程(含常见错误修复)
  • MySQL与PostgreSQL:底层架构差异与项目选型指南
  • 手把手解析STM32标准库驱动ST7735S TFT屏:从寄存器配置到图形显示实战
  • Pixel Dream Workshop 结合强化学习进行提示词自动优化
  • 快手直播推流码获取新方案:个人用户如何绕过限制使用OBS推流
  • 快速原型设计:使用快马平台ai一键生成c语言银行系统项目骨架
  • 如何快速配置Windows三指拖动功能:ThreeFingerDragOnWindows完整指南
  • 2025深度评测:MPV_PlayKit突破渲染架构的高清播放性能解决方案
  • PyTorch 2.8通用镜像部署指南:开箱即用支持视频生成与大模型微调
  • Cursor Pro永久免费完整实现指南:突破AI编程助手限制的技术解决方案
  • Java IO API - DOS 文件属性
  • Gcode文件解析与五轴加工中心轨迹优化实践