超实用!用 FunctionCall 实现快递 AI 助手

昨天晚上直播,我们用 RAG(Retrieval-Augmented Generation,检索增强生成)实现了数据库 AI 助手,今天我们准备换一个技术使用 function call 来实现快递 AI 助手。
执行效果
快递 AI 助手的业务逻辑很清晰,就是我通过 LLM 大语言模型的对话来查询我的快递详情,例如,我问 AI 我有几个“运送中”的快递,他把这些快递查询并展示出来,效果如下图所示:

什么是 function call?
定义: Function Call(也称为 Tool Call)它允许大模型与一组 API 或工具进行交互,从而增强其功能。
也就是说 Function Call 和 RAG、MCP 等类似都是用于增强 AI 能力边界的。
function call 执行流程
执行流程如下:

其中,Tool 既为 Function Call。
当然如果你上图看的不是很懂的话,也可以参考阿里云提供的 function call 的工作流程:

快递 AI 助手实现
具体实现步骤:
添加大模型依赖
配置大模型参数
创建 function call
调用 function call 实现快递查询
接下来,我们一步步来看,我们以阿里云的百炼(通义千问)大模型对接为例。
1.添加大模型依赖
2.配置大模型参数
3.创建 function call
这里就不连接数据库查询快递信息了,生成级别需要连接数据库,这里演示效果,构建测试数据即可,如下代码所示:
4.调用 function call
调用大模型可以使用 ChatModel 和 ChatClient,这里使用 ChatClient 调用:
最终执行效果如下:

小结
大模型应用开发是以后程序开发的主流方向,他也会巅峰以往的开发形式,早早掌握大模型的开发知识,对于后期涨薪或找工作都有巨大的帮助。程序员群体注定是一个活到老学到老的群体,因为学习的本质在于扩展自己的能力边界,让自己变得更值钱。所以各位动起来,让我们一起拥抱这场 AI 盛宴吧。
本文已收录到我的技术小站 www.javacn.site,其中包含的内容有:Spring AI、大模型应用开发各种技术、MCP、Function Call、RAG、向量数据库、Prompt、多模态、向量数据库、嵌入模型等内容。
评论