【保姆级 - 大模型应用开发】Function Call 让 AI 调用函数 | 代码实战

【字节】豆包大模型家族相关 扣子:作为新一代 AI 应用开发平台,无论是否有编程基础,都可以在扣子上快速搭建基于大模型的各类 bot,并将其发布到各种社交平台、通讯软件或部署到网站等其他渠道。Function Call 模型是当前支持扣子的主力模型,可根据不同的输入指令和情景,选择不同的函数和算法来执行相关任务。火山方舟是火山引擎发布的大模型服务平台,提供模型训练、推理、评测、精调等全方位功能与服务,并重点支撑大模型生态。豆包模型已用于豆包 App、扣子、河马爱学、飞书智能伙伴、抖音电商、剪映、番茄小说等字节跳动旗下产品及业务, 阅读详情

在这里插入图片描述

Function Call 是什么?

简单来说: 让模型 主动调用 你定义好的函数


效果演示:让模型告诉你当前时间

我们模拟一个 get_current_time() 函数。只要用户问“现在几点了?”,模型就会主动调用它


📦 准备工作: 注册&申请获取 API Key

你可以使用如 OpenAI、阿里云百炼 等服务商,注册后获取一串 API 密钥 sk-xxx


💡 完整代码:无参函数

import os
import requests  ## HTTP 客户端库,需要提前安装:pip install requests


API_KEY = None  ## 注册后获取的密钥
BASE_URL = None ## 路由地址

# 构建请求头
headers = {
    "Content-Type": "application/json",
    "Authorization": f"Bearer {API_KEY}"  	## 使用 Bearer Token 认证授权
}

def get_current_time():
	from datetime import datetime
    return datetime.now().strftime("%Y-%m-%d %H:%M:%S")

# 构建请求体(对话格式)
data = {
    "model": "gpt-4o-mini",					## 要调用的模型名称 (不同模型收费不同,看具体厂商)
    "messages": [  							## 对话式 API 的核心输入,支持多轮对话
        {"role": "system", "content": "你是一个有帮助的助手"},
        {"role": "user", "content": "请告诉我现在的时间!"}
    ],
    "functions": [  ## 1. 告诉模型有个函数可以用
        {
            "name": "get_current_time",
            "description": "获取当前时间",
            "parameters": {
                "type": "object",
                "properties": {}
            }
        }
    ],
    "function_call": "auto"    
}


try:  ## 2. 尝试请求大模型
    response = requests.post(BASE_URL, headers=headers, json=data, timeout=10)  ## 发起 HTTP 请求
    response.raise_for_status()  												## 会对非 2xx 响应抛出异常
    result = response.json()
    
    choice = result["choices"][0]
    if "function_call" in choice["message"]:  ## 3. 如果决定要调用,它会返回一个函数调用请求 "function_call" 
        print("模型想调用函数:", choice["message"]["function_call"])
        print("返回当前时间:", get_current_time())  ## 4. 你捕获这个请求,真的去执行,然后把结果返回给用户
    else:
        print("模型直接回答:", choice["message"]["content"])
except Exception as e:
    print("请求失败:", e)

输出结果预期

模型想调用函数: {'name': 'get_current_time', 'arguments': '{}'}
返回当前时间: 2025-07-26 22:06:42

💡 完整代码:带参函数

✨ 新增亮点:给函数 增加参数在原来“无参”调用的基础上,我们为 get_current_time 函数新增 timezone 参数,让模型能根据时区返回当地时间。

  • 我们模拟一个 get_current_time(timezone) 函数。只要用户说“请告诉我美国纽约现在几点了?”,模型就会主动调用它并填入参数。
import os
import requests  # pip install requests
import json

API_KEY = None   ## 注册后获取的密钥
BASE_URL = None  ## 路由地址

# 构建请求头
headers = {
    "Content-Type": "application/json",
    "Authorization": f"Bearer {API_KEY}"
}

# 模拟真实功能:根据时区返回当前时间
def get_current_time(timezone="UTC"):
    from datetime import datetime
    import pytz  # pip install pytz
    tz = pytz.timezone(timezone)
    return datetime.now(tz).strftime("%Y-%m-%d %H:%M:%S")

