当前位置:AIGC资讯 > AIGC > 正文

谈谈Function Calling

👻 大模型分发助手,分发你的Prompt,助你学习AIGC 👻 LLM-HUB: Distribute Your Prompt, Unlock AIGC's Power

Function Calling,这个让大语言模型 (LLM) 如虎添翼的利器,正逐渐成为人工智能领域的一大热点。它究竟是什么?如何运作?又能为我们带来哪些改变?让我们一起深入探索 Function Calling 的奥秘,揭开其背后的"魔法",并展望其无限的未来!

大语言模型的困境:有"脑"却无"手",空有知识却无法行动

大语言模型,例如 GPT-4,拥有强大的知识储备和语言理解能力,能够进行流畅的对话、创作精彩的故事,甚至编写代码。然而,它们也面临着一些难以克服的困境,就像一个空有知识却无法行动的巨人:

缺乏行动力: 就像被困在虚拟世界中的大脑,只能提供信息,无法直接与现实世界互动。例如,它可以告诉你如何煮咖啡,但无法帮你磨咖啡豆、煮咖啡、甚至递给你一杯咖啡。 这就好比一位博学的教授,可以讲解复杂的理论知识,但却无法在实验室进行实际操作。 信息滞后: 知识库的更新速度有限,无法获取最新的实时信息,例如天气、股价等。这意味着它可能告诉你昨天的天气,或者一个小时前的股价,而这些信息可能已经过时了。就像一本印刷好的百科全书,内容固定,无法实时更新。 缺乏个性化: 无法根据用户的特定需求提供个性化服务,例如预订航班、安排会议等。它只能提供通用的信息,而无法根据你的个人喜好或行程安排提供定制化的服务。如同一个没有情感的机器人,只能按照预设的程序执行任务,无法理解和满足用户的个性化需求。 无法处理复杂任务: 许多现实世界的任务需要多个步骤和工具的协同配合,而大语言模型自身无法完成这些复杂的操作。例如,它无法帮你安排一次旅行,因为它需要预订机票、酒店、安排行程等等,这些都需要调用不同的工具和服务。就像一个只会单一技能的工匠,无法胜任需要多种技能协作的复杂工程。 容易产生"幻觉": 大语言模型有时会生成不准确或虚构的信息,这被称为"幻觉"。 这是因为它们是基于统计概率进行预测,而不是真正的理解语言的含义。 就像一个擅长模仿的演员,可以惟妙惟肖地扮演各种角色,但却并不真正理解角色的内心世界。

换一种说法,大语言模型,就像一介白面书生,聪慧无比,每天在家里读书,大门不出,二门不迈,两耳不闻窗外事,眼高手低。你让他给你做碗面条,他告诉你100种面条的做法,但是就不给你做;你让他给你洗衣服,他能告诉你洗衣机的前世今生,说的好厉害,但就不给你洗。所以如何给这个书生,搭配各种助手,发挥他的价值,就成了一件非常有意义的事情。

Function Calling 横空出世:为大语言模型插上翅膀,连接虚拟与现实

为了解决这些问题,Function Calling 应运而生。它就像为大语言模型配备了"手脚",让它们能够调用外部工具 (Tools,早先叫Function Calling,后来改成了Tools,一个意思),执行实际操作,与现实世界互动。

Function Calling 的核心思想是: 将大语言模型的语言理解能力与外部工具的功能结合起来,让大语言模型能够理解用户的意图,并调用合适的工具来完成任务。

这就像为一个知识渊博的大脑连接上了能够执行操作的四肢,让它能够将知识转化为行动,真正地为人类服务。

例如,通过 Function Calling,大语言模型可以:

调用天气 API 获取实时天气信息: 不再局限于提供过时的天气预报,而是可以告诉你此时此刻的天气状况,就像你打开手机上的天气应用一样。 调用订票网站 API 预订机票: 不再只是告诉你如何订票,而是可以直接帮你完成订票操作,就像一个专业的旅行代理一样。 调用日历 API 安排会议: 不再只是提醒你会议时间,而是可以直接帮你安排会议,并发送邀请给参会者,就像一个高效的私人助理一样。 调用数据库查询信息: 可以访问和查询数据库中的信息,例如产品信息、用户信息等,就像一个专业的数据库管理员一样。 调用代码执行程序: 可以执行代码来完成各种任务,例如数据分析、图像处理等,就像一个经验丰富的程序员一样。 Function Calling 的运作机制:像"指挥家"一样协调工作,将意图转化为行动

