Navigate to WaytoAGI Wiki →
Home/Question List/Question Detail

Function Calling in AI

Answer

Function Calling 是一种让 AI 模型能够访问特定功能的技术。在 OpenAI 的 ChatGPT 中,通过描述函数并让模型生成符合要求的 JSON 格式参数,实现与外部工具和 API 的连接。这种方法具有以下优点:

  • 提高安全性:减少 SQL 注入风险。
  • 增强可控性:本地控制返回的 JSON 格式,使 AI 输出更可控。
  • 灵活性:可根据实际业务需求选择函数查询或 SQL 查询。

具体流程如下:

  • 开发人员向 gpt-4-0613 和 gpt-3.5-turbo-0613 描述函数。
  • 模型智能地选择输出包含调用函数所需参数的 JSON 对象。
  • 本地根据返回的函数名和参数执行相应操作。

此外,OpenAI 官方提示工程指南中也提到了使用外部工具的策略,包括在请求中传递函数描述列表,使模型根据预定义函数生成参数,并通过 API 返回。函数调用的结果可再次输入模型,形成闭环。

想了解更多关于 Function Calling 的信息,可参考 OpenAI 官网的相关文档和示例。

Content generated by AI large model, please carefully verify (powered by aily)

References

ChatGPT 助力数据分析:实际案例与技巧

