理解函数调用(Function Calling)

理解函数调用(Function Calling)

d7714850-2d51-48d3-9776-d8f0dd195df9

要理解这张图,我们可以按步骤和组件拆解其流程,核心是展示 Spring AI 框架中 “大语言模型调用外部函数” 的完整逻辑:

1. 组件解析

  • Chat Prompt(含 function definition)

    用户的聊天提示,其中包含函数定义name函数名、description功能描述、input signature输入参数格式),用于告诉 AI 模型 “有哪些外部函数可以调用,以及如何调用”。

  • Spring AI(框架层)

    提供工具调用、流程管理的中间层,其中Function Registry(函数注册表)是核心组件,负责管理可调用的外部函数。

  • AI Model(大语言模型)

    如 GPT、Claude 等,负责理解用户请求并决策是否调用外部函数。

  • Function(外部函数)

    实现具体业务逻辑的外部工具(如天气查询 API、数据库查询函数等),由模型根据需要触发调用。

  • Chat Response(聊天响应)

    最终返回给用户的回答,可能是模型直接生成的文本,也可能是结合外部函数结果后的整合回答。

2. 流程步骤(按序号理解)

传递函数定义与用户请求

将包含 “函数定义” 的Chat Prompt传递给 Spring AI 框架。

模型理解并决策

Spring AI 将用户请求和函数定义转发给AI Model,模型分析请求后,决定是否需要调用外部函数

调用外部函数

若模型决定调用函数,Spring AI 通过Function Registry触发对应的Function执行,获取函数返回的结果。

函数结果返回模型

外部函数执行完毕后,将结果返回给AI Model

生成最终响应

模型结合自身知识和函数返回的结果,生成Chat Response并返回给用户。

3. 核心逻辑总结

这张图展示了 “大语言模型 + 外部工具” 的协作流程:通过在提示中加入 “函数定义”,让模型理解可调用的工具;模型根据请求决策是否调用工具,Spring AI 负责流程管理和函数调用;最终将工具结果整合到回答中,实现 “基于工具增强的智能问答”。

这种模式是 “函数调用(Function Calling)” 的典型实现,让大语言模型突破 “仅依赖内部知识” 的局限,具备调用外部资源解决实际问题的能力(如查天气、查股票、操作数据库等)。

posted @ 2025-11-18 15:13  Milchs  阅读(24)  评论(0)    收藏  举报