Function Calling介绍
使用场景
大语言模型在处理复杂任务时可能会遇到自身能力的局限性,例如需要调用实时数据、执行专业领域计算或进行特定服务操作时,模型本身的知识和能力可能无法满足需求。这种情况下,如何让模型突破自身限制,完成更复杂的任务成为了亟待解决的问题。大语言模型的Function Calling能力正是为了解决这一问题而设计的。通过Function Calling,模型能够调用外部函数或服务,从而扩展其自身的能力边界,执行它本身无法完成的任务。这种机制不仅提升了模型的实用性,还使其能够处理更复杂、更专业的场景,例如实时天气查询、数据分析、API调用等,从而显著提升了模型的准确性和任务处理效率。以下是一些Function Calling的使用场景:
使用场景 |
说明 |
---|---|
增强能力 |
大模型通过Function Calling可以调用外部工具或服务,例如实时数据检索、文件处理、数据库查询等,从而扩展其能力。 |
实时数据访问 |
由于大模型通常基于静态数据集训练,不具备实时信息。Function Calling允许模型访问最新的数据,提供更准确、更及时的回答。 |
提高准确性 |
在需要精确计算或特定领域知识时,大模型可以通过调用专门的函数来提高回答的准确性,例如调用数学计算函数、翻译服务或专业知识库。 |
支持模型
支持Qwen2.5系列预置服务:
- Qwen2.5-72B-32K-1128
- Qwen2.5-72B-Instruct-1128
- Qwen2.5-7B-Instruct-1128
使用方式
- 方式一:在请求体中添加相关函数。
"tools": [ { 'type': 'function', 'function': { 'name': '对应到实际执行的函数名称', 'description': '此处是函数相关描述', 'parameters': { '_comments': '此处是函数参数相关描述' }, } }, { '_comments': '其他函数相关说明' } ]
- 方式二:通过OpenAI库发起请求。
response = client.chat.completions.create( model="MaaS模型名称", messages = messages, tools=[ { 'type': 'function', 'function': { 'name': '对应到实际执行的函数名称', 'description': '此处是函数相关描述', 'parameters': { // 此处是函数参数相关描述 }, } }, { // 其他函数相关说明 } ] // chat.completions 其他参数 )