Function Calling 的运作机制可以概括为以下几个步骤,就像一个精密的"齿轮系统",每个步骤都环环相扣,协同工作:

用户提出需求: 用户用自然语言描述他们想要完成的任务,例如"帮我预订明天从北京到上海的机票"。 就像用户向一个智能助手发出指令一样。 LLM 理解意图: 大语言模型分析用户的语言,理解其意图,并将其转化为结构化的请求。例如,它会识别出用户想要预订机票,并提取出关键信息,如出发地、目的地、日期等。 就像一个专业的翻译,将用户的自然语言翻译成机器能够理解的指令。 选择合适的工具: 大语言模型根据用户的需求,从预先定义好的工具库中选择合适的工具来完成任务。例如,它会选择一个订票网站的 API 来完成机票预订。 就像一个经验丰富的工匠,根据不同的任务选择合适的工具。 调用工具执行操作: 大语言模型将用户的需求转化为工具能够理解的参数,并调用工具执行操作。例如,它会将出发地、目的地、日期等信息传递给订票网站的 API,并请求预订机票。 就像一个熟练的操作员,操作机器完成特定的任务。 返回结果: 工具执行完成后,将结果返回给大语言模型,再由大语言模型将结果以自然语言的形式呈现给用户。例如,订票网站 API 会返回预订结果,大语言模型会将结果整理成用户友好的语言,例如"已成功为您预订明天从北京到上海的机票"。 就像一个专业的播报员,将结果清晰地传达给用户。

落地到应用上面,基本流程如下:

用户发起一个Prompt,如:今天天气如何? 应用会携带用户的Prompt,以及多个函数的定义(里面带有天气函数定义),一起发送给大模型。 大模型收到请求后,会自动判断是否需要调用这些函数,如果发现需要调用,则会将函数定义中规定的参数,返回给应用,如:"location",即哪个地方的天气,或者其他更多的参数。 应用收到这些参数后,会调用自己的方法,可能是API,也可能是一个计算逻辑,最终形成对这个函数的输出,如:10°。 应用得到函数的输出以后,会再将结果和函数定义一起,一并再次发送给大模型。 大模型会根据函数调用结果,返回给应用自然语言的回答。 应用将大模型的自然语言回答,返回给用户。

我们直接基于大模型分发助手平台,来更直观的看下这个流程。

由于大模型分发助手,定位在学习Prompt,本身不是一个整合后的对话产品,所以,对应图中的角色,可以将用户和应用合为一个,即:不需要步骤1 和7

我们直接开始关注步骤2,发送Prompt和Function定义,在大模型分发助手中,填写用户消息,并定义一个查询天气的函数,我们本次只选择一个大模型,DeepSeek(大模型间的Function Calling回复语法,很多存在差异,无法兼容)。 点击执行后,我们会收到大模型的回复

可以看到,大模型从我的提问中,了解到当前要查询天气,并且要查询的地区(location)是北京,所以返回给了我函数名称和地区

按照前面Function Calling流程图中的逻辑,我们该执行第4 步"调用函数"了,就如前面说的,大模型分发助手并非是一款大模型应用,是协助学习的,这里自己将大模型的回复发送上去,并填上温度即可,而实际应用中使用时,需要调用API去获取这个信息。相当于我们直接完成了步骤4 和5。 点击执行后,我们会再次收到大模型的回复,这时,就已经完成了整个Function Calling的整个流程。 我们在大模型分发助手的页面,再看下完整的发送和回复图。 Function Calling 的优势:突破局限,释放潜能,开启 AI 新时代

Function Calling 为大语言模型带来了诸多优势,使其能够突破自身的局限,释放更大的潜能,开启人工智能的新时代:

扩展能力边界: 让大语言模型不再局限于提供信息,而是可以执行实际操作,解决更多实际问题。这就像为大语言模型打开了一扇通往现实世界的大门,让它能够参与到人类的日常生活中,成为一个真正的助手,而不是一个只能纸上谈兵的"书呆子"。 提升效率: 通过调用外部工具,大语言模型可以更高效地完成任务,节省时间和资源。例如,它可以自动完成一些重复性的工作,例如填写表格、发送邮件等,从而提高工作效率,将人类从繁琐的重复劳动中解放出来。 增强用户体验: 让用户能够更方便地与大语言模型交互,获得更便捷的服务。例如,用户可以通过语音或文字指令,让大语言模型完成各种任务,而无需手动操作,就像拥有一个贴心的私人助理,随时随地为你服务。 实时信息获取: 通过调用外部 API,大语言模型可以获取最新的实时信息,例如天气、股价等。这使得大语言模型能够提供更加准确和及时的信息,更好地满足用户的需求,就像一个永远在线的新闻播报员,随时为你提供最新的资讯。 个性化服务: 通过调用不同的工具和 API,大语言模型可以根据用户的特定需求提供个性化服务。例如,它可以根据用户的喜好推荐餐厅、电影等,或者根据用户的行程安排提供旅行建议,就像一个了解你一切的私人定制师,为你打造专属的服务。 解决"幻觉"问题: 通过调用外部工具获取可靠的信息,可以减少大语言模型产生"幻觉"的可能性,提高其输出结果的准确性和可靠性。 这就像为大语言模型配备了一个"事实核查员",帮助它识别和纠正错误信息。 Function Calling 的应用场景:无所不能的 AI 助手,渗透到生活的方方面面

