更新时间:2025-09-12 GMT+08:00
分享

Function Calling介绍

使用场景

大语言模型在处理复杂任务时可能会遇到自身能力的局限性,例如需要调用实时数据、执行专业领域计算或进行特定服务操作时,模型本身的知识和能力可能无法满足需求。这种情况下,如何让模型突破自身限制,完成更复杂的任务成为了亟待解决的问题。大语言模型的Function Calling能力正是为了解决这一问题而设计的。通过Function Calling,模型能够调用外部函数或服务,从而扩展其自身的能力边界,执行它本身无法完成的任务。这种机制不仅提升了模型的实用性,还使其能够处理更复杂、更专业的场景,例如实时天气查询、数据分析、API调用等,从而显著提升了模型的准确性和任务处理效率。以下是一些Function Calling的使用场景:

表1 Function Calling使用场景说明

使用场景

说明

增强能力

大模型通过Function Calling可以调用外部工具或服务,例如实时数据检索、文件处理、数据库查询等,从而扩展其能力。

实时数据访问

由于大模型通常基于静态数据集训练,不具备实时信息。Function Calling允许模型访问最新的数据,提供更准确、更及时的回答。

提高准确性

在需要精确计算或特定领域知识时,大模型可以通过调用专门的函数来提高回答的准确性,例如调用数学计算函数、翻译服务或专业知识库。

支持模型

支持Qwen2.5系列预置服务:

  • Qwen2.5-72B-32K-1128
  • Qwen2.5-72B-Instruct-1128
  • Qwen2.5-7B-Instruct-1128

计费影响

  • 调用我的服务或者预置服务-商用服务时,会按照Token使用量计费,计费详情请参见计费说明
  • 部署Dify平台需要资源成本,具体费用请参考资源和成本规划

使用方式

  • 方式一:在请求体中添加相关函数。
    "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 其他参数
    )
    

相关文档