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

AI中的函数调用是什么?

在现代大模型(比如 ChatGPT)里说的「函数调用」(Function Calling),一般不是指传统编程里的func(),而是指:

让大模型根据自然语言,自动选择并调用你提供的“工具/接口/函数”,再把调用结果融入回答的机制。

也就是说:
用户用中文/英文说一句话 → 模型“看懂需求” → 产出一个要调用哪个函数、传什么参数的结构化结果 → 系统去执行这个函数 → 把执行结果再喂回模型,让它生成最终回答。


核心流程(逻辑图)

  1. 你定义函数(工具)
    • 告诉模型:我有这些工具可以用,每个工具:
      • 名字:比如getWeather
      • 功能描述:比如“根据城市和日期查询天气”
      • 参数结构:比如{"city": "string", "date": "string"}
  2. 用户发自然语言请求
    • 例:“帮我查一下明天上海的天气”
  3. 模型决定是否调用函数
    • 模型会输出一个结构化内容(通常是 JSON),比如:
{"name":"getWeather","arguments":{"city":"上海","date":"2025-12-11"}}

这一步相当于模型在“写代码调用你的接口”,但它只生成“要调用什么 + 参数是什么”,不自己真去访问网络或数据库。
4.你的后端真实执行这个函数
调用你写好的getWeather(city, date)函数 / HTTP 接口 / 数据库查询, 拿到真实结果,比如:

{"city":"上海","date":"2025-12-11","weather":"多云","temp":"8~13℃"}
  1. 把函数结果再给模型,让它组织回答
    • 把这个结果当作“工具返回内容”塞回给模型:
    • 模型基于这个结果,生成面向用户的自然语言答案:

“明天上海多云,气温 8–13℃,建议带件外套。”


为什么要用函数调用?

  • 接入你的业务能力
    大模型本身不能访问你公司数据库、内部 API、设备等,通过函数调用就可以让它“间接”访问。
  • 结构化输出
    比起让模型“随便写一大段文本”,函数调用让它输出严格符合你定义的 JSON 结构,易于程序处理。
  • 更安全可控
    你只暴露有限的工具,模型只能在这些工具范围内调用,避免乱访问不该访问的东西。
  • 让模型具备“行动能力”
    不只是聊天,还能:
    • 查天气、查订单、改数据库、调用机器人、发邮件、执行脚本等。

和传统“让模型直接写文本 API 请求”有啥区别?

  • 传统做法
    让模型直接生成一段 HTTP 请求 / SQL / shell 命令文本,然后你再解析。这会有:
    • 容易语法错误
    • 字段名不精确
    • 安全风险大(比如注入问题)
  • 函数调用
    模型只负责填“结构化参数”,不能随便乱写底层实现,
    你可以严格校验 JSON、限制参数范围,安全性和鲁棒性都更好。

典型使用场景举例

  • 问答 + 数据库检索
    用户:“查一下我 2024 年 10 月的全部订单”
    模型 → 生成对queryOrders(userId, month)的调用参数
    你后端查完订单 → 返回结果 → 模型总结给用户看。
  • 多工具组合
    1. 模型先调用extractCitiesFromText分析用户输入涉及哪些城市
    2. 再对每个城市调用getWeather
    3. 然后整合成一句话给用户。
  • 插件/Agent 系统
    大模型通过函数调用去使用:搜索引擎、地图、支付、日历、邮件、企业内部系统等。

1. 你问我需要“最新、实时、可验证”的信息 → 会用 Web 搜索工具

例如:

  • “帮我查一下昨天 OpenAI 发布了什么”
  • “现在苹果股票多少”
  • “今天纽约天气如何”
  • “最近 GPT 有什么新闻”

这些属于时效性强、必须查外部数据的问题,所以我会调用系统内置的web.run来搜索。


2. 你让我生成或编辑图片 → 会调用 Image Generation 工具

例如:

  • “帮我生成一张 3D UI 风格插画”
  • “把我上传的图片背景改成白色”
  • “做一个像素风的猫咪头像”

这些情况会直接触发image_gen工具。


3. 你让我处理文件、生成文件、运行 Python → 会调用 Python 工具

例如:

  • “帮我把这张表格统计一下”
  • “生成一个带目录的 PDF”
  • “帮我可视化这个 CSV”
  • “处理我上传的 Excel 数据”