Function Calling 的应用场景非常广泛,它就像一个无所不能的 AI 助手,渗透到生活的方方面面:

智能助手: 例如 Siri、Alexa 等,可以通过 Function Calling 完成订餐、订票、设置闹钟等任务,成为用户生活中的得力助手,让生活更加便捷和智能。 客户服务: 例如自动回复机器人,可以通过 Function Calling 解答用户问题、提供技术支持等,提高客户服务效率和满意度,例如 24 小时在线客服,可以随时解答用户疑问,解决问题。 数据分析: 例如数据分析平台,可以通过 Function Calling 调用不同的数据分析工具,进行数据分析和可视化,帮助用户更好地理解数据,例如自动生成报表、图表等,帮助用户快速分析数据,发现规律。 教育领域: 例如在线教育平台,可以通过 Function Calling 提供个性化的学习资源和辅导,帮助学生提高学习效率,例如根据学生的学习进度和水平,推荐合适的学习资料和练习题。 医疗领域: 例如医疗诊断系统,可以通过 Function Calling 访问医疗数据库,辅助医生进行诊断和治疗,例如根据病人的症状和病史,查询相关的医学文献和案例,辅助医生做出更准确的诊断。 金融领域: 例如智能投顾平台,可以通过 Function Calling 分析市场数据,为用户提供投资建议,例如根据用户的风险偏好和投资目标,推荐合适的投资产品。

总结

**总结:大模型分发助手与Function Calling:解锁AIGC的无限可能**
**一、大语言模型的挑战**
大语言模型如GPT-4,虽具备强大知识储备和语言理解能力,却面临诸多限制:缺乏行动力,信息易过时,提供的服务缺乏个性化和难以处理复杂任务,同时容易生成虚构或不准确的信息(“幻觉”)。这些问题限制了其在实际应用中的有效性和价值。
**二、Function Calling的崛起**
为解决上述困境,Function Calling应运而生,成为大语言模型的重要补充。通过调用外部工具,Function Calling赋予大语言模型实践能力,使其能够与现实世界互动,从而提升用户体验,提高任务处理效率,并获取实时、准确的信息。
**三、Function Calling的工作机制**
1. **用户提出需求**:用户以自然语言形式描述任务需求,如预订机票。
2. **LLM理解意图**:大语言模型解析用户需求,转化为结构化请求。
3. **选择合适的工具**:根据需求,选择合适的工具库中的API或服务。
4. **调用工具执行操作**:将参数传递给工具并执行,完成实际任务。
5. **返回结果**:工具执行后将结果返回大语言模型,再转化为自然语言反馈给用户。
**四、Function Calling的优势**
1. **扩展能力边界**:使大语言模型能执行更多实际任务,不再局限于信息提供。
2. **提升效率**:自动化执行任务,节省时间和资源。
3. **增强用户体验**:用户通过简单指令即可享受到便捷的智能服务。
4. **实时信息获取**:获取最新信息,提高信息准确性和时效性。
5. **个性化服务**:根据用户需求提供定制化服务。
6. **解决“幻觉”问题**:减少虚假信息的生成。
**五、Function Calling的应用场景**
1. **智能助手**:完成订餐、订票、设置闹钟等日常任务。
2. **客户服务**:提升自动回复质量和客户满意度。
3. **数据分析**:调用多种分析工具,实现数据可视化和智能分析。
4. **教育领域**:提供个性化学习资源和辅导。
5. **医疗领域**:辅助医生进行诊断和治疗决策。
6. **金融领域**:为用户提供智能投资建议,提高决策质量。
通过Function Calling,大语言模型得以插上翅膀,真正成为全能的智能助手,服务于人类社会的各个角落,开启AI的新纪元。

更新时间 2024-09-13