# 构建对话请求体,带入函数定义和参数说明
data = {
    "model": "gpt-4o-mini",
    "messages": [
        {"role": "system", "content": "你是一个有帮助的助手"},
        {"role": "user", "content": "请告诉我美国纽约现在几点了?"}
    ],
    "functions": [
        {
            "name": "get_current_time",
            "description": "根据时区获取当前时间",
            "parameters": {
                "type": "object",
                "properties": {
                    "timezone": {
                        "type": "string",
                        "description": "时区,例如 America/New_York、Asia/Shanghai、UTC 等"
                    }
                },
                "required": ["timezone"]
            }
        }
    ],
    "function_call": "auto"
}

try:
    resp = requests.post(BASE_URL, headers=headers, json=data, timeout=10)
    resp.raise_for_status()
    result = resp.json()
    
    choice = result["choices"][0]["message"]
    if choice.get("function_call"):
        # 模型决定调用函数,且自动生成了参数
        func = choice["function_call"]
        print("模型想调用函数:", func["name"])
        
        # 解析模型生成的参数
        args = json.loads(func.get("arguments", "{}"))
        tz = args.get("timezone", "UTC")
        
        # 真正执行函数
        current_time = get_current_time(timezone=tz)
        print("返回当前时间:", current_time)
    else:
        print("模型直接回答:", choice.get("content"))
except Exception as e:
    print("请求失败:", e)

输出结果预期

模型想调用函数: {'name': 'get_current_time', 'arguments': '{"timezone":"America/New_York"}'}
返回当前时间: 2025-07-26 11:08:28

✅ 总结

Function Call 是大模型连接现实世界的桥梁,让大模型不仅能“理解”,还能“行动”!还能“带参行动”!


1.26 Function Call实战:让大模型调用函数,实现真正的AI Agent 本文深入解析Function Call技术如何赋能大模型成为真正的AI Agent。文章首先通过流程图和对比表展示了Function Call的核心概念与优势,包括扩展能力、获取实时数据和执行操作等。随后提供了两种实现方案:基础版FunctionCallAgent类和基于LLM的高级实现LLMFunctionCall类,均包含代码示例和运行逻辑说明。最后总结了最佳实践建议,如函数设计原则、参数验证和安全性考量,并抛出关键思考题。该技术使AI能够调用外部工具执行实际任务,为构建实用AI Agent提供了技术框 阅读详情

相关推荐

一篇文章读懂大模型Function_call和Agent的联系与区别

function_call通常指的是模型调用特定函数的能力,这些函数可以是内置的,也可以是用户自定义的。在执行任务时,模型可能会通过分析问题来决定何时以及如何调用这些函数。例如,一个语言模型在回答数学问题时,可能会使用内部的计算函数来得出答案。function_call机制允许模型利用外部工具或内部功能来增强其处理特定任务的能力。

weixin_44455388的博客 8130

简单易懂的主流大模型Functioncall调用python代码示例

支持时间获取、天气查询、web搜索、网页url内容总结、音视频url内容总结、图像生成。支持ChatGPT、Claude、Gemini、Grok、Mistral、豆包大模型、月之暗面、通义千问、讯飞星火、腾讯混元、百川智能、BigModel、零一万物、DeepSeek、Ollama

qq_62353814的博客 2719

美团大模型算法二面:Function Call三连炮!

在春招季,两位训练营学员成功获得大模型相关职位,分别来自某军实验室和第四范式。随着DeepSeek技术的流行,训练营更新了相关技术解析,包括MLA、MTP等关键技术。文章还详细解析了大模型面试中关于Functioncall的常见问题,如训练和微调方法、文本格式组织以及如何将工具/插件转化为模型可理解的方式。

weixin_51702416的博客 979

大模型 Function Calling 初探

Function Calling 是一种机制,它允许大模型在处理用户请求时,不仅能够生成自然语言回复,还能够根据需求调用外部工具或 API,以获取额外的信息或执行特定的操作。这一功能的引入,使得大模型能够更好地与现实世界的各种系统和服务进行交互,从而为用户提供更加丰富和实用的解决方案。

