直达「 通往AGI之路 」飞书知识库 →
首页/问答列表/问答详情

deepseek支持function calling,在dify的agent的prompt里要如何写才能调用工具。我说的是如何写提示词,才能让deepseek通过Function Calling调用工具。

回答

要在 Dify 的 agent 的 prompt 里让 DeepSeek 通过 Function Calling 调用工具,您可以参考以下内容:

  1. 提示词工程主要由提示词注入和工具结果回传两部分代码组成。
    • 提示词注入:将工具信息及使用工具的提示词添加到系统提示中。INSTRUCTION 包含 TOOL_EAXMPLE、tools_instructions、REUTRN_FORMAT 三个部分。TOOL_EAXMPLE 用于提示 LLM 如何理解和使用工具,编写时注意用无关紧要的工具作示例避免混淆。tools_instructions 是将通用工具字典转换成 LLM 可读的工具列表,可动态调整。REUTRN_FORMAT 定义调用 API 的格式。
    • 工具结果回传:利用正则表达式抓取输出中的“tool”和“parameters”参数。对于 interpreter 工具,使用另一种正则表达式提取 LLM 输出的代码。通过识别 LLM 返回的调用工具的字典,提取对应值传入工具函数,将结果以 observation 角色返回给 LLM,对于不接受该角色的 LLM 接口,可改为回传给 user 角色。
  2. 当模型判断需要调用工具函数时,检测到返回的 json 里 function_call 字段不为空,则执行异步函数调用,采用回调方式获取函数返回结果。通过判断返回的 functionCall 的名称执行不同函数并返回结果。
  3. 在大模型请求中,最大的两个变量是 Messages 和 Tools。Messages 里放 sys prompt、memory、user query;Tools 里放能力的 Json Scheme,两者组合形成整个完全的 Prompt。Agent 应用开发的本质是动态 Prompt 拼接,通过工程化手段将业务需求转述成新的 prompt。短期记忆在 messages 里的历史 QA 对,长期记忆是 summary 之后的文本再塞回 system prompt。RAG 是向量相似性检索,可放在 system prompt 里或通过 tools 触发检索。Action 是触发 tool_calls 标记进入请求循环,拿模型生成的请求参数进行 API request,再把结果返回给大模型交互,没有 tool_calls 标记则循环结束。Multi Agents 是更换 system prompt 和 tools。
内容由 AI 大模型生成,请仔细甄别(powered by aily)

参考资料

无需微调,仅用提示词工程就能让 LLM 获得 tool calling 的功能

本文采用的提示词工程主要有两部分代码组成:提示词注入和工具结果回传。提示词注入用于将工具信息以及使用工具的提示词添加到系统提示中。工具结果回传则是解析tool calling的输出,并将工具返回的内容再次嵌入LLM。[heading2]1、提示词注入阶段[content]INSTRUCTION为最后注入到系统提示中的字符串,他又包含了TOOL_EAXMPLE、tools_instructions、REUTRN_FORMAT三个部分。TOOL_EAXMPLE用于提示LLM如何理解tool以及如何使用tool。在编写TOOL_EAXMPLE时,请注意用一些无关紧要的工具作为示例,例如本文使用的将数字加一和数字减一的工具,从而避免LLM混淆真正可以使用的工具与示例工具。tools_instructions是由目前通用的工具字典转换成LLM可读的工具列表。实际使用LLM时,可以通过输入不同的工具来动态调整tools_instructions,让LLM得知目前可用的工具有哪些以及如何使用。REUTRN_FORMAT定义了调用API的格式。[heading2]2、工具结果回传阶段[content]利用正则表达式抓取输出中的"tool"和"parameters"参数。对于interpreter工具,使用了另一种正则表达式来提取LLM输出的代码,提高LLM使用interpreter工具的成功率。本文使用代码如下:通过识别LLM返回的调用工具的字典,提取出对应的值,再传入相应的工具函数,最后将工具返回的结果以observation的角色返回给LLM。对于一些不接受observation、tool、function角色的LLM接口,可以改为回传给user角色,例如:通过以上提示词工程,可以避免微调,让完全没有tool calling能力的LLM获得稳定的tool calling能力。

