Function Calling介绍

👨 作者简介:大家好,我是Taro,全栈领域创作者

✒️ 个人主页:唐璜Taro

🚀 支持我:点赞👍+📝 评论 + ⭐️收藏


文章目录


前言

大语言模型(LLM)在处理复杂任务时可能会遇到自身能力的局限性,例如无法调用实时数据、或进行特定服务操作时。这种情况下,如何让模型突破自身限制,完成更复杂的任务成为了亟待解决的问题。Function Calling正是为了解决这一问题而设计的


提示:以下是本篇文章正文内容,下面案例可供参考

一、Function Calling是什么?

Function Calling = AI 发现自己"不会" → \rightarrow → 查"说明书"找工具 → \rightarrow → 呼叫外部程序帮忙。

1. 帮助LLM突破自身局限

  • 实时性:AI 没联网,不知道今天几度?------调用天气 API。

  • 准确性:AI 算复利经常出错?------调用专业计算器。

  • 操作性:AI 只能动嘴,没法发邮件?------调用邮箱服务。

二、使用步骤

Function Calling的过程发生在调用 LLM 接口的那一刻。它并不是存储在 LLM 的数据库里,而是作为你发送给 AI 的**请求参数(Request Body)**的一部分

1.在请求体中添加相关函数。

代码如下(示例):

c 复制代码
"tools": [
    {
        'type': 'function',
        'function': {
            'name': '对应到实际执行的函数名称',
            'description': '此处是函数相关描述',
            'parameters': {
                '_comments': '此处是函数参数相关描述'
            },
        }
    },
    {
        '_comments': '其他函数相关说明'
    }
]

2.通过OpenAI库发起请求

代码如下(示例):

c 复制代码
response = client.chat.completions.create(
    model="MaaS模型名称",
    messages = messages,
    tools=[
        {
            'type': 'function',
            'function': {
                'name': '对应到实际执行的函数名称',
                'description': '此处是函数相关描述',
                'parameters': {
                    // 此处是函数参数相关描述
                },
            }
        },
        {
            // 其他函数相关说明
        }
    ]
    // chat.completions 其他参数
)

该处使用的url网络请求的数据。


三、极简场景对比

总结

以上就是今天要讲的内容,本文仅仅简单介绍了\通过Function Calling,LLM能够调用外部函数或服务,从而扩展其自身的能力边界,执行它本身无法完成的任务。

这种机制不仅提升了模型的实用性,还使其能够处理更复杂、更专业的场景,例如实时天气查询、数据分析、API调用等,从而显著提升了模型的准确性和任务处理效率

相关推荐
用户8356290780511 分钟前
使用 Python 合并 PowerPoint 演示文稿
后端·python
weixin_4617694014 分钟前
VS Code 中创建 Jupyter 文件(.ipynb)
ide·python·jupyter
2601_9669496531 分钟前
多市场量化策略的数据接口应该如何设计:从数据层架构到策略接入
开发语言·python·数据分析·pandas·量化交易·股票数据·quantdash
全栈弄潮儿40 分钟前
Python实战第1期:Python环境搭建与第一个程序
python
心易行者1 小时前
Agent应用+API端点商业化进阶实战:从单体智能体到可付费调用的API全流程
运维·服务器·人工智能·python·apache
weixin199701080161 小时前
《1688图片空间API踩坑:img.upload 与 album.* 的防盗链与CDN缓存问题》(附Python源码)
开发语言·python·缓存
布吉岛的石头1 小时前
Java 程序员第 49 阶段11:Java 接 BERT:用 ONNX Runtime 做句向量推理
java·人工智能·python·深度学习·bert·transformer
第25小时记录1 小时前
数据结构与算法 -第 3 章 常用算法-动态规划
数据结构·python
Dmz丶1 小时前
前端转 AI 100 天 Day 18:pytest 入门——为什么你必须要写测试
python
用户019027581612 小时前
如何用 Python 计算 DMA 平行线差指标?
python