qq1164014750 2237

豆包 API 调用示例代码详解-Python版

通过以上步骤,我们可以成功地使用 Python 调用豆包 API 进行对话。在实际应用中,可以根据需要进一步扩展和优化代码,以满足具体的业务需求。希望这篇文章对您理解和使用豆包 API 有所帮助。如果您在实践过程中遇到任何问题,欢迎随时提问。

道长的博客 8934

dell r630 配置raid_DELL服务器RAID配置图文教程

名称解释:Disk Group:磁盘组,这里相当于是阵列,例如配置了一个RAID5,就是一个磁盘组VD(Virtual Disk): 虚拟磁盘,虚拟磁盘可以不使用阵列的全部容量,也就是说一个磁盘组可以分为多个VDPD(Physical Disk): 物理磁盘HS:Hot Spare 热备Mgmt:管理【一】创建逻辑磁盘1、按照屏幕下方的虚拟磁盘管理器提示,在VD Mgmt菜单(可以通过CTRL+P...

weixin_33253741的博客 3510

大语言模型实战(六)——面向目标架构案例之FunctionCall技巧介绍

初始化大模型# 定义3个独立任务的消息列表SystemMessage(content="你是一位乐于助人的智能小助手"),HumanMessage(content="请帮我介绍一下什么是机器学习")SystemMessage(content="你是一位乐于助人的智能小助手"),HumanMessage(content="请帮我介绍一下什么是AIGC")SystemMessage(content="你是一位乐于助人的智能小助手"),

swpucwf的博客 929

CMAC算法原理

2、K1 通过以下运算导出:若 L 的最高有效位等于 0,则 K1 是 L 的左移 1 位。3、K2 通过如下运算导出:若 K1 的最高有效位等于 0,则 K2 是 K1 的左移 1 位。采用了 AES 算法中的类似 CBC 模式的加密方式,即对前一个分组的密文与当前分组的明文进行异或操作后在加密,2、分块处理:首先将消息分成多个固定长度的块,若消息长度不是块大小的倍数,则可以使用填充来将其填充到合适的大小。1、子密钥计算,通过主密钥生成子密钥(key1,key2),子密钥用于最后一个块处理;

sky的博客 1659

大模型Function Call详解(收藏级教程)从零基础到实战应用,一篇就够了!

注册可用函数Function Call让DeepSeek从"只会说话"变成了"会做事"的助手。它像是大模型与现实世界之间的桥梁,让AI不再封闭在自己的知识库中,而是能够主动获取信息、使用工具、解决实际问题。正如一位优秀的管家不仅能听懂主人的各种需求,还知道如何调动合适的资源来满足这些需求,Function Call让大模型有了"管家效率",能够更加全面而精准地为用户服务。通过这种能力,DeepSeek和其他大模型正逐步从信息提供者转变为行动的助手,为我们的生活和工作带来更多便利与可能。

bagell的博客 1978

Veeam Backup Replication Console 13 备份 PVE

本文介绍了如何通过Veeam Backup & Replication控制台配置与Proxmox VE(PVE)服务器的连接,包括主机地址、用户名密码和SSH信任设置。随后详细说明了部署备份Worker虚拟机的步骤,涵盖网络配置和VM创建。接着指导用户创建PVE虚拟机备份任务,包括命名、选择备份对象、存储位置、备份类型设置,以及配置备份计划任务。最后描述了备份测试执行过程,从启动备份到完成状态通知的完整流程。整个操作涉及服务器连接、Worker部署、备份配置和任务执行四个主要环节。

极致,细节 1605

【 史上最全】测绘、遥感RS、地信GIS国家级比赛竞赛整理

目录Esri Esri

weixin_43910227的博客 9154

AI agent,MCP,Function Call简述

AI Agent是以大语言模型(LLM)为核心,具备规划、记忆和工具调用能力的智能代理系统。与需要明确指令的大模型不同,AI Agent仅需给定目标即可自主拆解任务并执行,通过Function Call实现外部操作,借助MCP协议协调多工具协同工作。其记忆模块分短期和长期记忆,采用向量数据库等技术存储信息。三者协同提升AI对外交互能力,使AI从"执行指令"向"管理复杂任务"演进,有望成为未来主流AI应用形式,预测到2028年15%日常工作将由AI Agent自主完成。

m0_72961844的博客 1797

交换芯片数据通路四大核心微架构深度解析

数据通路是交换芯片性能的物理根基,决定着低延迟、高吞吐与突发承载能力。其本质是在硅片约束下对带宽、时序、功耗与统计复用的系统性权衡。Crossbar提供确定性低延迟但受RC延迟与功耗制约;VOQ通过虚拟队列隔离输出争抢,却引入仲裁复杂度与内存开销;Shared Buffer依托统计复用提升缓存利用率,但面临碎片化与管理策略挑战;Cell Fabric以固定长度cell重构交换粒度,在AI与金融等小包敏感场景实现尾延迟稳定。这些架构并非替代关系,而是面向不同网络不确定性(如流量不对称性、突发强度、包长分布)的

weixin_32667955的博客 189

收藏!大模型Function Call入门指南,小白也能开发实用Agent应用

开发基于大模型 + function call 的 agent 应用,核心在于理解大模型如何通过函数调用与外部世界交互。只要按照明确需求、选择模型、准备工具、设计流程、开发测试这几个步骤逐步推进,小白也能快速入门。在开发过程中,遇到问题不要怕,多查阅文档、多进行测试,就能不断提升应用的效果。希望本文能为小白们提供一个清晰的入门路径,让你在人工智能应用开发的道路上迈出坚实的一步。

m0_48891301的博客 1608

手把手教你学PCIE--基本概念:PCIe 初始化流程概述

硬件上电复位:系统上电时,所有 PCIe 设备都会进行复位。链路训练(Link Training):主机和设备之间通过链路训练状态机(LTSSM)协商链路参数(如速度和宽度)。配置空间访问:主机通过配置空间读写来发现和配置设备。资源分配:主机为设备分配内存映射 I/O 区域(BARs)、中断向量等资源。驱动程序加载和高级配置:操作系统加载设备驱动程序,并进行更高级的配置和状态监控。硬件上电复位:确保所有设备处于已知的良好状态。链路训练:主机和设备通过 LTSSM 协商链路速度和宽度。

MHD0815的博客 1376

Python 爬虫实战:去哪儿网机票价格爬取与出行比价分析

本文介绍了一个基于Python的机票价格监控系统,通过爬取去哪儿网数据实现多航线查询与智能比价。系统采用requests+BeautifulSoup+selenium技术栈,具备以下功能: 实时查询指定航线价格 历史价格追踪与分析 最低价推荐与价格预警 数据可视化展示 文章详细解析了去哪儿网的页面结构和反爬机制,提供了Selenium浏览器的完整配置方案,并实现了一个可稳定运行的机票采集爬虫。该系统能帮助用户掌握价格波动规律,选择最优购票时机,每年可节省可观的出行成本。

u014481728的博客 672

一文搞懂大模型Function Call:从概念到实战应用

摘要: Function Call 是大模型与外部世界交互的关键机制,通过调用外部函数获取实时数据、个性化信息并执行实际操作。文章详细介绍了其工作原理:模型根据用户问题生成函数调用参数,应用执行后返回结果,模型最终生成回答。通过注册函数定义(名称、参数、返回值等)到模型上下文,实现动态工具调用。文章还探讨了Function Call与MCP(工具接入标准化)和Agent(多步流程编排)的关系,指出它们共同扩展了大模型的能力边界,使其从静态知识库进化为可执行复杂任务的中枢系统。

2301_76168381的博客 1763

Autosar诊断实战系列02-Dem(DTC&Event)要点及配置开发详解

Dem模块及其与Dcm等其他模块的交互是整个诊断Stack的重中之重,本文先对与其他模块的交互逻辑进行介绍,有一定掌握后继续重点介绍配置部分的开发。

initiallizer的博客 3332

AI大模型开发教程,AI大模型开发保姆级教程,收藏这一篇就够了!

2022年11月30日,OpenAI公司发布了GPT3.5模型,同时对外开放了ChatGPT产品。人工智能突然进入了普通人的生活中,各种AI应用如雨后春笋般出现。不过,大部分的AI应用都还处于探索阶段。传统应用究竟该如何与AI结合?没有人有正确答案,所有的企业和开发者都在不断摸索,争做AI时代的引领者。Java语言,作为服务端应用的开发的佼佼者。自然也是不甘落后。Java领域鼎鼎有名的Spring公司率先推出的SpringAI框架,正是Java对AI大模型开发的一种探索。

h1453586413的博客 3716

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

大模型ReAct框架——打造AI Agent的代码实现——基于LLM + Function Call构建Agent

“Agent通过大模型的推理和规划,使得大模型真正实现类似人类的能力” AI Agent也就是AI智能体,是通过把大模型作为“大脑”,通过利用大模型的推理和规划能力,然后调用外部工具来完成复杂任务的一种方式。 简单来说,Agent就是一种让大模型自己思考和分析问题,选择合适的工具,最终解决问题的一种方法,其背后原理就来自于ReAct。

2401_85325397的博客 3246

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

【小白入门】如何快速开发基于大模型+function call的agent应用?

对于刚入门的小白来说,开发基于大模型 + function call 的 agent 应用,可能听起来有些复杂,但只要掌握了核心要点,就能快速上手。本文就为小白们详细拆解这一过程。

EnjoyEDU的博客 1132

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

保姆级教程:Function Call详解 - 解锁大模型“服务员“超能力

Function Call是大模型的"服务员",能理解用户需求、转化为函数调用、执行外部工具并返回结果。它解决了大模型无法执行实时操作、进行复杂计算和访问外部资源的三大短板。通过函数定义与注册、意图识别、函数执行三步实现,使大模型从"只会说话"变成"会做事"的助手,是连接AI与现实世界的桥梁,在智能客服、个人助理等领域有广泛应用价值。

aolan123的博客 923

AI 入门—— 一起来学Function Call、MCP、Agent

本文探讨了人工智能领域中Function Call、MCP和Agent三个核心概念的区别与联系。Function Call是大模型直接调用外部函数或API的能力,用于增强模型功能;MCP(Model Context Protocol)是LLM与外部工具交互的标准化通信协议,提供统一接口框架;Agent则是具备自主决策能力的智能实体,能够动态规划并调用各类工具完成任务。三者构成层级关系:Function Call提供基础调用能力,MCP建立标准化连接,Agent则实现高层次自主决策。

最美不过,心中有梦,身旁有你! 2214

小白入门指南:用Function Call让大模型“动手干活”

开发基于大模型 + function call 的 agent 应用,核心在于理解大模型如何通过函数调用与外部世界交互。只要按照明确需求、选择模型、准备工具、设计流程、开发测试这几个步骤逐步推进,小白也能快速入门。在开发过程中,遇到问题不要怕,多查阅文档、多进行测试,就能不断提升应用的效果。希望本文能为小白们提供一个清晰的入门路径,让你在人工智能应用开发的道路上迈出坚实的一步。

qq_46094651的博客 907

大模型算法面经:Function Call、MCP、A2A

这些是关于大型语言模型(LLM)的 Function Calling、MCP、A2A 比较常见的问题。将 Function Calling 能力赋予 LLM 主要通过实现,而不是在预训练阶段从零开始专门训练。基础模型需要先具备良好的指令遵循和代码/结构化数据生成能力。这个其实看一下HuggingFace上常见的Function-Call数据集就知道了。在训练和推理时,将信息喂给模型的格式至关重要。用户发出请求,例如 "帮我查一下明天上海的天气,然后给张三发邮件告诉他结果"。

2401_84204207的博客 1810
上一篇: 【保姆级 - 大模型应用开发】零基础调用大模型 API | 代码实战
下一篇: 【保姆级 - 大模型应用开发】DeepSeek 的创新全解析 | 快速了解
CODE_RabbitV
博客等级 码龄7年 2932粉丝 218原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值