游戏实操| 利用LLM进行环境叙事和解谜——《Im Here2》

[title]游戏实操|利用LLM进行环境叙事和解谜——《Im Here2》[heading1]三、Demo实现[heading2]3.2提示词设计具体而言,当模型判断需要调用工具函数时,即检测到返回的json里面function_call字段不为空,则执行异步函数调用,这里采用回调的方式以获取函数返回的结果。通过判断返回的functionCall的名称来执行不同的函数,执行逻辑同时返回结果。1.对守卫者和指引者一类具有单一明确任务的代理来说,虽然不同代理负责不同的谜题如一般谜题和世界观谜题,但由于指令结构的存在保持着一定的兼容性,所以只要调试出一个可行的结构,进一步更换谜题和回答正确后提供的线索即可。在这里调试它们的指示预设更像是尝试使它们输出特定的内容,有点像:《完蛋!我被LLM包围了!》,感兴趣的可以试玩一下:[https://huggingface.co/spaces/LLMRiddles/LLMRiddles](https://huggingface.co/spaces/LLMRiddles/LLMRiddles)[https://modelscope.cn/studios/LLMRiddles/LLMRiddles/summary](https://modelscope.cn/studios/LLMRiddles/LLMRiddles/summary)这里举了两个有不同谜题的代理示例,可以试着一段段输入测试查看模型输出的结果,指令预设如下:守卫者1:【角色预设+谜题】

有用Agent产品开发踩坑及思考

其实只要看过官方文档的应该都能知道,大模型请求中,最大的两个变量:Messages和Tools。Messages里面放的是sys prompt,memory,user query;Tools里面放的是一些能力的Json Scheme;而这两者组合在一起,就形成整个完全的Prompt。所以Agent应用开发的本质是什么?动态Prompt拼接。通过工程化的手段,不断把业务需求转述成新的prompt。短期记忆:messages里的历史QA对;长期记忆:summary之后的本文,再塞回system prompt;RAG是啥?向量相似性检索,然后放在system prompt里或者通过tools触发检索Action:触发tool_calls标记,进入请求循环,拿模型生成的请求参数进行API request,再把结果返回给大模型进行交互;没有tool_calls标记了,循环结束。对应页面上就是对话一轮对话结束。Multi Agents是啥?把system prompt和tools换一换,A就变成B了。还有啥?没了呀,本质就是这些东西。当然,这也就是最基本的原理,想做深,做好,肯定还有很多坑需要踩。

其他人在问
deepseek支持function calling,在dify的agent的prompt里要如何写才能调用工具
在 Dify 的 agent 的 prompt 中实现调用工具的方法如下: 1. 提示词注入阶段: INSTRUCTION 为注入到系统提示中的字符串,包含 TOOL_EAXMPLE、tools_instructions、REUTRN_FORMAT 三个部分。 TOOL_EAXMPLE 用于提示 LLM 如何理解和使用工具,编写时应使用无关紧要的工具作为示例,避免 LLM 混淆。 tools_instructions 是将通用的工具字典转换成 LLM 可读的工具列表,实际使用时可动态调整。 REUTRN_FORMAT 定义了调用 API 的格式。 2. 工具结果回传阶段: 利用正则表达式抓取输出中的“tool”和“parameters”参数。 对于 interpreter 工具,使用另一种正则表达式提取 LLM 输出的代码,提高使用成功率。 通过识别 LLM 返回的调用工具的字典,提取对应的值,传入相应的工具函数,将工具返回的结果以 observation 的角色返回给 LLM。对于不接受该角色的 LLM 接口,可改为回传给 user 角色。 此外,当模型判断需要调用工具函数时,即检测到返回的 json 里面 function_call 字段不为空,则执行异步函数调用,可通过判断返回的 functionCall 的名称来执行不同的函数并返回结果。 在提升可控性方面,有以下建议: 1. 放弃 JSON mode,虽然模型能力提升能输出 JSON,但仍会出错,且不能保证 100%正确,而模型厂家对 Function Calling 有微调优化。 2. 降低 System prompt 依赖,化繁为简,能在 Tools 里写的东西尽量写在里面。 3. API Response 增强 Prompt,这一步的准确率很高,可增加给大模型的约束和提示。 4. 尽量让模型做选择,而不是填空,减少 token 输出,提高速度和准确率。 5. 利用 Tools 来做 Route,构建 Multi Agent,术业有专攻。
2024-10-24
deepseek支持function calling,prompt里要如何写才能调用工具。
要在 DeepSeek 中通过提示词实现工具调用,主要通过以下提示词工程实现: 1. 实现原理: 提示词工程主要由提示词注入和工具结果回传两部分代码组成。提示词注入将工具信息及使用提示词添加到系统提示中,工具结果回传则解析工具调用的输出,并将返回内容嵌入 LLM。 2. 提示词注入阶段: INSTRUCTION 为注入到系统提示中的字符串,包含 TOOL_EAXMPLE、tools_instructions、REUTRN_FORMAT 三个部分。TOOL_EAXMPLE 用于提示 LLM 理解和使用工具,编写时应使用无关紧要的工具作示例避免混淆。tools_instructions 是将通用工具字典转换为 LLM 可读的工具列表,实际使用时可动态调整。REUTRN_FORMAT 定义了调用 API 的格式。 3. 工具结果回传阶段: 利用正则表达式抓取输出中的“tool”和“parameters”参数。对于 interpreter 工具,使用另一种正则表达式提取 LLM 输出的代码以提高成功率。通过识别 LLM 返回的调用工具字典,提取对应值传入工具函数,将结果以 observation 角色返回给 LLM,对于不接受该角色的 LLM 接口,可改为回传给 user 角色。 在游戏实操中,当模型判断需要调用工具函数时(检测到返回的 json 里 function_call 字段不为空),执行异步函数调用,采用回调方式获取函数返回结果,通过判断返回的 functionCall 名称执行不同函数并返回结果。 对于 ChatGPT,为让其返回符合要求的 JSON 格式,prompt 的定制尤为重要和复杂。OpenAI 发布函数调用及其他 API 更新后,开发人员可向 gpt40613 和 gpt3.5turbo0613 描述函数,让模型智能输出包含调用函数所需参数的 JSON 对象。本地可根据 GPT 返回的函数名、参数进行数据查询,可采用函数查询或 SQL 查询,根据实际业务需求选择,使 AI 输出更可控。
2024-10-24
deepseek支持function calling吗
DeepSeek API 支持 Function Calling 功能。这项功能允许模型调用外部工具以增强其能力。例如,可以使用 Function Calling 获取用户所在地点的当前天气信息。具体的 API 格式可以在 DeepSeek API 的 Chat Completion 文档中找到示例和详细信息 。 此外,DeepSeek API 最近更新了,其中包括了对 Function Calling 的支持。更新的接口 `/chat/completions` 现在支持 JSON 输出、Function Calling、对话前缀续写(Beta)、8K 最长输出(Beta),并且新增了 `/completions` 接口,其中包括 FIM 补全(Beta)。所有这些新功能都可以使用 `deepseekchat` 和 `deepseekcoder` 模型调用 。
2024-08-05
openai的接口怎么调用,提示词怎么写
以下是关于 OpenAI 接口调用和提示词编写的相关知识: OpenAI 接口调用: OpenAI API 可应用于众多涉及生成自然语言、代码或图像的任务。提供了不同能力级别的模型,适用于不同任务,还能微调自定义模型。这些模型可用于内容生成、语义搜索、分类等众多领域。 提示词编写: 1. 设计提示词本质上是对模型进行“编程”,通常通过提供指令或示例完成,与多数专为单个任务设计的 NLP 服务不同,补全和聊天补全几乎可用于任何任务,如内容或代码生成、摘要、扩展、对话、创意写作、风格转换等。 2. 遵循最简化原则: 不需要包含作者信息,如“author”“version”等不相关信息。 避免分类错误,将输出错误分类到目标中,如“提供改进建议,以及改进原因”和“对用户的 Prompt 进行评分 1~10 分,10 分为满分”应明确区分。 注意拼写正确,如“Constraints”的正确拼写。 常见的限制条件包括内容长度限制、内容类型限制、逻辑和一致性限制、风格和语调限制。 避免无意义或重复的描述,如“理解中文语义”“评估和打分文本质量”“提供文本改进建议”等。 注意 Markdown 格式的正确使用,如“ Profile: Goals:”的结构错误,应将 Goals 放到“ Role”层级下面。 在给定的 API 请求中处理的 Token 数量取决于输入和输出长度。对于英文文本,1 个 Token 大约相当于 4 个字符或 0.75 个单词。您的文本提示词和生成的补合起来不能超过模型的最大上下文长度(对于大多数模型,这是 2048 个 Token,或大约 1500 个单词)。可以查看 OpenAI 的分词器工具来了解有关文本如何转换为 Token 的更多信息。
2024-10-17
在外层bot,能100%调用工作流的方法
在外层 bot 中封装工作流的步骤如下: 1. 点击「发布」发布工作流后,创建一个 bot。 2. 填写 Bot 介绍。 3. 切换 Bot 模式为“单 Agent(工作流模式)”,因为此 Agent 只需在输入英文文章时返回精读结果,无需外层 bot 对输入进行其他任务理解,可直接调用工作流。 4. 将配置好的工作流添加到 Bot 中。 5. 填写开场白,引导用户使用,并附上开场白文案。 6. 关闭开场白预置问题,因为使用流程中用不到。 完成封装后,可在「预览与调试」区进行最终体验与调试。如果一切正常,就能获得成功结果。但在发布文章时,外层 bot 可能存在未知 bug,同一段 USER_INPUT 在工作流编辑面板中试运行正常,但在外层 bot 运行时可能报错。暂时无法确定原因,猜测可能是外层 bot 的并发不够稳定,此时可直接在工作流编辑面板中获取精度结果。若自行实验时多次报错且无法定位原因,不要急于怪自己,作者已将相关 bug 提交给 Coze 团队,期待优化。 另外,您还可以为 Bot 设置触发器(Triggers),使 Bot 在特定时间或接收到特定事件时自动执行任务。可配置的触发器类型有定时触发、事件触发。定时触发让 Bot 在指定时间执行任务,无需编写代码;事件触发的触发器会生成 Webhook URL,当服务端向其发送 HTTPS 请求时触发任务执行。 触发器触发时的执行任务方式有 Bot 提示词、调用插件、调用工作流。Bot 提示词需通过自然语言设置提示词,触发时提示词自动发送给 Bot,Bot 根据提示词向用户发送提醒消息;调用插件需为触发器添加一个插件,触发时 Bot 调用插件获取返回结果并发送给用户;调用工作流需为触发器添加一个工作流,若工作流有输入参数则需传入参数值,触发时 Bot 调用工作流获取返回结果并发送给用户。 此外,Coze 支持用户在与 Bot 聊天时设置定时任务,当用户在会话内点击推荐任务后,Bot 将会确认并创建定时任务。需要注意的是,一个 Bot 内的触发器最多可添加 10 个,且触发器仅当 Bot 发布飞书时生效。
2024-10-10
现在的大模型应用都没有记忆能力需要在每次调用时输入上下文?
目前的大模型应用本质上通常没有直接的记忆功能。以 ChatGPT 为例,它能理解用户的交流内容并非因为自身具备记忆能力,而是每次将之前的对话内容作为新的输入重新处理。这种记忆功能实际上是通过在别处进行存储来实现的。 对于大模型的工作原理,在回复时是一个字一个字地推理生成内容,会根据输入的上下文来推测下一个字。但大模型的学习数据规模庞大,若每次计算都带入全量数据,算力难以承受,且仅算字的概率容易受不相干信息干扰,词向量机制和 transformer 模型中的 attention 自注意力机制解决了这些难题。 另外,系统的内存是大模型的上下文窗口,如 Google Gemini 1.5 Pro 实验版已将其提升到一千万。但窗口越大推理越慢,且模型可能失焦降低准确度,研发团队需平衡吞吐量、速度和准确度。在模型外,操作系统的其他部件如文件系统能让模型具备无限记忆的能力,而大模型应用领域常用的方法如 RAG 能让模型用自定义数据生成结果,处理无尽的私有数据。
2024-10-08
如何在coze中调用bot商店中未公开配置的bot?
在 Coze 中调用 bot 商店中未公开配置的 bot,您可以参考以下步骤: 1. 访问。 2. 在页面的搜索框中,输入您想要的 bot 名称,然后单击展示的相应 bot。 3. 您会被引导至该 bot 的编排页面,编排页面分为以下 4 个区域: 顶部区域:显示 bot 所用的大型语言模型。 人设与回复逻辑区域:设置 bot 的人物设定与回复逻辑。 技能区域:展示 bot 配置的功能,例如插件、工作流、开场白等。 预览与调试区域:展示与 bot 交互的运行结果。 4. 在预览与调试区域中发送一条消息,查看 bot 的回复效果。 此外,如果您想复制一个预置的 bot 在此基础上进行修改来创建自己的 bot,可以按照以下步骤操作: 1. 访问,单击目标 bot。 2. 在 bot 的编排页面右上角,单击创建副本。 3. 在弹出的对话框中,设置 bot 名称、选择 bot 的所属团队,然后单击确定。 4. 您可以在新打开的配置页面修改复制的 bot 配置。 在人设与回复逻辑区域,调整 bot 的角色特征和技能。您可以单击优化使用 AI 帮您优化 bot 的提示词,以便大模型更好的理解。 在技能区域,为 bot 配置插件、工作流、知识库等信息。 5. 在预览与调试区域,给 bot 发送消息,测试 bot 效果。 6. 当您完成调试后,可单击发布将 bot 发布到社交应用中,在应用中使用 bot。 另外,关于 API 授权,然后再点击右上角发布,这里会发现多了一个 Bot as API,意思就是自己定义的 API 发布取到了。勾选 Bot as API 并确定应用已经成功授权 Bot as API 。创建了一个机器人、这个机器人是画小二的(令牌),画小二下面有很多个应用,您想调用的是“画小二智能小助手(Bot ID)”。
2024-09-26
有什么生成海报或者图生图的AI应用工具
以下是一些生成海报或者图生图的 AI 应用工具: 用于工作中出图的有:Labzen、龙飞等。 用于电商应用出图的有:薄荷、刘燕兰等。 用于广告出图的有:朱鹏等。 以下是一些推荐的 AI 海报生成工具: Canva(可画):https://www.canva.cn/ 是一个受欢迎的在线设计工具,提供大量模板和设计元素,AI 功能可帮助选择合适颜色搭配和字体样式。 稿定设计:https://www.gaoding.com/ 稿定智能设计工具采用先进人工智能技术,自动分析和生成设计方案。 VistaCreate:https://create.vista.com/ 是简单易用的设计平台,提供大量设计模板和元素,用户可用 AI 工具创建个性化海报,智能建议功能可帮助快速找到合适设计元素。 Microsoft Designer:https://designer.microsoft.com/ 通过简单拖放界面,可快速创建演示文稿、社交媒体帖子等视觉内容,还集成丰富模板库和自动图像编辑功能。 以下是一些好用的图生图产品: Artguru AI Art Generator:在线平台,生成逼真图像,给设计师提供灵感,丰富创作过程。 Retrato:AI 工具,将图片转换为非凡肖像,拥有 500 多种风格选择,适合制作个性头像。 Stable Diffusion Reimagine:新型 AI 工具,通过稳定扩散算法生成精细、具有细节的全新视觉作品。 Barbie Selfie Generator:专为喜欢梦幻童话风格的人设计的 AI 工具,将上传的照片转换为芭比风格,效果超级好。 需要注意的是,这些 AI 模型可能存在一些局限,如偶尔会出现性能不稳定、生成内容不当等问题。内容由 AI 大模型生成,请仔细甄别。
2024-10-24
有最新的 AI 工具相关的信息么,更新频率是什么样的?
以下是为您提供的最新 AI 工具相关信息及更新频率: AIGC Weekly 61 每周一更新,主要介绍上周 AIGC 领域发布的一些产品以及值得关注的研究成果,包括 Mistral 推出新的大模型 Mistral Large、LTX 推出文字直接生成视频的软件、LayerDiffusion 项目可生成透明 PNG 图片等,还汇报了一些公司和项目的动态,推荐了一些新产品,如 Vercel AI SDK、OLMo7BInstruct 等。 2024 年 5 月 20 日的更新包括:《》介绍了 Coze.cn 临时上线又下线的“图像流”功能的试用情况。 2024 年 8 月 17 日的更新有:《》设想了未来 150 年内 AI 原住民与智能机器的共生关系。
2024-10-24
好用的AI 搜索工具
以下为您推荐一些好用的 AI 搜索工具: 1. 秘塔 AI 搜索:由秘塔科技开发,具有多模式搜索、无广告干扰、结构化展示和信息聚合等功能,能提升用户的搜索效率和体验。 2. Perplexity:聊天机器人式的搜索引擎,支持自然语言提问,利用生成式 AI 技术从各种来源收集信息并给出答案。 3. 360AI 搜索:360 公司推出,通过 AI 分析问题,生成清晰有理的答案,支持增强模式和智能排序。 4. 天工 AI 搜索:昆仑万维推出,采用生成式搜索技术,支持自然语言交互和深度追问,未来还将支持多模态搜索。 5. Flowith:创新的 AI 交互式搜索和对话工具,基于节点式交互方式,支持多种 AI 模型和图像生成技术,有插件系统和社区功能。 6. Devv:面向程序员的 AI 搜索引擎,专注于提供编程、软件开发和人工智能等领域的专业建议和指导。 7. Phind:专为开发者设计,利用大型语言模型提供相关搜索结果和动态答案,擅长处理编程和技术问题。 此外,存在能联网检索的 AI,例如: 1. ChatGPT Plus 用户可开启 web browsing 功能实现联网。 2. Perplexity 结合了 ChatGPT 式的问答和普通搜索引擎的功能,允许用户指定希望聊天机器人在制定响应时搜索的源类型。 3. Bing Copilot 作为 AI 助手,可简化在线查询和浏览活动。 4. You.com 和 Neeva AI 等搜索引擎,提供基于人工智能的定制搜索体验,并保持用户数据的私密性。 在利用 AI 打造爆款公众号文章方面,您可以: 在搜索框中输入具体的 Prompt,如“查找关于 OpenAI 对马斯克言论回应的博客文章”,通过 AI 工具如 Perplexity.AI 获取搜索结果,点击回答内容下方的拷贝按钮获取相关引用网站链接。同理,微软的 Bing 搜索引擎等也有类似功能,可快速搜集大量相关资料。 收集完资料后,使用月之暗面开发的 Kimi 这个 AI 会话助手进行整理。Kimi 具备读取网页内容并生成一定内容的能力,但可能存在阅读能力限制,可分批次提供资料确保其有效读取和理解。
2024-10-24
AI 搜索资料 工具
以下是关于 AI 搜索资料工具的相关信息: 1. 利用 AI 打造爆款公众号文章:在搜索框中输入具体的 Prompt 来快速定位相关资讯,如“查找关于 OpenAI 对马斯克言论回应的博客文章”。通过 AI 工具如 Perplexity.AI、微软的 Bing 搜索引擎等获取搜索结果,这些工具的结果包含大量引用和来源链接,可点击回答内容下方的拷贝按钮获取。 2. 开搜 AI 搜索:这是一款免费无广告、直达结果的面向大众的搜索工具。它能帮助在校学生快速搜集学术资料、智能总结关键信息以撰写论文和报告,并支持查看来源出处;能协助教育教师群体获取教学资源、自动生成教案和课题研究报告;能助力职场办公人群高效查找工作所需信息、简化文案撰写等工作;能为学术研究人员提供行业分析、整合和总结大量数据形成研究报告。链接:https://kaisouai.com/ 3. 能联网检索的 AI:存在此类 AI,它们通过连接互联网实时搜索、筛选并整合所需数据,为用户提供更精准和个性化的信息。例如,ChatGPT Plus 用户可开启 web browsing 功能实现联网;Perplexity 结合了 ChatGPT 式的问答和普通搜索引擎的功能,可指定希望聊天机器人在制定响应时搜索的源类型;Bing Copilot 能简化在线查询和浏览活动;还有 You.com 和 Neeva AI 等搜索引擎,提供基于人工智能的定制搜索体验并保持用户数据的私密性。 需要注意的是,部分 AI 工具在使用时可能存在一定限制,如 Kimi 的阅读能力有限,可能无法一次性处理大量资讯或读取某些网站内容,此时可分批次提供资料。同时,对于 AI 生成的内容请仔细甄别。
2024-10-24
Function Calling in AI
以下是关于“Function Calling in AI”的相关内容: 函数调用为 AI 系统带来了诸多重要优势,包括大大简化用户体验,使用户无需在模型和应用程序间繁琐地复制粘贴信息,过程更流畅直观;显著减少错误发生的可能性,降低输入不正确信息的风险,提高准确性;为更高级的自动化开辟道路,能够处理如酒店预订或制定旅行计划等复杂操作,用户通过简单的语音命令就能完成一系列复杂任务,重新定义了人与技术的互动方式。 在 ChatGPT 中,为让其返回符合要求的 JSON 格式,prompt 的定制尤为重要和复杂。OpenAI 于当地时间 6 月 13 日发布函数调用及其他 API 更新,开发人员可向 gpt40613 和 gpt3.5turbo0613 描述函数,让模型智能输出包含调用函数所需参数的 JSON 对象,这是将 GPT 能力与外部工具和 API 连接的新方法。结合 GPT 与函数调用,本地控制返回 JSON 格式,prompt 定制更简单,AI 输出更可控,可根据实际业务需求选择函数查询或 SQL 查询。 在 AI 智能体方面,工具使用或函数调用通常被视为从 RAG 到主动行为的第一个半步,为现代人工智能栈增加新层。工具本质是预先编写的代码组件,执行特定操作,如网页浏览、代码解释和授权认证等。系统向 LLM 呈现可用工具,LLM 选择工具、构建必要的结构化 JSON 输入并触发 API 执行以产生最终操作。Omni 的“计算 AI”功能体现了这种方法,利用 LLM 直接输出适当的 Excel 函数到电子表格中执行计算并自动生成复杂查询供用户使用。但工具使用仅凭自身不能视为“主动性”,逻辑控制流程仍由应用程序预先定义。
2024-10-22
Function Calling
Function Calling 是一种将模型的能力与外部工具和 API 连接起来的方法。 在 OpenAI 方面,当地时间 6 月 13 日发布函数调用及其他 API 更新。开发人员可向 gpt40613 和 gpt3.5turbo0613 描述函数,让模型智能输出包含调用函数所需参数的 JSON 对象。例如,本地写函数执行 this.app.mysql.select,让 GPT 与函数调用结合,控制返回 JSON 格式,使 prompt 定制更简单,AI 输出更可控。 在谷歌 Gemini 方面,在从事金融业务的用例中,如搜索欧元兑美元的当前汇率,需做好配置,使用 Gemini 1.5 Flash 模型。函数调用为 AI 系统带来诸多优势,如简化用户体验、减少错误发生可能性、为更高级自动化开辟道路,能处理如酒店预订或制定旅行计划等复杂操作,重新定义了人与技术的互动方式。
2024-10-12
Function Calling 是什么
Function Calling 是一种将大语言模型(如 ChatGPT)的能力与外部工具和 API 连接起来的新方法。 在 OpenAI 的 0613 版本中更新了此功能。开发人员可以向 gpt40613 和 gpt3.5turbo0613 描述函数,让模型智能地选择输出一个包含调用这些函数所需参数的 JSON 对象。 Function Calling 到来之前,使用 Json Output 存在诸多缺陷,如 JSON 格式非常标准,输出一个错的 token 就会异常;模型上下文短;模型难以在单个请求里完成多个复杂任务;大模型废话多;工程化复杂且维护成本高等。 Function Calling 实现的方式大大降低了所有 LLMs 应用开发的难度,例如降低了 Prompt 维护成本,实现了 System Prompt 和 Function 解耦。本地可以写函数执行特定操作,如 this.app.mysql.select,使操作更为灵活。
2024-08-21