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

相关文章:

  • Linux 进程间通信:共享内存详解
  • Spring Boot 3整合Spring AI实战:9轮面试对话解析AI应用开发
  • 【OD机试】矩阵匹配
  • 【分布式锁】什么是分布式锁?分布式锁的作用?
  • redis前期工作:环境搭建-在ubuntu安装redis
  • 实验-OSPF
  • 开立医疗2026年校园招聘
  • 【论文|复现】YOLOFuse:面向多模态目标检测的双流融合框架
  • OSPF路由协议单区域
  • Selenium基础教程
  • 在Ubuntu上使用QEMU学习RISC-V程序(2)gdb调试
  • 【OpenCV篇】OpenCV——03day.图像预处理(2)
  • 征服 Linux 网络:核心服务与实战解析
  • 《从点击到共鸣:论坛前端如何用交互细节编织用户体验》
  • GISBox实操指南:如何将IFC文件高效转换为3DTiles格式‌‌
  • JVM 核心内容
  • Java并发编程第六篇(AQS设计理念与源码解析)
  • Linux724 逻辑卷挂载;挂载点扩容;逻辑卷开机自启
  • 快速启用 JMeter(macOS Automator 创建 JMeter 脚本)
  • VUE2 学习笔记5 动态绑定class、条件渲染、列表过滤与排序
  • 【AJAX】XMLHttpRequest、Promise 与 axios的关系
  • 最新免费使用Claude Code指南(Windows macOS/Linux)
  • web前端调试
  • 前端如何做安全策略
  • easyexcel流式导出
  • Windows计算器项目全流程案例:从需求到架构到实现
  • 4.5 优化器中常见的梯度下降算法
  • 绿色转向的时代红利:创新新材如何以技术与标准主导全球铝业低碳重构
  • 从手动操作到自动化:火语言 RPA 在多系统协作中的实践
  • 飞腾D3000麒麟信安系统下配置intel I210 MAC