news 2026/5/13 11:38:46

Function Calling

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Function Calling

文章目录

  • Function Calling在大模型中的作用

Function Calling在大模型中的作用

  • 扩展模型能力
    大模型本身无法直接操作外部系统(如数据库、计算工具),但通过调用预设函数,可以完成:
    实时数据获取(天气、股价、新闻)
    复杂计算(数学运算、代码执行)
    操作外部系统(发送邮件、控制智能设备)
  • 结构化输出
    模型可将用户自然语言请求转化为结构化参数,传递给函数。例如:
    用户说“明天北京天气如何?” → 模型调用 get_weather(location=“北京”, date=“2025-05-06”)
  • 动态决策流程
    模型可根据上下文决定是否/何时调用函数,甚至链式调用多个函数(如先查天气,再推荐穿搭)。

Function Call是大模型与真实世界交互的“桥梁”,从语言理解 => 具体行动

Function Calling与MCP的区别?

Function Calling的优势:

  • 开发快捷:无需配置 MCP Server,直接通过模型 API 调用预定义函数。
  • 低延迟:单次请求-响应,无需协议层开销。

MCP 可能成为主流,但 Function Calling 作为底层能力仍将存在

importrequestsfromhttpimportHTTPStatusimportdashscope# 设置 DashScope API Keydashscope.api_key="sk-**********"# 高德天气 API 的 天气工具定义(JSON 格式)weather_tool={"type":"function","function":{"name":"get_current_weather","description":"Get the current weather in a given location","parameters":{"type":"object","properties":{"location":{"type":"string","description":"The city name, e.g. 北京",},"adcode":{"type":"string","description":"The city code, e.g. 110000 (北京)",}},"required":["location"],},},}defget_weather_from_gaode(location:str,adcode:str=None):"""调用高德地图API查询天气"""gaode_api_key="你的API KEY"# 替换成你的高德API Keybase_url="https://restapi.amap.com/v3/weather/weatherInfo"params={"key":gaode_api_key,"city":adcodeifadcodeelselocation,"extensions":"base",# 可改为 "all" 获取预报}response=requests.get(base_url,params=params)ifresponse.status_code==200:returnresponse.json()else:return{"error":f"Failed to fetch weather:{response.status_code}"}defrun_weather_query():"""使用 Qwen3 + 查询天气"""messages=[{"role":"system","content":"你是一个智能助手,可以查询天气信息。"},{"role":"user","content":"北京现在天气怎么样?"}]response=dashscope.Generation.call(model="qwen-turbo",# 可使用 Qwen3 最新版本messages=messages,tools=[weather_tool],# 传入工具定义tool_choice="auto",# 让模型决定是否调用工具)ifresponse.status_code==HTTPStatus.OK:# 检查是否需要调用工具if"tool_calls"inresponse.output.choices[0].message:tool_call=response.output.choices[0].message.tool_calls[0]iftool_call["function"]["name"]=="get_current_weather":# 解析参数并调用高德APIimportjson args=json.loads(tool_call["function"]["arguments"])location=args.get("location","北京")adcode=args.get("adcode",None)weather_data=get_weather_from_gaode(location,adcode)print(f"查询结果:{weather_data}")else:print(response.output.choices[0].message.content)else:print(f"请求失败:{response.code}-{response.message}")if__name__=="__main__":run_weather_query()
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/13 11:38:24

mysql | 环境变量问题及其配置方法详解

前言 当安装 mysql 环境时,没有选择配置环境变量情况下: 直接打开命令提示符(cmd)窗口运行 mysql 命令,会出现以下报错: ‘mysql’不是内部或外部命令,也不是可运行的程序或批处理文件。如下…

作者头像 李华
网站建设 2026/5/9 21:18:44

能省一点是一点!这2个免费降AI率的工具,降AI效果也很好!

3个实测免费的降AIGC率工具,顺利通过ai率查重! AI 检测本身就没有公开算法,降 AI 工具更像黑箱。如果降AI率连一次免费试用都不给,那风险太大了。万一AI率没有降下来,又不能退,少则几元多则几十。 对于学…

作者头像 李华
网站建设 2026/5/4 14:56:24

基于java的SpringBoot/SSM+Vue+uniapp的心理咨询预约管理的详细设计和实现(源码+lw+部署文档+讲解等)

文章目录 前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus 系统测试系统测试目的系统功能测试系统测试结论 为什么选择我代码参考数据库参考源码获取 前言 🌞博主介绍:✌全网粉丝15W,CSDN特邀作者、211毕业、高…

作者头像 李华
网站建设 2026/5/13 11:38:22

【2025终极测评】10款常见降AI率工具大汇总(含0元免费降AI版本)

💡写论文最怕什么? 不是查重,而是那句——“AI率过高”。 现在越来越多学校查论文降aigc报告。 我当时AI率高达98%,整个人快崩溃。 为了把那篇论文救回来,我实测了10款热门降ai率工具, 有免费的&#xff0c…

作者头像 李华