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

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 更新后,开发人员可向 gpt-4-0613 和 gpt-3.5-turbo-0613 描述函数,让模型智能输出包含调用函数所需参数的 JSON 对象。本地可根据 GPT 返回的函数名、参数进行数据查询,可采用函数查询或 SQL 查询,根据实际业务需求选择,使 AI 输出更可控。

内容由 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:【角色预设+谜题】

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查询,值得一试![heading2]SQL分析示例[content]注:以下SQL分析的数据均是在数据库中伪造的数据,仅供测试。分析每种图表的使用情况分析图表类型是柱状图的创建时间和数量

其他人在问
deepseek官方教程
以下是关于 DeepSeek 的官方教程相关信息: 火山方舟 DeepSeek 申请免费额度教程,包含多种 API 使用方式,如飞书多维表格调用、Coze 智能体调用、浏览器插件调用。可以使用邀请码 D3H5G9QA,通过邀请链接 https://www.volcengine.com/activity/deepseek?utm_term=202502dsinvite&ac=DSASUQY5&rc=D3H5G9QA 邀请可拿 3000 万 tokens,畅享 671B DeepSeek R1,活动截止至北京时间 20250218 23:59:59。同时,火山方舟大模型服务平台的模型服务计费文档有更新,DeepSeekR1、V3 模型分别提供了 50 万免费额度和 API 半价活动。 有关于一线教师的 AI 需求与高效工具推荐,如让模型创作诗歌、生成宣传标语、提示库(https://apidocs.deepseek.com/zhcn/promptlibrary)、代码解释、内容分类、角色扮演(自定义人设)、散文写作、文案大纲生成、模型提示词生成等。 2 月 14 日的社区动态中,有《突破 DeepSeek R1 能力天花板,火山引擎扣子+飞书一站式企业解决方案》《羊毛快薅|字节火山上线了 DeepSeek 系列模型并悄悄更改了模型服务价格...》等内容,还附上了飞书多维表格、Coze 的接入使用方法等。此外,还有关于 DeepSeek 关键 9 篇论文及创新点的讲解,以及 DeepSeek 官方发布的 R1 模型推荐设置。
2025-04-15
coze搭建工作流调用deepseek如何把模型的输出存入到多维表中
以下是将模型的输出存入到多维表中的步骤: 1. 逐步搭建 AI 智能体: 搭建整理入库工作流。 设置大模型节点提取稍后读元数据,使用 MiniMax 6.5s 245k,设置最大回复长度至 50000,以确保能完整解析长内容网页。 进行日期转时间戳,后续的飞书多维表格插件节点在入库日期字段时只支持 13 位时间戳,需要使用「日期转时间戳time_stamp_13」插件进行格式转化。 把稍后读元数据转换为飞书多维表格插件可用的格式,飞书多维表格插件目前(2024 年 08 月)只支持带有转义符的 string,以 Array<Object>格式输入,所以必须将之前得到的元数据数组进行格式转换。 添加「飞书多维表格add_records」插件,只需要设置{{app_token}}与{{records}}参数,将元数据写入飞书表格。 2. 搭建 Coze 工作流: 打开 Coze 的主页,登录后,在【工作空间】创建一个智能体。 在编排页面,给智能体编辑好人设,可先写一个简单的,然后点右上角自动优化,系统会自动补全更精细的描述。点击工作流的+,创建一个工作流。 大模型节点把 input 给到 DeepSeek,让 DeepSeek 按照提前规定的输出框架生成对应文案。 生图节点将输出给到图像生成组件画图。 结束输出时,两个输出给到最终的 end 作为最终的输出。注意在编写系统提示词时,如果需要 input 可被 DeepSeek 调用,需要用{{input}}作为参数引入,不然大模型不知道自己需要生成和这个 input 相关的结果。编排完,点击【试运行】,调试至满意后点击发布。
2025-04-14
deepseek写论文
以下是关于 DeepSeek 在不同方面应用的相关信息: 应用场景:包括脑爆活动方案、会议纪要、批量处理客户评论、分析总结复盘内容、生成专业软件使用过程、写小说框架、写论文、写文案、写小红书笔记、写周报、做设计头脑风暴、做网站、分析感情问题等。 优势与不足:在写文方面全面领先,但长文可能太发散、文风用力过猛导致审美疲劳,且模型多样性不够,相同 prompt 提问多次答案雷同。 应对策略:写理性文章时,可先与 DeepSeek 讨论思路,再用 Cloud 3.5 批量生成;用 O1 模型对创作的字数控制有一定效果,也可通过多轮对话让 AI 增删改查来调整字数。 创作相关:模仿特定小说家的文学方式创作小说,需在提示词中描述文风特征;邀请大家在腾讯频道发布用 AI 写的小说并鉴赏。 发展历程:DeepSeek 历时 647 天在大语言模型(LLM)领域取得突破,发布 13 篇论文。谷歌 CEO 坦言 Deep Seek 的突破标志着 AI 的全球化进程。
2025-04-13
如何使用deepseek写论文?
使用 DeepSeek 写论文可以参考以下几点: 1. 给予 DeepSeek 更多自由发挥的空间,避免过度限制。 2. 注意旧模型在文学创作中可能存在的过度道德说教和正面描述趋势,导致结果生硬死板的问题。 3. 了解 DeepSeek 在文风、哲学思考和触动人情感方面的优秀表现,利用其文创能力为论文增添特色。 4. 参考提示词编写的方法,例如收集信息、重新定义问题等,以更有效地向 DeepSeek 传达需求。 5. 可以借鉴他人使用 DeepSeek 写论文的经验,如 Yvonne 的成功案例。 需要注意的是,虽然 DeepSeek 能提供帮助,但仍需您对生成的内容进行审核和修改,以确保论文的质量和准确性。
2025-04-13
deepseek v3微调
以下是关于 Deepseek V3 微调的相关信息: 云舒文章总结卡 2.0 提示词全面支持 Deepseek V3,效果媲美 Claude3.7。V3 需要为 0324 更新的版本,DS 官网及 API 已更新,如调用其它平台 API 需要查看 DS 版本号。提示词复制链接:。横版为 1080 x 800 卡片提示词,竖版为 750 x 不限高卡片提示词。 各平台均需下载 html 文件,打开后才能查看真实效果,平台自带预览因兼容性问题无法正常展示效果。Claude 使用平台包括 Claude3.7 官网、API、Cursor,使用时需要下载为 HTML 文件打开查看效果。Deepseek 使用平台包括 Deepseek 官网、API(V3 需要为 0324 更新的版本),Deepseek 需要复制代码到 html 文件里,然后保存进行查看。 关于智能纪要,会带着大家复现模型的蒸馏和微调,并讲解相关知识。用 Deepseek RE Zero 蒸馏出带思考的数据,基于 Deepseek V3 微调,进行冷启动,再做强化学习,还从非公布模型提取微调数据,加上人类偏好,最终形成 R1。Deepseek R1 反过来蒸馏数据微调 V3,形成互相帮助的局面。 北京时间 00:30 至 08:30 期间,DeepSeek API 价格大幅下调,DeepSeekV3 降至原价的 50%。
2025-04-12
deepseek的使用技巧
以下是关于 DeepSeek 的使用技巧: 1. 了解其特点与优势: 推理型大模型:核心是推理型,无需用户提供详细步骤指令,通过理解真实需求和场景提供答案。 更懂人话:能理解用户用“人话”表达的需求,无需特定提示词模板。 深度思考:回答问题时能深度思考,非简单罗列信息。 文风转换器:可模仿不同作家文风写作,适用于多种文体和场景。 2. 更多提示词技巧请查看 3. 在 AI 切磋大会第十期 2 月 23 日 deepseek 专场中,分享了以下使用方法技巧: 分享使用 DeepSeek 在工作生活上的案例。 分享 DeepSeek 输出“超预期结果”的惊艳场景。 分享别人使用的案例。 方法论碰撞,如使用 DeepSeek 的技巧、与其他工具的协同方案、模型微调/部署的技巧方法、获取流量/客户等。 在 Workshop 自由探讨环节,参与者可自由组队,确定围绕 DeepSeek 应用的项目方向,进行头脑风暴和制定落地方案,并提交项目初稿。推荐使用 DeepSeek + 飞书多维表格、DeepSeek + 扣子等工具。若讨论无方向,可设定标准问题引导;分组混乱,可预设热门主题让参与者自行加入。
2025-04-12
能画技术路线图的prompt
以下是关于能画技术路线图的 prompt 相关内容: Midjourney Bot 的 Prompt 类型: 基本 Prompts:可以只是一个单词、短语或表情符号。 高级 Prompts:包括一个或多个图片 URL、多个文本短语以及一个或多个参数。其中,图片 URL 始终位于 prompt 的最前面,以影响完成结果的风格和内容。提示文字是对希望生成的图像的文本描述,精心编写的提示有助于生成惊艳的图像。参数可以改变生成图片的方式,需放在提示语的末尾。 ComfyUI Flux 与 runway 制作绘画视频: 生成图片:提示词告诉 flux 生成一张技术草图,如 CAD。 绘制的视频:在 runway 里面,使用提示词从空白页面开始逐行创建,并把生成的图片作为尾帧。 草图上色:使用 flux 的 controlNet,depth 固定,目前 Union 版本不建议权重调太高,结束时间也需注意。 Prompt engineering(提示工程): 开发测试用例:定义任务和成功标准后,创建多样化的测试用例,包括典型示例和边界情况,以确保提示具有鲁棒性。 设计初步提示:制定初步提示,概述任务定义、良好响应的特征及必要上下文,添加规范输入和输出的示例供参考。 根据测试用例测试提示:使用初步提示将测试用例输入,评估模型响应与预期输出和成功标准的一致性,使用一致的评分标准进行系统性的性能评估。
2025-04-19
整理会议纪要的prompt
以下是一些关于整理会议纪要的 prompt: 【?会议精要】整理生成高质量会议纪要,保证内容完整、准确且精炼。 会议记录员:将会议浓缩成简明摘要,包括讨论主题、重点内容、行动事项。 CEO 秘书会议纪要:专注于整理和生成高质量的会议纪要,确保会议目标和行动计划清晰明确。需严格遵守信息准确性,不对用户提供的信息做扩写,仅做信息整理,将一些明显的病句做微调。
2025-04-15
作为一个想要使用AI工具提升工作效率的AI小白,我已经学习了怎么编写prompt,接下来我应该学习什么
如果您已经学习了如何编写 prompt ,接下来可以学习以下内容: 1. 理解 Token 限制:形成“当前消耗了多少 Token”的自然体感,把握有效记忆长度,避免在超过限制时得到失忆的回答。同时,编写 Prompt 时要珍惜 Token ,秉承奥卡姆剃刀原理,精简表达,尤其是在连续多轮对话中。 熟练使用中英文切换,若 Prompt 太长可用英文设定并要求中文输出,节省 Token 用于更多对话。 了解自带方法论的英文短语或句子,如“Chain of thought”。 2. 学习精准控制生成式人工智能:重点学习提示词技术,编写更清晰、精确的指令,引导 AI 工具产生所需结果。 探索构建智能体(AI Agents),将工作单元切割开,赋予其特定角色和任务,协同工作提高效率。 在实际应用中遵循准则,如彻底变“懒人”、能动嘴不动手、能让 AI 做的就不自己动手、构建自己的智能体、根据结果反馈调整智能体、定期审视工作流程看哪些部分可用更多 AI 。 3. 若想进一步提升: 学习搭建专业知识库、构建系统知识体系,用于驱动工作和个人爱好创作。 注重个人能力提升,尤其是学习能力和创造能力。 您还可以结合自身生活或工作场景,想一个能简单自动化的场景,如自动给班级孩子起昵称、排版运营文案、安排减脂餐、列学习计划、设计调研问卷等。选一个好上手的提示词框架开启第一次有效编写,比如从基础的“情境:”开始。
2025-04-15
对于用cursor来开发,有没有好好用prompt来使cursor变得更加好用
以下是关于如何用 prompt 使 Cursor 变得更好用的相关内容: 在 prompt 方面,Devin 有一个特别有帮助的文档(https://docs.devin.ai/learnaboutdevin/prompting),它会教您什么样的 prompt 在与 Devin 沟通时最有效,比如明确定义成功的标准,如跑通某个测试或访问某个链接能对得上等。将同样的原则应用到 Cursor 中,会发现 Cursor 变得聪明很多,能自主验证任务完成情况并进行迭代。 Cursor 在生成单测方面表现出色。相对 GPT 等工具,Cursor 解决了上下文缺失和难以实现增量更新的问题。它可以向量化整个代码仓库,在生成单测代码时能同时提供目标模块及对应的上下游模块代码,生成结果更精确。例如,使用适当的 Prompt 能返回基于 Vitest 的结果,调整成本较小。 Cursor 支持使用.cursorrules 文件设定项目的系统提示词,针对不同语言可设定不同的 Prompt。@AIChain 花生做了一个 Cursor 插件解决提示语管理问题,可选择不同的.cursorrules 文件,还可从 https://cursor.directory/ 和 https://cursorlist.com/ 寻找提示词。此外,还有一个提示语小技巧,给已有的提示语追加上特定规则,可使模型在搜索资源和思考时默认使用英语,回复转换成中文,或更灵活地根据提问语言进行回复。
2025-04-14
有什么 prompt engineering 的好材料
以下是一些关于 prompt engineering 的好材料: 文本类 Prompt 网站: Learning Prompt:授人以渔,非常详尽的 Prompt 学习资源,包括 ChatGPT 和 MidJourney,网址: FlowGPT:国外做的最大的 prompt 站,内容超全面,更新快,网址: ChatGPT Shortcut:ChatGPT 提示词网站,提供了非常多使用模板,简单修改即可指定输出,网址: ClickPrompt:轻松查看、分享和一键运行模型,创建 Prompt 并与其他人分享,网址: Prompt Extend:让 AI 帮你自动拓展 Prompt,网址: PromptPerfect:帮你自动优化提示词,你可以看到优化前后的对比,网址: PromptKnit:The best playground for prompt designers,网址: PromptPort(支持中文):AI Prompt 百科辞典,其中 prompts 是聚合了市场上大部分优质的 prompt 的词库,快速的寻找到用户需求 prompt,网址: Prompt Engineering Guide:GitHub 上点赞量非常高的提示工程指南,网址: Claude 3.7 核心提示词相关: 您可以在中找到他们往期开源的更多系统提示词,涵盖了从 Claude 3 Haiku 到现在所有的模型。 一泽 Eze 整理的相关学习资料: Claude 3.5 sonnet 内置提示词详细拆解与解说:https://mp.weixin.qq.com/s/0R4zgH3Gc5TAfAPY1oJU4A Anthropic 的三位顶级提示工程专家聊《如何当好的提示词工程师》:https://mp.weixin.qq.com/s/VP_auG0a3CzULlf_Eiz1sw 往期 Claude AI 核心系统提示词:https://docs.anthropic.com/en/releasenotes/systemprompts Claude 官方用户手册 提示工程指南:https://docs.anthropic.com/en/docs/buildwithclaude/promptengineering/overview Claude 官方提示库:https://docs.anthropic.com/en/promptlibrary/library 基本概念: 简单的提示词可以包含指令、问题等信息,也可以包含上下文、输入或示例等详细信息,以更好地指导模型获得更好的结果。 当使用 OpenAI 的聊天模型时,可以使用 system、user 和 assistant 三个不同的角色来构建 prompt,system 有助于设定 assistant 的整体行为。 提示工程就是探讨如何设计出最佳提示词,用于指导语言模型帮助我们高效完成某项任务。
2025-04-12
生成可视化网页的 prompt
以下是关于生成可视化网页的 prompt 相关内容: 1. 利用 AI 将 PDF 一键变成可视化网页: 整体思路来自归藏。 目前只有 Claude 3.7 Sonnet 效果最好,可将 prompt 发给能使用它的产品,如 Claude 自己的官网、trea 海外版、cursor 等。 Prompt 基本复制可用,但需将作者信息和媒体资源部分改成自己的内容。媒体资源若为网上现成图片,可复制图像链接;若为自己的图片,可使用图床服务生成公链,以 Markdown 格式贴到媒体资源处。 2. 为生成更漂亮的可视化网页编写的工具: 解决了模型生成结果过于随机的问题。 可在网页上自定义基础样式或随机生成,直到满意。 工具网址:https://60mcp23013.yourware.so/ 3. 3 月 25 日 AI 资讯汇总中的相关用例: 动态图表制作:输入“请给我输出红楼梦的人物关系,并与 html 的形式输出可视化图表,可以参考我给你的图表形式”,可添加参考的个性化图表示例,以 html 附件形式上传。 提供文案输出可视化网页:输入“来自归藏大大 我们输入我们的 AI 周刊内容”。 小红书卡片:输入“来自向阳乔木大大的提示词”。
2025-04-10
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 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 系统带来了诸多优势,包括简化用户体验、减少错误发生可能性以及为更高级的自动化开辟道路。例如在处理金融信息时,它能使整个过程更加流畅、准确,并能实现如酒店预订或制定旅行计划等复杂操作。 OpenAI 的 Chat completions API 允许在请求中附带一系列函数描述,使模型能够根据提供的模式生成函数参数,API 会以 JSON 格式返回生成的参数,可用于执行函数调用,函数调用的结果还能在后续请求中反馈给模型形成交互循环。想深入了解可查看 GPT 入门指南里的函数调用部分和 OpenAI Cookbook 里的用例。 对于让 ChatGPT 返回符合要求的 JSON 格式,prompt 的定制至关重要且较为复杂。OpenAI 发布函数调用及其他 API 更新后,开发人员可向 gpt40613 和 gpt3.5turbo0613 描述函数,让模型智能选择输出包含调用函数所需参数的 JSON 对象,这是将 GPT 能力与外部工具和 API 连接的新方法。将 GPT 与函数调用结合,本地控制返回 JSON 格式,能使 prompt 的定制更简单,AI 的输出更可控,可根据实际业务需求选择函数查询或 SQL 查询。
2025-02-21
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。
2024-10-24
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
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