估计阅读时长: 8 分钟 https://github.com/xieguigang/LLMs 已知,现在我们可以成功的和正在运行的大语言模型服务勾搭了,现在能够让大语言模型为我们做些什么。很遗憾的是,由于大语言模型本质上只是一个数学模型,其作用只是针对我们的输入找出最佳的字符输出组合。如果我们没有额外的针对大语言模型进行拓展,我们所勾搭上的大语言模型充其量也只是一个聊天机器人,他既不能帮我们发送email,也不能够帮助我们调节屋内的灯光,只能够做到分析我们输入的文本,然后输出一段最佳的文本。所以我们需要通过针对大语言模型添加额外的拓展来帮助我们实现各种功能。 又已知,大语言模型的本质就是进行文本的结构化分析,那么假如我们的输入信息中包含有某些工具函数的描述信息,而且大语言模型能够正确的分析出我们的输入文本和输入信息中所包含的工具函数之间的对应关系,那么大语言模型的输出就可以专门定向的变换为一种针对输入信息所对应的函数调用的结构化文本信息输出。当运行大语言模型的基础服务捕捉到这种结构化文本(例如json)输出后就可以通过这种结构化文本信息的内容解析结果来调用对应的外部工具,这样子我们就可以让大语言模型来帮助我们完成特定的任务了。这种特性就是大语言模型的Function Calling功能。
[…] 《为大语言模型运行添加工具调用》 […]
[…] 《从头创建一个DeepSeek客户端》 […]
[…] 在上面的工具调用消息数据结构中,我们可以清楚的看见有需要进行调用的工具名称,以及参数列表。当我们拿到这样子的调用信息后,就可以基于一定的规则找到需要执行的运行时中的函数来完成功能的实现。对于.NET平台上,我们一般是使用自定义属性加反射操作来解析相关的名称绑定结果。在.NET平台上对于这样子的一个根据调用信息来进行运行时解析和调用的方法,可以稍微参考《【Darwinism】Linux平台上的VisualBasic高性能并行计算应用的开发》的反射代码方法。 […]
[…] 在前面的文章《从头创建一个DeepSeek客户端》的请求消息的数据结构的基础上,我们在这里再增加一个工具信息的列表,在这个工具信息列表中,包括了工具的名称,工具的描述信息,以及工具的参数信息。对应的新增加的数据结构如下所示: […]
You have the gift of turning abstract thoughts into something tangible, allowing the reader to grasp concepts with clarity.