如何在wechatSDK中开发自定义天气插件:OpenAI Function Calling函数调用完整教程

发布时间:2026/10/29 14:07:19

如何在wechatSDK中开发自定义天气插件:OpenAI Function Calling函数调用完整教程 如何在wechatSDK中开发自定义天气插件OpenAI Function Calling函数调用完整教程【免费下载链接】wechatSDK微信机器人是一个创新的基于Python 3.11开发的项目通过结合ChatGPT模型和微信原生API为用户提供智能聊天、自动绘画、自动发朋友圈、自动发视频号等多样的API集成服务旨在提升日常沟通效率和趣味性。项目地址: https://gitcode.com/gh_mirrors/we/wechatSDKwechatSDK 是一个基于 Python 3.11 的微信机器人项目将 ChatGPT 模型与微信原生 API 结合实现智能聊天、AI 绘画、自动发朋友圈等能力。本教程带你走通在 wechatSDK 中开发自定义天气插件的完整流程掌握OpenAI Function Calling 函数调用的核心机制让你的微信机器人一句话就能查天气并轻松扩展更多智能能力。 一句话理解核心思想给 AI 写一张函数名片模型需要时会自动调用它把真实天气数据变成自然回答。什么是 OpenAI Function Calling让 AI 会动手的原理普通的 ChatGPT 只会说而 Function Calling 给了 AI 一双手。你告诉模型有哪些函数可用、各需要什么参数当用户问明天北京适合跑步吗时模型不会胡编而是先返回一个函数调用请求由你的程序执行函数拿到真实数据再喂回模型组织成自然回答。在 wechatSDK 中这条链路已经为你搭好用户微信发消息明天北京天气怎么样 ↓ GPT 判断需要数据 → 返回函数调用 get_forecast_weather(...) ↓ wechatSDK 执行天气插件请求真实天气 API ↓ GPT 拿到数据 → 自然语言回复明天多云 22℃适合跑步 ☀️其中模型交互与插件调度由bot/infrastructure/chatgpt/OpenAIHelper.py完成插件统一放在bot/infrastructure/plugins/目录下。环境准备5 分钟跑起 wechatSDK在开发插件前先把项目跑起来需要 Windows Python 3.11git clone https://gitcode.com/gh_mirrors/we/wechatSDK cd wechatSDK python -m venv venv # Windows 下用 venv\Scripts\activateLinux/macOS 用 source venv/bin/activate pip install -r requirements.txt python app.py依赖清单见requirements.txt启动入口为app.py。自定义天气插件开发三步法wechatSDK 的插件都继承同一个接口bot/infrastructure/plugins/Plugin.py它只定义了 3 个抽象方法方法职责生活化比喻get_source_name()返回插件源名称如OpenMeteo插件的开关名配置用get_spec()返回函数名片JSON Schema告诉 AI 你能做什么、要哪些参数execute()真正执行函数并返回 JSON 结果干活的手第 1 步继承 Plugin 接口搭好插件骨架新建bot/infrastructure/plugins/my_weather.py定义一个继承Plugin的类实现上述 3 个方法即可。框架会自动扫描该目录无需手动注册。官方天气插件在bot/infrastructure/plugins/weather.py中注册了两个函数get_current_weather—— 查当前天气get_forecast_weather—— 查未来 N 天预报最多 14 天第 2 步编写函数规范——给 AI 一张名片get_spec()的精髓是把每个参数描述清楚类型 说明让模型知道该填什么。weather 插件的核心参数如下latitude: {type: string, description: Latitude of the location}, longitude: {type: string, description: Longitude of the location}, unit: {type: string, enum: [celsius, fahrenheit]}✍️ 小技巧description写得好AI 填参才准确有固定取值时用enum约束可大幅减少填错。这是 Function Calling 效果好不好的关键。第 3 步实现 execute()——真正动手的环节在execute()中接收模型填好的参数去调用真实 API。官方天气插件使用的是免费的 OpenMeteo 服务def execute(self, function_name, **kwargs) - Dict: url fhttps://api.open-meteo.com/v1/forecast?latitude{kwargs[latitude]} url flongitude{kwargs[longitude]}temperature_unit{kwargs[unit]} if function_name get_current_weather: url current_weathertrue return requests.get(url).json() # get_forecast_weather 则追加 daily、forecast_days 等参数返回 JSON 即可框架会自动把结果回传给模型。想写个最简单的插件练手参考零参数的bot/infrastructure/plugins/now_time.py查询当前时间。插件如何被自动发现并启用bot/infrastructure/PluginManager.py在启动时自动扫描bot/infrastructure/plugins/下所有.py文件找出继承Plugin的类并只加载get_source_name()命中的插件。是否启用由两个环境变量控制读取逻辑见bot/config/config_loader.py环境变量作用示例值PLUGINS启用的插件源名称列表逗号分隔OpenMeteo,NowTimeENABLE_FUNCTIONS是否开启函数调用true启用后bot/infrastructure/chatgpt/OpenAIHelper.py会把所有函数的名片附加到每次 OpenAI 请求中并循环调用插件直到模型不再需要函数上限由FUNCTIONS_MAX_CONSECUTIVE_CALLS控制默认 10 次。实战效果查天气、AI 绘画、自动发朋友圈天气插件跑起来后在微信里直接问这周末杭州天气怎么样机器人就会自动调用get_forecast_weather并回复逐日预报。更酷的是组合拳wechatSDK 可以让模型查完天气后再调用 AI 绘画能力根据天气生成图片并自动发布到朋友圈——下面这位歌手就是机器人绘制的作品展示了同一个 Function Calling 机制驱动 AI 绘图的效果新手常见坑与快速排查插件没生效检查get_source_name()返回值与PLUGINS环境变量是否完全一致区分大小写。AI 不调用函数确认ENABLE_FUNCTIONS为true且所选模型支持函数调用。AI 填错参数优化get_spec()中的description尽量用enum限制取值。只想测一个插件先照now_time.py写个零参数插件跑通后再加复杂逻辑。总结你的第一个微信机器人插件已就位步骤做什么相关文件1继承Plugin接口实现 3 个方法bot/infrastructure/plugins/Plugin.py2编写函数名片JSON Schemabot/infrastructure/plugins/weather.py3实现execute()调用真实 APIbot/infrastructure/plugins/weather.py4配置PLUGINS、ENABLE_FUNCTIONS环境变量bot/config/config_loader.py掌握了 OpenAI Function Calling 与 wechatSDK 的插件体系你的微信机器人就能从聊天搭子进化为全能助手——接下来不妨试试开发提醒、汇率、新闻搜索等属于自己的新插件【免费下载链接】wechatSDK微信机器人是一个创新的基于Python 3.11开发的项目通过结合ChatGPT模型和微信原生API为用户提供智能聊天、自动绘画、自动发朋友圈、自动发视频号等多样的API集成服务旨在提升日常沟通效率和趣味性。项目地址: https://gitcode.com/gh_mirrors/we/wechatSDK创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
延伸阅读