可以发现为了让ChatGPT返回符合要求的JSON格式,prompt的定制就尤为重要和复杂。好消息是,在当地时间6月13日,OpenAI发布函数调用及其他API更新。现在开发人员可以向gpt-4-0613和gpt-3.5-turbo-0613描述函数,并让模型智能地选择输出一个包含调用这些函数所需参数的JSON对象。这是一种更可靠地将GPT的能力与外部工具和API连接起来的新方法。传送门:[Function calling and other API updates](https://openai.com/blog/function-calling-and-other-api-updates)官网有很详细的例子,这里就不再描述代码了。我用本文案例总结大致流程:有个好处是不需要让ChatGPT生成SQL了,减少SQL注入的风险。本地写一个函数执行this.app.mysql.select(table,condition),根据GPT返回的函数名、参数(字段和where)来查询数据,更为安全。但这个方法又有局限性,事先定义函数查询不如SQL查询来的灵活,所以这里也可以让函数改为SQL查询this.app.mysql.query(sql),GPT的函数调用改为:getSqlQuery(sql:string),函数名getSqlQuery,参数:sql,更为灵活。总结:让GPT与函数调用结合,本地控制返回JSON格式,prompt的定制更为简单,AI的输出更为可控。根据实际业务需求采用函数查询或SQL查询,值得一试!

OpenAI 官方提示工程指南

Chat Completions API允许在请求中传递函数的描述。这样,模型就可以生成符合这些描述的函数参数。这些参数以JSON格式由API返回,并可以用于执行函数调用。函数调用的结果可以再次输入到模型中,形成一个闭环。这是利用OpenAI模型来执行外部函数调用的推荐方法。想了解更多信息,请参阅我们的入门文本生成指南中的[函数调用部分](https://platform.openai.com/docs/guides/function-calling)和OpenAI Cookbook中的更多[函数调用示例](https://cookbook.openai.com/examples/how_to_call_functions_with_chat_models)。

提示工程: 如何与大型语言模型高效沟通【OpenAI官网翻译】

Chat Completions API允许在请求中传递函数描述列表。这使模型可以根据预定义的函数来生成参数。由API返回的生成的函数参数可以用来执行函数调用。由函数调用提供的输出随后可以在下一个请求中反馈给模型,以完成整个流程。这是使用OpenAI模型调用外部函数的推荐方式。要了解更多信息,请参阅我们的介绍性文本生成指南中的“[函数调用部分](https://www.iaiuse.com/docs/guides/function-calling)”以及OpenAI Cookbook中的更多“[函数调用示例](https://cookbook.openai.com/examples/how_to_call_functions_with_chat_models)”。

Others are asking
如何让企业微信可以接上 AI?让我的企业微信号变成一个 AI 客服
要让企业微信接上 AI 并变成一个 AI 客服,可以参考以下内容: 1. 基于 COW 框架的 ChatBot 实现方案:这是一个基于大模型搭建的 Chat 机器人框架,可以将多模型塞进微信(包括企业微信)里。张梦飞同学写了更适合小白的使用教程,链接为: 。 可以实现打造属于自己的 ChatBot,包括文本对话、文件总结、链接访问、联网搜索、图片识别、AI 画图等功能,以及常用开源插件的安装应用。 正式开始前需要知道:本实现思路需要接入大模型 API 的方式实现(API 单独付费)。 风险与注意事项:微信端因为是非常规使用,会有封号危险,不建议主力微信号接入;只探讨操作步骤,请依法合规使用,大模型生成的内容注意甄别,确保所有操作均符合相关法律法规的要求,禁止将此操作用于任何非法目的,处理敏感或个人隐私数据时注意脱敏,以防任何可能的滥用或泄露。 支持多平台接入,如微信、企业微信、公众号、飞书、钉钉等;多模型选择,如 GPT3.5/GPT4.0/Claude/文心一言/讯飞星火/通义千问/Gemini/GLM4/LinkAI 等等;多消息类型支持,能处理文本、语音和图片,以及基于自有知识库进行定制的企业智能客服功能;多部署方法,如本地运行、服务器运行、Docker 的方式。 2. DIN 配置:先配置 FastGpt、OneAPI,装上 AI 的大脑后,可体验知识库功能并与 AI 对话。新建应用,在知识库菜单新建知识库,上传文件或写入信息,最后将拥有知识库能力的 AI 助手接入微信。
2025-05-09
围棋AI
围棋 AI 领域具有重要的研究价值和突破。在古老的围棋游戏中,AI 面临着巨大挑战,如搜索空间大、棋面评估难等。DeepMind 团队通过提出全新方法,利用价值网络评估棋面优劣,策略网络选择最佳落子,且两个网络以人类高手对弈和 AI 自我博弈数据为基础训练,达到蒙特卡洛树搜索水平,并将其与蒙特卡洛树搜索有机结合,取得了前所未有的突破。在复杂领域 AI 第一次战胜人类的神来之笔 37 步,也预示着在其他复杂领域 AI 与人类智能对比的进一步突破可能。此外,神经网络在处理未知规则方面具有优势,虽然传统方法在处理象棋问题上可行,但对于围棋则困难重重,而神经网络专门应对此类未知规则情况。关于这部分内容,推荐阅读《这就是 ChatGPT》一书,其作者备受推崇,美团技术学院院长刘江老师的导读序也有助于了解 AI 和大语言模型计算路线的发展。
2025-05-08
什么AI工具可以实现提取多个指定网页的更新内容
以下 AI 工具可以实现提取多个指定网页的更新内容: 1. Coze:支持自动采集和手动采集两种方式。自动采集包括从单个页面或批量从指定网站中导入内容,可选择是否自动更新指定页面的内容及更新频率。批量添加网页内容时,输入要批量添加的网页内容的根地址或 sitemap 地址然后单击导入。手动采集需要先安装浏览器扩展程序,标注要采集的内容,内容上传成功率高。 2. AI Share Card:能够一键解析各类网页内容,生成推荐文案,把分享链接转换为精美的二维码分享卡。通过用户浏览器,以浏览器插件形式本地提取网页内容。
2025-05-01
AI文生视频
以下是关于文字生成视频(文生视频)的相关信息: 一些提供文生视频功能的产品: Pika:擅长动画制作,支持视频编辑。 SVD:Stable Diffusion 的插件,可在图片基础上生成视频。 Runway:老牌工具,提供实时涂抹修改视频功能,但收费。 Kaiber:视频转视频 AI,能将原视频转换成各种风格。 Sora:由 OpenAI 开发,可生成长达 1 分钟以上的视频。 更多相关网站可查看:https://www.waytoagi.com/category/38 。 制作 5 秒单镜头文生视频的实操步骤(以梦 AI 为例): 进入平台:打开梦 AI 网站并登录,新用户有积分可免费体验。 输入提示词:涵盖景别、主体、环境、光线、动作、运镜等描述。 选择参数并点击生成:确认提示词无误后,选择模型、画面比例,点击「生成」按钮。 预览与下载:生成完毕后预览视频,满意则下载保存,不理想可调整提示词再试。 视频模型 Sora:OpenAI 发布的首款文生视频模型,能根据文字指令创造逼真且充满想象力的场景,可生成长达 1 分钟的一镜到底超长视频,视频中的人物和镜头具有惊人的一致性和稳定性。
2025-04-20
Ai在设备风控场景的落地
AI 在设备风控场景的落地可以从以下几个方面考虑: 法律法规方面:《促进创新的人工智能监管方法》指出,AI 的发展带来了一系列新的安全风险,如对个人、组织和关键基础设施的风险。在设备风控中,需要关注法律框架是否能充分应对 AI 带来的风险,如数据隐私、公平性等问题。 趋势研究方面:在制造业中,AI Agent 可用于生产决策、设备维护、供应链协调等。例如,在工业设备监控与预防性维护中,Agent 能通过监测传感器数据识别异常模式,提前通知检修,减少停机损失和维修成本。在生产计划、供应链管理、质量控制、协作机器人、仓储物流、产品设计、建筑工程和能源管理等方面,AI Agent 也能发挥重要作用,实现生产的无人化、决策的数据化和响应的实时化。
2025-04-20
ai视频
以下是 4 月 11 日、4 月 9 日和 4 月 14 日的 AI 视频相关资讯汇总: 4 月 11 日: Pika 上线 Pika Twists 能力,可控制修改原视频中的任何角色或物体。 Higgsfield Mix 在图生视频中,结合多种镜头运动预设与视觉特效生成视频。 FantasyTalking 是阿里技术,可制作角色口型同步视频并具有逼真的面部和全身动作。 LAM 开源技术,实现从单张图片快速生成超逼真的 3D 头像,在任何设备上快速渲染实现实时互动聊天。 Krea 演示新工具 Krea Stage,通过图片生成可自由拼装 3D 场景,再实现风格化渲染。 Veo 2 现已通过 Gemini API 向开发者开放。 Freepik 发布视频编辑器。 Pusa 视频生成模型,无缝支持各种视频生成任务(文本/图像/视频到视频)。 4 月 9 日: ACTalker 是多模态驱动的人物说话视频生成。 Viggle 升级 Mic 2.0 能力。 TestTime Training在英伟达协助研究下,可生成完整的 1 分钟视频。 4 月 14 日: 字节发布一款经济高效的视频生成基础模型 Seaweed7B。 可灵的 AI 视频模型可灵 2.0 大师版及 AI 绘图模型可图 2.0 即将上线。
2025-04-20
function calling是什么
Function Calling 是一种在自然语言处理和人工智能模型中的技术和概念。 在金融业务场景中,例如搜索欧元兑美元的当前汇率,使用前需要做好配置,如使用 Gemini 1.5 Flash 模型。 对于 ChatGPT 而言,为了让其返回符合要求的 JSON 格式,prompt 的定制尤为重要和复杂。OpenAI 发布函数调用及其他 API 更新后,开发人员可以向 gpt40613 和 gpt3.5turbo0613 描述函数,并让模型智能地选择输出一个包含调用这些函数所需参数的 JSON 对象,这是将 GPT 的能力与外部工具和 API 连接起来的新方法。例如,本地写函数执行 this.app.mysql.select,使操作更灵活。 对于 OpenAI 的 GPT 模型,Chat completions API 允许在请求中传递一系列函数描述,模型能据此生成函数参数并以 JSON 格式返回,可用于执行函数调用,函数调用的结果还能在后续请求中反馈给模型形成交互循环。想深入了解可查看 GPT 入门指南里的函数调用部分和 OpenAI Cookbook 里的用例。 需要注意的是,模型生成的代码不一定都正确和安全,运行代码前要确保环境安全,最好在沙盒里。
2025-03-26
Function Calling 是什么
Function Calling 是一种在自然语言处理和人工智能领域中的技术和概念。 在金融业务场景中,例如搜索欧元兑美元的当前汇率,使用前需要做好配置,如使用 Gemini 1.5 Flash 模型。 对于 ChatGPT 而言,为了让其返回符合要求的 JSON 格式,prompt 的定制尤为重要和复杂。OpenAI 发布函数调用及其他 API 更新后,开发人员可以向 gpt40613 和 gpt3.5turbo0613 描述函数,并让模型智能地选择输出一个包含调用这些函数所需参数的 JSON 对象,这是将 GPT 的能力与外部工具和 API 连接起来的新方法。例如,本地写函数执行 this.app.mysql.select,这样使得 prompt 的定制更为简单,AI 的输出更为可控。 在 OpenAI 的相关实践中,Chat completions API 允许在请求时附带一系列函数描述,模型可据此产生函数参数,API 以 JSON 格式返回参数用于执行函数调用,函数调用的结果还可反馈给模型形成交互循环。想深入了解可查看 GPT 入门指南里的函数调用部分和 OpenAI Cookbook 里的用例。但需注意,模型生成的代码不一定都正确和安全,使用前要确保环境安全。
2025-03-14
实现一个简单的 function calling agents ,要求小白可以看懂
以下是一个关于实现简单的 function calling agents 的指导,以便小白能够理解: 实现原理: 提示词工程主要由提示词注入和工具结果回传两部分代码组成。提示词注入用于将工具信息及使用工具的提示词添加到系统提示中,它包含 TOOL_EAXMPLE、tools_instructions 和 REUTRN_FORMAT 三个部分。TOOL_EAXMPLE 用于提示 LLM 如何理解和使用工具,编写时应注意用无关紧要的工具作示例避免混淆。tools_instructions 是将通用工具字典转换成 LLM 可读的工具列表,实际使用时可动态调整。REUTRN_FORMAT 定义了调用 API 的格式。工具结果回传阶段利用正则表达式抓取输出中的“tool”和“parameters”参数,对于 interpreter 工具使用另一种正则表达式提取 LLM 输出的代码,通过识别 LLM 返回的调用工具的字典提取对应值传入工具函数,将工具返回结果以 observation 角色返回给 LLM,对于不接受相关角色的 LLM 接口可改为回传给 user 角色。 实现方式的比较与建议: 1. JSON Output:通过 Prompt 方式让模型输出 JSON 格式内容,但 Prompt 麻烦,输出不稳定,串业务成本高。 2. JSON Mode:官方 JSON Output,与 Tools 适用场景不同,JSON mode 为输出 JSON 存在,Tools 为 Call API 存在。 3. 从可控角度推荐 Function Calling 和 Tools 实现: 放弃 JSON mode,模型输出 JSON 仍可能出错,模型厂家对 Function Calling 有微调优化。 降低 System prompt 依赖,能在 Tools 里写的尽量写在里面。 API Response 增强 Prompt,准确率高。 尽量让模型做选择而非填空,减少 token 输出,提高速度和准确率。 利用 Tools 做 Route,构建 Multi Agent,术业有专攻。 此外,在初级菜鸟学习 Langchain 做简单 RAG 方面: 1. 没有用 Langchain 做 table 和 text 的 RAG: Table 表格:包括读入表格 markdown 格式嵌入 template 和直接使用 function call 两种方法。 Text 文字:包括文字相似度检索过程,涉及读入文字、清洗、切分、向量化、计算相似度等步骤。 2. 用 Langchain 做 table 和 text 的 RAG:包括运用 Agent 和 Chain 等方式。 3. 使用 Agent 把文本多种文档组合起来。 相关代码和示例可参考相应的链接。
2025-03-11
function calling 这是什么?
Function Calling 是一种在自然语言处理和人工智能模型中的技术。 在金融业务场景中,例如搜索欧元兑美元的当前汇率,使用前需要做好配置,如使用 Gemini 1.5 Flash 模型。 对于 ChatGPT 而言,为了让其返回符合要求的 JSON 格式,prompt 的定制尤为重要和复杂。OpenAI 发布函数调用及其他 API 更新后,开发人员可以向 gpt40613 和 gpt3.5turbo0613 描述函数,并让模型智能地选择输出一个包含调用这些函数所需参数的 JSON 对象,这是将 GPT 的能力与外部工具和 API 连接起来的新方法。例如,本地写函数执行 this.app.mysql.select。 对于 OpenAI 的 GPT 模型,Chat completions API 允许在请求中传递一系列函数描述,使模型能够根据提供的模式生成函数参数,API 以 JSON 格式返回生成的函数参数,可用于执行函数调用,函数调用的输出还可在后续请求中反馈给模型形成交互循环。想深入了解可查看 GPT 入门指南里的函数调用部分和 OpenAI Cookbook 里的用例。 需要注意的是,模型生成的代码不一定都是正确和安全的,在运行代码前要确保环境安全,最好在沙盒中进行。
2025-03-06
Function Calling
Function Calling 是一种将 AI 模型(如 ChatGPT、谷歌 Gemini 等)的能力与外部工具和 API 连接起来的方法。 对于 ChatGPT: 为让其返回符合要求的 JSON 格式,prompt 的定制重要且复杂。 OpenAI 发布函数调用及其他 API 更新,开发人员可向 gpt40613 和 gpt3.5turbo0613 描述函数,让模型智能输出包含调用函数所需参数的 JSON 对象。 好处是减少 SQL 注入风险,可本地写函数执行查询,也可让函数改为 SQL 查询,使 GPT 与函数调用结合,本地控制返回 JSON 格式,prompt 定制更简单,AI 输出更可控。 对于谷歌 Gemini: 在金融业务用例中,可用于搜索欧元兑美元的当前汇率,使用前需做好配置,如使用 Gemini 1.5 Flash 模型。 函数调用带来多个优势,包括简化用户体验、减少错误发生可能性、为更高级自动化开辟道路,能处理如酒店预订或制定旅行计划等复杂操作,重新定义了人与技术的互动方式。
2025-03-05
Function Calling 是什么
Function Calling 是一种将模型的能力与外部工具和 API 连接起来的方法。 在金融业务场景中,例如搜索欧元兑美元的当前汇率,需要先做好配置,可使用 Gemini 1.5 Flash 模型。 对于 ChatGPT 而言,为了让其返回符合要求的 JSON 格式,prompt 的定制尤为重要和复杂。OpenAI 发布函数调用及其他 API 更新后,开发人员可以向 gpt40613 和 gpt3.5turbo0613 描述函数,并让模型智能地选择输出一个包含调用这些函数所需参数的 JSON 对象。 使用 Function Calling 有好处,如不需要让 ChatGPT 生成 SQL,减少 SQL 注入的风险,本地写函数执行查询数据更为安全。但也有局限性,事先定义函数查询不如 SQL 查询灵活,也可让函数改为 SQL 查询以增加灵活性。 对于 OpenAI 的 GPT 模型,Chat completions API 允许在请求时附带一系列函数描述,使模型能按照提供的格式产生函数参数,API 以 JSON 格式返回参数用于执行函数调用,函数调用的结果还可反馈给模型形成交互循环。想深入了解可查看 GPT 入门指南里的函数调用部分和 OpenAI Cookbook 里的用例。同时要注意模型写的代码不一定都正确和安全,运行前要确保环境安全。
2025-02-23
function call
Function Calling 是一种将 AI 模型(如 ChatGPT、谷歌 Gemini 等)的能力与外部工具和 API 连接起来的方法。 在 ChatGPT 中: 为让 ChatGPT 返回符合要求的 JSON 格式,prompt 的定制重要且复杂。 OpenAI 发布函数调用及其他 API 更新后,开发人员可向 gpt40613 和 gpt3.5turbo0613 描述函数,让模型智能输出包含调用函数所需参数的 JSON 对象。 本地写函数执行查询操作,如 this.app.mysql.select,函数名 getSqlQuery,参数:sql,更灵活。 在谷歌 Gemini 中: 讲解了 Function Calling 是什么及具体用法。 以从事金融业务为例,如搜索欧元兑美元的当前汇率,使用前需做好配置,可使用 Gemini 1.5 Flash 模型。 函数调用带来了多个优势,包括简化用户体验、减少错误发生可能性、为更高级自动化开辟道路,能处理如酒店预订或制定旅行计划等复杂操作,重新定义了人与技术的互动方式。
2025-03-31
如何实现function call
实现 Function Call 主要有以下几种方式和要点: 1. 方式: Json Output:通过 Prompt 让模型输出 JSON 格式内容,但 Prompt 麻烦,输出不稳定,串业务成本高。 Json Mode:官方 Json Output,与 Tools 适用场景不同,JSON mode 为输出 JSON 存在,Tools 为 Call API 存在。 Function Calling 和 Tools:从可控角度推荐使用。 2. 要点: 放弃 JSON mode:模型输出 JSON 仍可能出错,模型厂家对 Function Calling 有微调优化。 降低 System prompt 依赖,化繁为简:System prompt 内容多,不能保证模型遵循,能在 Tools 里写的尽量写在里面。 API Response 增强 Prompt:Tools 调用结果返回给模型时,可增加约束和提示,准确率高。 尽量让模型做选择,而不是填空:将确定答案做成选项,如用 Enum 方式,减少 token 输出,提高速度和准确率。 利用 Tools 来做 Route,构建 Multi Agent:一个不行就增加数量,术业有专攻。 此外,OpenAI 发布函数调用及其他 API 更新,开发人员可向 gpt40613 和 gpt3.5turbo0613 描述函数,让模型智能输出包含调用函数所需参数的 JSON 对象,这是连接 GPT 能力与外部工具和 API 的新方法。例如在本地写函数执行查询,根据 GPT 返回的函数名和参数来操作,也可将函数改为更灵活的 SQL 查询。在实际业务中,可根据需求选择函数查询或 SQL 查询。另外,LangChain 内置的 openapifunction call 也可用于相关开发,实际业务中可能需结合内置业务流程,如判断用户问题是否相关、引导式提问等。
2025-03-19