LLM 大模型 Function Call 流程分析

Function Call 是个啥

Function Calling 是一个允许大型语言模型(如 GPT)在生成文本的过程中调用外部函数或服务的功能。以实现有效的工具使用和与外部 API 的交互。

Function Call 的交互技术解读

Function Call 最大的价值 就是让机器轻易地理解了用户模糊化的输入,将其转换为机器可以理解的结构化指令 并且理解何时调用特定函数并提供执行实际操作所需的参数。

比如我提问一个 明天北京的天气怎么样?

因为 LLM 大语言模型缺乏实时数据,所以无法回答实时数据这种场景。

让我们来拆解一下上述的交互流程,仔细看看这个插件的交互是如何实现的。这样的一次交互,包含了5 个对话:

  1. 用户提出了一个问题:「明天北京的天气怎么样?」
  2. AI系统 接收到问题,识别了用户的意图 并检查是否有可用的函数可以调用
  3. 如果有,系统会生成一个工具调用请求(ToolCall)解析获取 调用 请求参数
  4. AI 开始调用 天气查询插件 传参,获取明天北京的天气数据;
  5. AI 输出天气信息;

伪代码

bash 复制代码
#1 提问
- role: "user"
  content: "我想知道现明天北京的天气状况?"
  tool_choice: "auto",
  tools:"function",
  "name": "Get_Weather_For_City"
  
#2 意图识别是否走fuction call 解析参数
- role: "assistant"
  function_call: "{"name": "realtimeWeather","arguments": "{\n  \"city\": \"北京\"\n}\"}

#3 调研 fcuntion
- role: "function"
  content: "27度,晴朗"

#4 LLM 总结输出
- role: "assistant"
  content: "明天的北京温度是27度,晴朗。"

function ,user 、system、assistant [1](#1)

总结

LLM 如何处理模糊函数调用?

LLM 通过使用各种技术来消除函数名称和参数的歧义,从而处理模糊的函数调用。以下是他们采用的一些策略:

  1. 上下文分析:LLM 分析函数调用的上下文以确定预期功能。这包括了解用户的意图、对话历史记录和可用的功能。
  2. 函数定义:LLM 使用提供的函数定义来确定要调用的正确函数。这包括函数名称、描述和参数。如果多个函数具有相同的名称,LLM 可以使用描述和参数来消除歧义。
  3. 参数匹配:LLM 将提供的参数与每个函数所需的参数进行匹配。如果某个函数需要特定参数,并且提供的参数匹配,则 LLM 可以确定要调用的正确函数。
  4. 系统消息:LLM 可以使用系统消息为函数调用提供额外的上下文和约束。这些消息可以指定所需的参数、它们的值以及对函数调用的任何约束。
  5. JSON 模板:LLM 可以使用 JSON 模板来定义函数调用的结构。这包括函数名称、参数及其值。然后,LLM 可以使用此模板来生成正确的函数调用。
  6. 函数重载:LLM 可以通过分析函数名称和参数来确定要调用的正确函数,从而处理函数重载。这涉及检查具有相同名称但不同参数的多个函数。
  7. 命名空间管理:LLM 可以管理命名空间,以避免命名空间冲突并确保正确调用函数。这涉及将函数组织成逻辑组并为每个函数使用唯一的名称。
  8. 错误处理:LLM 可以通过提供错误消息并使用正确的参数重试函数调用来处理函数调用期间发生的错误。

通过采用这些策略,LLM 可以有效地处理模糊函数调用,并确保使用正确的参数调用正确的函数。


  1. 参考来源1 ↩︎
相关推荐
白光白光6 小时前
大语言模型训练的两个阶段
人工智能·机器学习·语言模型
HuggingFace11 小时前
大模型评估排障指南 | 关于可复现性
大模型·llm
AI大模型顾潇11 小时前
[特殊字符] 本地部署DeepSeek大模型:安全加固与企业级集成方案
数据库·人工智能·安全·大模型·llm·微调·llama
大模型最新论文速读15 小时前
在Text-to-SQL任务中应用过程奖励模型
数据库·人工智能·sql·深度学习·语言模型·自然语言处理
明明跟你说过16 小时前
深入理解Embedding Models(嵌入模型):从原理到实战(下)
人工智能·语言模型·embedding
modest —YBW17 小时前
Ollama+OpenWebUI+docker完整版部署,附带软件下载链接,配置+中文汉化+docker源,适合内网部署,可以局域网使用
人工智能·windows·docker·语言模型·llama
知来者逆20 小时前
AI 在模仿历史语言方面面临挑战:大型语言模型在生成历史风格文本时的困境与研究进展
人工智能·深度学习·语言模型·自然语言处理·chatgpt
洁洁!1 天前
从零开始在亚马逊云科技 EC2上部署DeepSeek R1大语言模型:完整实战指南
服务器·科技·语言模型
一点.点1 天前
SafeDrive:大语言模型实现自动驾驶汽车知识驱动和数据驱动的风险-敏感决策——论文阅读
人工智能·语言模型·自动驾驶
concisedistinct1 天前
如何评价大语言模型架构 TTT ?模型应不应该永远“固定”在推理阶段?模型是否应当在使用时继续学习?
人工智能·语言模型·大模型