更多相关文章

2026/10/29 14:06:50

实时图像处理优化:硬件加速与算法调优实践

1. 实时图像处理的行业现状与技术挑战在安防监控、工业质检、自动驾驶等场景中,实时图像处理系统需要以毫秒级延迟完成从采集到分析的闭环。以120fps的4K视频流为例,单帧处理时间必须控制在8ms以内,这对算法效率和硬件加速提出了严苛要求。当…

2026/10/29 14:06:50

角形级联H桥STATCOM在电网不平衡治理中的应用与优化

1. 角形级联H桥STATCOM在不平衡电网中的应用背景电力系统中的电压不平衡问题一直是影响电能质量的重要因素。当电网出现不平衡工况时(如单相负载突增、不对称短路等),传统的星形连接STATCOM往往难以有效抑制负序分量。角形级联H桥&#xff08…

2026/10/29 14:06:50

五片式显微物镜装调实战:星点法调校与像差判读全解析

光学镜头装配这行,说到底是三分靠设计、七分靠装调。一套五片透镜的显微物镜,图纸上的公差标得再漂亮,落到镜筒里能不能收敛到衍射极限附近,全看装配台上那几双手。星点法是我个人最偏爱的调校手段——它不像干涉仪那样依赖昂贵的…

2026/10/29 14:06:50

