Deepseek的Function calling功能
一、Function Calling功能概述
- 功能定义:Function Calling(函数调用)是OpenAI在2023年8月提出的大语言模型功能,允许大语言模型调用外部工具辅助完成工作。例如在天气查询场景中,大语言模型本身不具备实时天气信息,但接入天气查询API后,当用户询问天气相关问题时,模型能主动向外部工具发起请求获取信息,从而更好地回答用户问题。
- 功能与模型性能关系:Function Calling功能的实现程度与大语言模型的性能紧密相关。只有当模型性能足够强,能够准确识别用户意图和外部函数功能时,才能较好地运用该功能完成对话任务。
二、DeepSeek模型Function Calling的实现方式
- 基于多角色对话系统:DeepSeek模型的Function Calling通过多角色对话系统实现。在该对话系统中,除了用户、系统消息、模型自身发出的消息外,还有外部工具消息。当用户提出问题,模型无法直接回答时,会查看是否有可用的外部工具。若有,模型会向外部工具发送请求,在获得外部工具的响应后,综合外部工具返回的信息和用户问题,梳理出回答内容再返回给用户。
- 具体执行流程:
三、具备Function Calling功能的模型情况
- 开源模型:通常30B以上的开源模型才具备比较好的Function Calling执行流程。
- 在线大模型:目前,如GM 4 plus、GPT 4o(2.0版本,1.5 pro也表现不错)、Claude 3.5 Sonnet等在线大模型对Function Calling功能支持较好。
四、Function Calling功能的重要性
Function Calling功能是智能体开发的重要基石。熟练掌握该功能,甚至可以在不借助agent开发框架的情况下搭建复杂的智能体。在低代码开发框架(如Cozy、Dify)进行智能体开发时,也需要了解Function Calling底层原理,因为这些框架虽无需写代码,但同样存在调用外部工具的流程。