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

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)。所有这些新功能都可以使用 deepseek-chatdeepseek-coder 模型调用 。

内容由 AI 大模型生成,请仔细甄别(powered by aily)

参考资料

生成式人工智能领域的 4 个突破点

随着时间的推移,我们已经看到公司不断改善LLMs使用工具的能力。像必应和谷歌这样的老牌公司和Perplexity和You.com这样的初创公司推出了搜索API。AI21 Labs推出了Jurassic-X,它通过将模型与一组预定工具(包括计算器、天气API、维基百科API和数据库)结合起来,解决了独立LLMs的许多缺陷。OpenAI推出了ChatGPT的插件测试版,允许ChatGPT与Expedia、OpenTable、Wolfram、Instacart、Speak、网络浏览器和代码解释器等工具进行交互,这一突破被认为类似于苹果的“应用商店”时刻。最近,OpenAI在GPT-3.5和GPT-4中引入了函数调用,允许开发者将GPT的能力与任何外部工具进行链接。

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查询,值得一试!

其他人在问
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
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
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
你知道有支持个性化训练的大预言模型么
以下是一些支持个性化训练的大语言模型: 1. Character.ai:更注重人格属性,试图满足社交、情感、陪伴等需求,与 ChatGPT 侧重不同,后者注重提高效率和解放生产力。 2. Midjourney:今天发布了模型个性化 Personalization 或 'p'的早期测试版本。模型个性化会学习用户的喜好,以便更可能用用户的口味来填补空白。其要求包括目前从成对排名中的投票和喜欢的探索页面上的图像中学习,需要大约 200 个成对排名/喜欢才能生效。使用时只需在提示后输入 'p',或使用提示栏中的设置按钮为所有提示启用个性化功能,还可以使用 's 100'控制个性化效果的强度。但需注意个性化目前不是一个稳定的功能,会随着进行更多的成对排名而变化,且可能会在接下来的几周内推出算法更新。
2024-10-18
国内有哪些支持视频生成的产品
以下是国内一些支持视频生成的产品: 1. 可灵:在视频生成领域表现出色,具有卓越的生成质量、出色的生成速度和良好的国内可访问性。其生成的视频在画面清晰度、连贯性和内容丰富性上可与国际顶级模型媲美,处理效率高,为国内用户提供便捷稳定的使用体验。 2. Hidreamai:国内产品,有免费额度。支持文生视频、图生视频,提示词使用中文、英文均可,文生视频支持多种控制,可生成 5 秒和 15 秒的视频。网址:https://hidreamai.com//AiVideo 3. ETNA:由七火山科技开发的文生视频 AI 模型,能根据简短文本描述生成相应视频内容,生成视频长度 8 15 秒,画质可达 4K,最高 38402160,画面细腻逼真,帧率 60fps,支持中文和时空理解。网址:https://etna.7volcanoes.com/ 此外,还有 Pika、SVD、Runway、Kaiber、Sora 等工具也可实现文字生成视频的功能,但并非国内产品。更多相关网站可查看:https://www.waytoagi.com/category/38 。需注意,以上内容由 AI 大模型生成,请仔细甄别。
2024-10-13
AI在中小学教育中能够提供的支持
AI 在中小学教育中能够提供以下支持: 1. 辅助学生完成课程和任务:可控地引导学生,将部分课程和任务借助 AI 来完成。 2. 培养学生能力:限制部分课程的 AI 使用,以培养学生独立思考和解决问题的能力。 3. 帮助获取信息和学习:可以要求 AI 解释概念,用于自学学习,但要注意对关键数据根据其他来源仔细检查。 4. 协助教师工作:帮助教师节省时间和提高生产力,如备课。 5. 个性化学习计划:分析学生表现,根据知识差距和个人学习风格创建定制的学习路径。 6. 课程开发与学习沉浸:生成图像、文本和视频,转化为补充教育材料、作业和练习题,提供虚拟学习场景。 7. 社会互动与沟通:与新的 AI 工具结合,为学生提供更好的口语和展示沟通的准备工具。 然而,AI 备课与优秀的人类教师相比仍有差距,如缺乏课时设计和合理的教学目标梯度,人机融合是未来的趋势。
2024-10-12