当前位置: 首页 > news >正文

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

Function Call 是什么?

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


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

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


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

import os
import requests
from datetime import datetime
from dotenv import load_dotenvload_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)

输出结果预期

模型会告诉你:

"function_call": {"name": "get_current_time","arguments": "{}"
}

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

2025-07-24 16:12:55

✅ 总结

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


📚 下一步建议

  • 替换成你自己的函数,如查天气、查数据库- 学会传入参数
  • 把多个函数注册进去,模型会自动选择要调用哪一个!
http://www.dtcms.com/a/295686.html

相关文章:

  • day 34 打卡
  • LLM中典型的Transformer层中:MLP Residual; LN Agg: μ, σ; SM Agg 是什么意思
  • [202103][Docker 实战][第2版][耿苏宁][译]
  • [Linux入门] Linux 网络设置入门:从查看、测试到配置全攻略
  • 进阶系统策略
  • 二分查找----4.搜索旋转排序数组
  • 为什么Java的String不可变?
  • 洛谷P1512 伊甸园日历游戏
  • Qt(资源库和按钮组)
  • Django基础(八)———数据库外键及表关系
  • DRF - 博客列表API
  • GaussDB 数据库架构师(八) 等待事件概述-1
  • Spring Boot项目的模块继承父项目的全部依赖
  • 中国5G RedCap基站开通情况及2025年全年计划
  • 【ComfyUI学习笔记03】案例学习:图片放大的3个基本工作流
  • 基于规则架构风格对业务的重构
  • 与deepseek的问答:dot net与Borland VCL的关系
  • 抖音小游戏好做吗?
  • MySQL的底层原理--InnoDB记录存储结构
  • 【Unity开发】飞机大战项目实现总结
  • Unity GC 系列教程第四篇:GC Alloc 优化技巧与实践(下)与 GC 调优
  • DBA常用数据库查询语句(2)
  • 【学习路线】JavaScript全栈开发攻略:前端到后端的完整征程
  • Redis数据库入门教程
  • Windchill用SQL获取所有组织下的所有用户
  • C++11之可变参数模板
  • ac日志报ARP-neighbor-failed问题定位过程
  • langchain+本地embedding模型+milvus实现RAG
  • ChatGPT Agent架构深度解析:OpenAI如何构建统一智能体系统
  • 青少年编程学习的新选择——《CCF GESP 直通车》与《GESP 编程能力等级认证一本通》深度剖析