{"id":13454794,"url":"https://github.com/pwh-pwh/aiwechat-vercel","last_synced_at":"2025-03-24T06:31:27.184Z","repository":{"id":225181373,"uuid":"764161180","full_name":"pwh-pwh/aiwechat-vercel","owner":"pwh-pwh","description":"使用vercel的functions，将ai功能加入微信公众号","archived":false,"fork":false,"pushed_at":"2025-02-27T08:21:04.000Z","size":772,"stargazers_count":789,"open_issues_count":31,"forks_count":455,"subscribers_count":6,"default_branch":"master","last_synced_at":"2025-02-27T12:05:05.351Z","etag":null,"topics":["ai","bot","gpt","vercel-serverless","wechat"],"latest_commit_sha":null,"homepage":"https://aiwechat-vercel.vercel.app","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/pwh-pwh.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-02-27T15:33:15.000Z","updated_at":"2025-02-27T08:21:08.000Z","dependencies_parsed_at":"2024-04-01T04:21:16.396Z","dependency_job_id":"63879372-42b7-4240-a433-9e67c7b96eb3","html_url":"https://github.com/pwh-pwh/aiwechat-vercel","commit_stats":null,"previous_names":["pwh-pwh/aiwechat-vercel"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pwh-pwh%2Faiwechat-vercel","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pwh-pwh%2Faiwechat-vercel/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pwh-pwh%2Faiwechat-vercel/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/pwh-pwh%2Faiwechat-vercel/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/pwh-pwh","download_url":"https://codeload.github.com/pwh-pwh/aiwechat-vercel/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245222565,"owners_count":20580185,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","bot","gpt","vercel-serverless","wechat"],"created_at":"2024-07-31T08:00:58.002Z","updated_at":"2025-03-24T06:31:26.578Z","avatar_url":"https://github.com/pwh-pwh.png","language":"Go","funding_links":[],"categories":["Go"],"sub_categories":[],"readme":"# aiwechat-vercel\n使用[vercel](https://vercel.com/dashboard)的functions，将ai功能加入微信公众号\n![image](cover.png)\n\n### 介绍\n\n无需服务器，门槛低，只需一个可以绑定到vercel的域名(无需备案)即可，基本0成本\n\n### 快速开始\n\n- 提前到Vercel创建Redis数据库\n  - Dashboard--Storage--Create--KV Redis\n![image](https://github.com/pwh-pwh/aiwechat-vercel/assets/24500520/523f9aec-faaf-415a-8cb9-520041a06d58)\n\n- Fork本Github项目，到Vercel点击构建,环境变量填写参数\n- 在vercel该项目详情页面的Storage选择连接前面创建的redis数据库\n  - 数据库链接成功后，Vercel会自动配置KV_URL环境变量\n\n#### 数据库配置详情\n\n图片步骤:\n\u003e ![config](http://mmbiz.qpic.cn/mmbiz_jpg/6q5SCtonIfFYZpvZdOUbibQBicXkllyO3K6XOp2zUv6PE3e1tqpfYA7wSYRWByZX9Wibibq9PDr6ML4iaiacTWNAaI9Q/0)\n\n更多配置[config](conf/.env.sample)\n\n```dotenv\nGPT_TOKEN=sk-*** 你的gpt token\nGPT_URL=https://xxx/v1  代理gpt服务器(选填，默认openai官网api 例如https://api.openai.com/v1)\ngptModel=gpt-3.5-turbo gpt模型(选填,默认gpt-3.5-turbo)\nWX_TOKEN=*** 微信公众号开发平台设置的token\nbotType=** 机器人类型 目前支持(gpt,echo,spark,qwen,gemini)例如botType=gpt\n```\n如何检查是否配置成功\n\n部署后访问 vercel提供的域名/api/check 页面返回check ok即可\n\n到域名提供商，域名增加`cname`解析到`cname-china.vercel-dns.com`\n\n到vercel的该项目添加自定义域名(使用国内网络在访问你的域名/api/check看看能否访问)\n\n微信公众号配置:\n\u003e 微信公众号。[微信公众平台](https://mp.weixin.qq.com/)后台管理页面上找到`设置与开发`-`基本配置`-`服务器配置`，修改服务器地址url为`https://你的域名/api/wx` 消息加解密选择明文模式(后续添加支持加密)\n\n录制了一期简单的视频教程供参考[b站](https://b23.tv/BNWDKu1)\n\n也有大佬写了自己在cloudflare部署的教程[discussions](https://github.com/pwh-pwh/aiwechat-vercel/discussions/22)\n\n### 功能支持\n\n1. 支持接入gpt,星火,通义千问,gemini\n2. 超时回复(go协程很好用)\n3. 支持连续问答(只需要在vercel创建一个redis实例，在本项目下的Storage设置连接即可，vercel会自动配置KV_URL环境变量，默认记忆对话30分钟内的内容)\n4. 隐藏功能 你的域名/api/chat?msg=你的问题  (仅用于测试是否配置gpt成功,也可用作于简单的接口api,中文乱码问题已修复)\n5. 检查配置：你的域名/api/check （显示当前bot的配置信息是否正确）\n6. 支持图床功能，即发送图片给公众号，返回图片url\n7. 被关注自定义回复\n8. 支持设置system prompt\n9. 支持指令\n\n### 指令支持\n1. /help：查看帮助\n2. /gpt：切换与GPT对话\n3. /spark：切换与星火对话\n4. /qwen：切换与通义千问对话\n5. /gemini：切换与gemini对话\n6. /prompt: 你的prompt: 设置system prompt\n7. /getpt: 获取当前设置prompt\n8. /cpt: 清除当前设置prompt\n9. /setmodel model_name:设置当前bot使用的模型\n10. /setmodel:重置当前bot的模型为默认值\n11. /getmodel:获取当前bot自定义的模型名\n12. /clear:清除对话列表\n\n有其它想要支持的指令欢迎提issue或者pr (例如查看天气啥的)\n\n### 后续计划添加指令\n1. /fy: 翻译文本\n2. /wec: 查看天气\n3. todolist管理： /ta: 添加待办事项 /td: 删除待办事项 /tl: 查看待办事项列表\n\n### 后续\n\n- 支持国内大部分可以白嫖的ai 如星火(已支持，感谢大佬pr)，通义千问(已支持，感谢大佬pr)等(有想要添加的可以提个issue)\n- 增加指令控制(已支持)，增加管理员设置\n- 关键词自定义回复\n- 支持限制问答次数\n- 支持企业微信群机器人\n- todolist功能，用户可以在机器人管理待办事件\n- 查看股票和币价\n\n### 杂念\n项目起因:偶然看到网上有人使用vercel实现了,但是功能比较单一，看了一下文档，支持go所以就想自己开发下，支持接入多一点ai和自定义功能，项目仅供学习参考\n也欢迎各位大佬pr,来个免费的\u003cmark\u003estar\u003cmark\u003e\n\n### 问题汇总\n1. 为啥要使用域名? 答: vercel提供的域名国内被墙了，微信无法访问\n2. 为啥有时候可以回复，有时候没有回复？答: 微信公众号限制答复500多字，超过回复会失败，可以增加限制字数的提示词解决。还有一个原因是答复太久，接口超时了免费版vercel的functions限制接口10s\n3. 域名需要备案吗?答:不需要，另外也可以在cloudflare托管域名(白嫖一些2级域名，托管上去，可以达到0成本)\n4. 我的是订阅号支持吗?答:无论是公众号还是订阅号,自动回复都是一个机制，所以都支持\n5. 发送信息返回错误error, status code: 403, message: invalid character '\u003c' looking for beginning of value怎么回事?答:检查GPT_URL是不是漏了/v1或者cf开了盾，墙之类的\n6. 支持接入deepseek吗?答:支持，不过有一点要注意deepseek支持的模型为deepseek-coder，deepseek-chat要正常使用，需要改gptModel为这两个模型之一\n7. 修改环境变量后，还是不成功?答:在修改环境变量后要重新部署下配置才后生效，因为vercel原来的实例没有被销毁读取的还是未修改的环境变量。建议每次修改环境变量后手动重新部署一下\n8. 微信字数限制如何解决?答:已经有大佬提pr了，可以通过设置最大token解决，设置环境变量maxOutput即可，一般设置到500，回答没有完整可以和ai说继续即可，pr详情[pr](https://github.com/pwh-pwh/aiwechat-vercel/pull/36)\n\n更多功能探讨[discussions](https://github.com/pwh-pwh/aiwechat-vercel/discussions)\n\n### Star History\n![Star History Chart](https://api.star-history.com/svg?repos=pwh-pwh/aiwechat-vercel\u0026type=Date)\n\n### 项目灵感来源\n[spark-wechat-vercel](https://github.com/LuhangRui/spark-wechat-vercel)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpwh-pwh%2Faiwechat-vercel","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fpwh-pwh%2Faiwechat-vercel","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fpwh-pwh%2Faiwechat-vercel/lists"}