当前位置: 首页 > 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.xdnf.cn/news/1181089.html

相关文章:

  • SpringBoot航空订票系统的设计与实现
  • 进阶系统策略
  • 技术赋能多元探索:我的技术成长与行业洞察
  • Linux应用开发基础知识——进程学习2(exec函数、system函数、popen函数)(三)
  • 斐波那契数列策略
  • 人形机器人_双足行走动力学:Maxwell模型及在拟合肌腱特性中的应用
  • Java学习----原型模式
  • 使用Claude Code从零到一打造一个现代化的GitHub Star项目管理器
  • day46day47 通道注意力
  • 无源域自适应综合研究【2】
  • C++ 性能优化
  • 力扣 hot100 Day54
  • pytest中使用skip跳过某个函数
  • 无人机速度模块技术要点分析
  • 第三章:掌握 Redis 存储与获取数据的核心命令
  • MNIST 手写数字识别模型分析
  • 秋叶sd-webui频繁出现生成后无反应的问题
  • 【Web APIs】JavaScript 节点操作 ⑧ ( 删除节点 - removeChild 函数 | 删除节点 - 代码示例 | 删除网页评论案例 )
  • 算法竞赛阶段二-数据结构(34)数据结构链表STL vector
  • 【PyTorch】图像二分类项目-部署
  • Spring Boot 3整合Spring AI实战:9轮面试对话解析AI应用开发
  • HttpServletRequest深度解析:Java Web开发的核心组件
  • PyTorch数据选取与索引详解:从入门到高效实践
  • Vue3 面试题及详细答案120道(91-105 )
  • 开立医疗2026年校园招聘
  • 论文复现-windows电脑在pycharm中运行.sh文件
  • 工具篇之开发IDEA插件的实战分享
  • C# 方法执行超时策略
  • 处理URL请求参数:精通`@PathVariable`、`@RequestParam`与`@MatrixVariable`
  • Lua元表(Metatable)