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

分享代码的网站做短视频的软件

分享代码的网站,做短视频的软件,母了猜猜看游戏做网站,erp合同管理系统源自: AINLPer(每日干货分享!!) 编辑: ShuYini 校稿: ShuYini 时间: 2025-3-12 更多:>>>>大模型/AIGC、学术前沿的知识分享! 引言 Function Calling 是一个允许大型语言模型(如 G…

源自: AINLPer(每日干货分享!!)
编辑: ShuYini
校稿: ShuYini
时间: 2025-3-12

更多:>>>>大模型/AIGC、学术前沿的知识分享!

引言

Function Calling 是一个允许大型语言模型(如 GPT)在生成文本的过程中调用外部函数或服务的功能。
Function Calling允许我们以 JSON 格式向 LLM 模型描述函数,并使用模型的固有推理能力来决定在生成响应之前是否调用该函数。模型本身不执行函数,而是生成包含_函数名称_和_执行函数所需的参数_的 JSON

function calling 执行原理

现在我们定义提示词像大语言模型问一下当前北京的天气?

因为 LLM 大语言模型缺乏实时数据,所以无法回答实时数据这种场景。这时候就需要用到 LLMFunction Calling 功能来帮助回答用户的问题

使用 OpenAI API function calling

OpenAIfunction calling的核心是我们将Prompts 提示词和可用函数列表一起发送给LLM

OpenAI Chat Completions 接口

{"tool_choice": "auto","messages": [{"role": "system","content": "You are a helpful assistant."},{"role": "user","content": "我想知道现在北京的天气状况"}],"tools": [{"type": "function","function": {"name": "Get_Weather_For_City","description": "获取指定城市的天气","parameters": {"type": "object","properties": {"cityName": {"type": "string","description": "城市名"}}}}}]
}

核心参数解释

tool_choice:

这个参数决定了模型是否应该自动选择是否调用函数。值为 "auto" 表示模型将根据情况自动决定是否调用函数。 默认情况下,如果请求中不存在任何函数,则将其设置为“none”,则设置为“auto”

tools

tools 部分定义了一个函数,这个函数可以被 OpenAI 的模型调用。以下是 tools 部分参数的简单解释:

  • type: 指定了这个工具的类型,这里是 "function",表示这是一个函数调用。

  • function: 包含函数的详细信息,是一个对象。

    • name: 函数的名称,这里是 "Get_Weather_For_City",这是调用时使用的函数名。

    • description: 函数的描述,这里是 "获取指定城市的天气",用于说明这个函数的作用。

    • parameters: 定义了函数调用时需要的参数,是一个对象。

      • type: 参数对象的类型,这里是 "object",表示参数是一个对象类型。

      • properties: 包含具体的参数定义,是一个对象,每个属性对应一个参数。

        • cityName: 这是一个参数的名称,表示城市名称。
          • type: 此参数的类型,这里是 "string",表示参数应该是一个字符串。
          • description: 参数的描述,这里是 "城市名",用于解释这个参数的意义。

这个 tools 部分定义了一个名为 Get_Weather_For_City 的函数,它需要一个名为 cityName 的字符串参数,用于指定想要查询天气的城市。当模型需要调用这个函数时,它将使用这个参数来获取相应的天气信息。

function calling 输出

{"id": "chatcmpl-9TOuIqnuMirU3BUDluCrHMTlsjz97","object": "chat.completion","created": 1716794282,"model": "gpt-4","choices": [{"index": 0,"message": {"role": "assistant","content": null,"tool_calls": [{"id": "call_DQU6OKHWyv3HVLyWVjSRqvwZ","type": "function","function": {"name": "Get_Weather_For_City","arguments": "{\n  \"cityName\": \"北京\"\n}"}}]},"logprobs": null,"finish_reason": "tool_calls"}],"usage": {"prompt_tokens": 83,"completion_tokens": 20,"total_tokens": 103},"system_fingerprint": null
}

最核心的方法是tool_calls回参里面返回了我们需要的方法名和一个 json 参数 比如"{\n \"cityName\": \"北京\"\n}"包含了我们的参数和值。

返回函数结果上下文

{"max_tokens": 3000,"tool_choice": "auto","messages": [{"role": "system","content": "You are a helpful assistant."},{"role": "user","content": "我想知道北京的天气状况"},{"role": "assistant","function_call": {"name": "Get_Weather_For_City","arguments": "{\n  \"cityName\": \"北京\"\n}"}},{"role": "function","name": "Get_Weather_For_City","content": "27度,晴朗"}],"tools": [{"type": "function","function": {"name": "Get_Weather_For_City","description": "获取指定城市的天气","parameters": {"type": "object","properties": {"cityName": {"type": "string","description": "城市名"}}}}},{

需要把上下文信息和function callingresult回答的信息传给LLM

  • ToolCall上下文信息
{"role": "assistant","function_call": {"name": "Get_Weather_For_City","arguments": "{\n  \"cityName\": \"北京\"\n}"}
}
  • ToolCallResponse
{"role": "function","name": "Get_Weather_For_City","content": "27度,晴朗"
}

LLM 输出

{"id": "chatcmpl-9TRZBqCcRMBYIojuZimio6GOpsTi4","object": "chat.completion","created": 1716804505,"model": "gpt-4","choices": [{"index": 0,"message": {"role": "assistant","content": "北京的天气状况是27度,晴朗。"},"logprobs": null,"finish_reason": "stop"}],"usage": {"prompt_tokens": 133,"completion_tokens": 19,"total_tokens": 152},"system_fingerprint": null
}

到现在为止简单的function calling的简单调用已经完成了
具体的流程可以总结为

image

可以看到function calling跟大预言模型至少有两次交互的的过程

总结

根据文档中的描述,OpenAI的函数调用(function calling)过程可以简化为以下几个步骤,并且可以用一个流程图来表示:

image

  1. 用户提出问题。
  2. 系统接收到问题,并检查是否有可用的函数可以调用。
  3. 如果有,系统会生成一个工具调用请求(ToolCall),并发送给应用程序。
  4. 应用程序执行请求的函数,并返回结果。
  5. 系统将函数的响应(ToolCallResponse)发送回 LLM 模型。
  6. LLM 模型使用这个响应来生成最终的用户响应。

下面是一个简化的流程图,描述了上述过程:

在这个流程图中:

  • A 代表用户。
  • B 是用户提出的问题。
  • C 是 LLM 模型,它检查是否有函数可以调用。
  • D 是生成工具调用(ToolCall)的步骤。
  • E 是应用程序,它接收 ToolCall 并执行相应的函数。
  • F 是应用程序返回的 ToolCallResponse,即函数执行的结果。
  • G 是 LLM 模型,它使用 ToolCallResponse 来生成用户响应。
  • H 是最终接收到用户响应的用户。

这个流程图是基于文档内容的简化表示,实际的系统可能包含更多的细节和步骤。

文中公式表达或有错误,欢迎批评指正!

http://www.dtcms.com/wzjs/562013.html

相关文章:

  • 个人网站命名的要求在线游戏网站
  • 什么网站做蜘蛛池app开发定制外包26
  • 做影视网站不备案网站备案完才能建站吗
  • 平面素材网站排名活动宣传推广的形式有哪些
  • 网站数据库搬家seo关键词优化怎么收费
  • 蚂蚁中国网站建设动漫网站开发研究内容
  • 网站是否需要备案视频网站开发流程
  • 手机网站建设要注意哪些问题站长工具海角
  • 深圳网站建设icxun网站源码在哪里
  • 建网站需要几程序员wordpress建企业网站
  • 手机精品网站建设网站 配色
  • 兰州网站设计公司有哪些南宁市建设工程造价信息网
  • s什么网站可以接单做设计赚钱野花高清中文免费观看视频
  • 装修公司网站源代码用wordpress搭建商城
  • 公众号做视频网站吗域名停域旧版本app免费下载
  • 免费自助建站平台系统广州网站开发外包公司
  • 成都网站建设成都网络公司ppt简洁模板整套免费
  • ps做网站宽度湖北民族建设集团网站
  • 建设服装网站目的商务电子是学什么的
  • 网站建设好发信息网祺越网站建设
  • 建设银行网站为什么进不去开发一个卖东西的网站多少
  • 微信公众号可以做几个微网站吗英文网站建设easy
  • 优秀国外网站工程建设信息网站接口
  • 网站开发工具的选择网站开发工作流审批流
  • 常州网站设计制作淘宝网店网站建设目的
  • 北京网站设计定制开发建设公司wordpress的静态页面保存在哪里
  • 简述电子商务网站的内容设计与开发域名是什么意思呢
  • 主题资源网站建设 反思中山外贸网站建设
  • 计算机考试模拟网站怎么做网站反链数
  • 怀来网站建设甘肃省建设厅网站质监局