用 Function Call 让 AI 主动调用函数(超入门级示例)|保姆级大模型应用开发实战

Function Call 是什么?

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


🎯 超简单演示:让模型告诉你当前时间

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


💡一键复制代码(超简版)

python 复制代码
import os
import requests
from datetime import datetime
from dotenv import load_dotenv

load_dotenv()
API_KEY = os.getenv("MY_API_KEY")
BASE_URL = os.getenv("MY_API_BASE_URL")

headers = {
    "Content-Type": "application/json",
    "Authorization": f"Bearer {API_KEY}"
}

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

payload = {
    "model": "gpt-4o",
    "messages": [
        {"role": "user", "content": "请告诉我现在的时间"}
    ],
    "functions": [  ## 1. 告诉模型有个函数可以用
        {
            "name": "get_current_time",
            "description": "获取当前时间",
            "parameters": {
                "type": "object",
                "properties": {}
            }
        }
    ],
    "function_call": "auto"
}

try:
    resp = requests.post(BASE_URL, headers=headers, json=payload)  ## 2. 模型分析你的提问,自动决定是否要调用这个函数
    resp.raise_for_status()
    result = resp.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)

输出结果预期

模型会告诉你:

json 复制代码
"function_call": {
  "name": "get_current_time",
  "arguments": "{}"
}

你就执行 get_current_time() 函数,返回类似:

复制代码
2025-07-24 16:12:55

✅ 总结

Function Call 是大模型连接现实世界的桥梁。

它不仅能"理解",还能"行动"!


📚 下一步建议

  • 替换成你自己的函数,如查天气、查数据库- 学会传入参数
  • 把多个函数注册进去,模型会自动选择要调用哪一个!
相关推荐
rayufo14 小时前
AI思考步骤解析
人工智能
胡伯来了14 小时前
10 Transformers - 任务容器类 Pipeline
人工智能·pipeline·transformer·transformers·大数据模型
拓端研究室14 小时前
2025人工智能AI研究报告:算力、应用、风险与就业|附1000+份报告PDF、数据、可视化模板汇总下载
人工智能
西***634714 小时前
核心技术解码:LED 视频处理器如何筑牢高清显示基石?
人工智能
王中阳Go14 小时前
三年前,我帮万人转Go;今天,聊聊Go/Java程序员如何抢占AI高地
人工智能·后端·go
STLearner14 小时前
AAAI 2026 | 时空数据(Spatial-temporal)论文总结[上](时空预测,轨迹挖掘,自动驾驶等)
大数据·人工智能·python·深度学习·机器学习·数据挖掘·自动驾驶
Coremail114 小时前
AI赋能,安全领航!Coremail受邀出席CERNET第三十一届学术年会
人工智能·安全
快乐非自愿14 小时前
AI低代码:敏捷开发与跨界协作的应用场景探索
人工智能·低代码·敏捷流程
Codebee14 小时前
于钉钉投诉的申诉与思考:行业观察的价值,在于敢说真实的问题
人工智能·产品经理·阿里巴巴
fie888914 小时前
基于MATLAB的多幅图像拼接
人工智能·计算机视觉·matlab