这些会触发python_user_visible,用来运行 Python、生成文件或可视化。


4. 你想创建或修改一份文档 / 长代码 → 会自动使用 Canvas 工具

例如:

  • “帮我写一篇博客文章草稿”
  • “帮我生成一个 Next.js 组件文件”
  • “这段代码帮我重构一下”
  • “写一篇报告(可继续修改的那种)”

这会触发canmore来管理文档。


❗️ 注意:这些都属于“内置工具调用”

不是你在 API 里自定义的 JSON function calling。
是 ChatGPT 系统自动调用的工具。


❓ 那哪些情况不会调用工具?

只要问题不需要外部数据、不需要处理文件、不需要生成图片、不需要长文档,我就不会自动使用工具。

例如:

  • “解释一下 RAG 是什么”
  • “React useEffect 为什么会重复执行”
  • “帮我写一段正则”
  • “翻译下面这段话”
  • “改写句子”

这些纯文本处理任务,直接在模型内部完成即可。

你问的问题类型是否触发工具工具
需要实时信息✔️Web Search
图片生成/编辑✔️image_gen
文件处理 / Python 计算✔️python_user_visible
文档/大段代码管理✔️canmore
纯文本思考/解释/翻译不调用工具
我无法确定你的需求直接回答

http://www.gsyq.cn/news/88343.html

相关文章:

  • 收藏!小白到AI大模型专家的完整学习路径(附104G资源包)
  • 2025年成都火锅界黑马盘点,口碑逆袭的竟是它们!烧菜火锅/社区火锅/美食/火锅/特色美食成都火锅品牌口碑推荐 - 品牌推荐师
  • LLaMA Factory微调大模型完整指南:从数据准备到API部署
  • VUE中使用AXIOS包装API代理
  • 2025年年终首创者认证机构推荐:基于权威方法论与千家企业案例的深度评测与2家高可靠性服务商清单 - 十大品牌推荐
  • 市场机会到来时,你的嵌入式软件能否在数周内交付?
  • 聚集搭子社交组局小程序,我们这样开发!
  • 如何选择一家靠谱的GPU服务器供应商?2025年年终最新市场评估与5家专业公司推荐 - 十大品牌推荐
  • CTF比赛必备常用工具,建议收藏!
  • 2025-2026年智慧实验室哪家好?实验室安全智慧系统/控制系统、耗材物资智慧管理系统知名品牌优质供应商推荐 - 品牌推荐大师1
  • 2025年年终首创者认证机构推荐:从方法论严谨性到售后保障的全维度横评,附2家优质服务商深度解析 - 十大品牌推荐
  • 智慧农业新未来:数智赋能如何重塑农业生产模式?
  • 详细介绍:基于React的开源框架Next.js、UmiJS、Ant Design Pro
  • java+vue+SpringBoot文档管理系统(程序+数据库+报告+部署教程+答辩指导)
  • 69、《gawk 编程语言与源代码管理系统入门》
  • 轻松部署Qwen3-4B-FP8模型:从零开始的本地推理实战
  • 合规视角的数据安全与隐私:HIPAA等法规的架构内生化实践
  • 2025年12月企业境外投资备案/odi登记/境外投资备案/odi备案服务商户全面解析:卓信企业登顶 - 2025年11月品牌推荐榜
  • 按照官网适配的版本配置了MindSpore等,还是一直报错
  • Springboot少儿教育网站k5t0n(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。
  • TIA博途虚拟机终极配置指南:V17+V16+V15.1全版本一键部署
  • 大二计算机生的Vue.js高分学习笔记:从课程作业到实习储备
  • 如何高效抓取淘宝直播弹幕数据:完整实战指南
  • 艾体宝干货 |【Redis实用技巧#5】掌握 Redis 与 Kafka,搞定系统设计
  • 如何选择靠谱的市场认证公司?2025年年终最新服务商评估方法论及5家专业机构推荐! - 十大品牌推荐
  • 44、Linux 系统用户与组管理及打印、日志操作全解析
  • 60、深入理解与配置 SSH:安全远程访问的全面指南
  • Flipper Zero NFC技术:5大实战应用场景全解析
  • 领嵌16路RS485/232串口服务器双网口支持4G通信WIFI蓝牙
  • es 集群半数以上master节点掉线解决方法