Advent of Code 2015-2020 六年题库算法考点与答题节奏全解析

简介:面向希望借经典赛题打磨算法与Python工程能力的开发者,这份资源汇集了Advent of Code 2017至2020年全部题目的个人解答,按年份与日期组织成可直接运行的代码仓库,适合作为刷题参考、算法复盘与语言进阶的实战素材。压缩包共2…

2026/10/29 14:01:49

嵌入式非易失存储选型:FRAM、MRAM、EERAM与ReRAM对比

做嵌入式存储选型的人,近几年大概都被同一个场景折磨过:产品要求每秒记录一次运行数据,还要保证掉电瞬间不丢,用传统EEPROM算一算寿命,一天就写穿;换NOR Flash,擦除块大、写入慢,掉电…

2026/10/28 14:42:12

全国计算机二级C语言真题PDF高效刷题指南

简介:这份PDF是全国计算机二级C语言考试的试题与答案解析,专为备考二级C语言的考生准备。内容涵盖C语言特点与设计理念、程序基本组成单位、main函数执行流程、函数嵌套调用规则、标识符命名规范、整型实型字符型数据类型、八进制十六进制数合法形式、运…

2026/10/28 15:28:56

requests+BeautifulSoup:爬虫抓取h1标题的入门实战指南

简介:一份以实战为导向的Python爬虫入门资源,面向具备基本编程基础、希望快速掌握网络数据抓取的初学者,可解决从零编写简单爬虫的常见困惑。实例以requests库发送HTTP请求、BeautifulSoup解析HTML文档,完整演示从网页中提取 标题…

2026/10/28 3:32:29

递推最小二乘参数辨识MATLAB编程:二阶系统与渐消记忆实现

简介:这是一篇面向控制系统、信号处理与机器学习等领域学习者的最小二乘参数辨识程序说明文档。资源共包含一个docx格式文档,压缩包大小七十八KB,内容围绕递推最小二乘算法和渐消记忆最小二乘算法展开:先构造一个极点位于单位圆内…

2026/10/29 0:03:42

学生选课系统DFD图绘制指南:边界划分与分层校验实战

简介:文档以顶层与第一层DFD图为核心,完整刻画学生选课系统的逻辑模型,面向软件工程课程设计、系统分析学习及毕设前期建模人群。顶层图界定系统边界,外部实体包括管理员、教师和学生三类角色;第一层图进一步细化用户登…

2026/10/29 0:03:42

JIRA敏捷落地:Scrum角色权限、Sprint与燃尽图避坑指南

简介:围绕“基于JIRA的敏捷开发项目管理”这一主题,面向产品负责人、Scrum Master及研发测试成员,梳理Scrum角色分工、迭代流程与JIRA工具配置的对应关系,适合初、中级团队导入敏捷管理时参考。压缩包共1个docx文件,大…

2026/10/29 0:03:42

SEMI S8人机工程验收实战:从条款拆解到现场实测的完整指南

简介:面向半导体设备设计、制造与运维工程师及安全合规人员,这份资料聚焦SEMI标准体系下的设备安全规范,重点收录SEMI S8-0308《半导体制造设备人体工程学工程安全指南》。内容围绕设备设计原则、错误与事故预防、人体工程学适配三大主线展开…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