Skip to content

Zbun/node-wechat-gpt

Repository files navigation

Node WeChat GPT

基于 Next.js 构建的微信公众号 AI 聊天机器人,支持 OpenAI 和 Google Gemini 模型。

功能特点

  • 🤖 支持 OpenAI 和 Google Gemini AI 模型
  • 💬 保持对话上下文,支持连续对话
  • 🔄 智能切换,可配置默认模型
  • 🎯 自定义 AI 角色设定
  • 👋 新用户关注自动回复
  • 🧹 自动清理过期会话,优化内存使用

安装

  1. 克隆仓库:
git clone https://github.com/yourusername/node-wechat-gpt.git
cd node-wechat-gpt
  1. 安装依赖:
npm install
  1. 创建环境配置文件 .env.local
# 微信公众号配置
WECHAT_TOKEN=your_wechat_token
WECHAT_APP_ID=your_app_id
WECHAT_APP_SECRET=your_app_secret

# OpenAI 配置
OPENAI_API_KEY=your_openai_api_key
OPENAI_API_BASE_URL=https://api.openai.com  # 可选,自定义API地址
OPENAI_MODEL=gpt-3.5-turbo  # 可选,指定OpenAI模型

# Gemini 配置
GEMINI_API_KEY=your_gemini_api_key
GEMINI_MODEL_NAME=gemini-2.0-flash-lite  # 可选,指定Gemini模型

# 通用配置
GPT_MODEL=openai  # 可选,选择默认AI服务提供商: openai 或 gemini
GPT_PRE_PROMPT=你是一个小助手,用相同的语言回答问题。  # 可选,AI角色设定
MAX_HISTORY=4  # 可选,保存的对话历史轮数
WELCOME_MESSAGE=感谢关注!我是您的AI助手,可以为您解答任何问题。  # 可选,新用户关注欢迎语

# 飞书机器人配置
FEISHU_APP_ID=your_feishu_app_id
FEISHU_APP_SECRET=your_feishu_app_secret
FEISHU_VERIFICATION_TOKEN=your_feishu_verification_token
FEISHU_ENCRYPT_KEY=your_feishu_encrypt_key
  1. 启动开发服务器:
npm run dev

配置选项

变量名 说明 默认值 可选值
WECHAT_TOKEN 微信公众号令牌 必填 -
OPENAI_API_KEY OpenAI API密钥 必填(使用OpenAI时) -
OPENAI_MODEL OpenAI模型名称 gpt-3.5-turbo gpt-3.5-turbo, gpt-4, gpt-4-turbo 等
GEMINI_API_KEY Google Gemini API密钥 必填(使用Gemini时) -
GEMINI_MODEL_NAME Gemini模型名称 gemini-2.0-flash-lite gemini-1.0-pro, gemini-2.0-flash-lite, gemini-2.0-pro 等
GPT_MODEL 默认AI服务提供商 openai openai: 使用OpenAI服务
gemini: 使用Google Gemini服务
MAX_HISTORY 保存的对话历史轮数 4 任意正整数
GPT_PRE_PROMPT AI角色设定 你是一个小助手,用相同的语言回答问题。 任意文本
WELCOME_MESSAGE 新用户关注欢迎语 感谢您的关注!我是您的AI助手... 任意文本
FEISHU_APP_ID 飞书应用ID 必填 -
FEISHU_APP_SECRET 飞书应用密钥 必填 -
FEISHU_VERIFICATION_TOKEN 飞书验证令牌 必填 -
FEISHU_ENCRYPT_KEY 飞书加密密钥 可选 -

GPT_MODEL 详细说明

  • openai: 使用OpenAI服务,需要配置OPENAI_API_KEY。可通过OPENAI_MODEL指定具体模型版本,如gpt-3.5-turbo(默认)、gpt-4等。
  • gemini: 使用Google Gemini服务,需要配置GEMINI_API_KEY。可通过GEMINI_MODEL_NAME指定具体模型版本,如gemini-2.0-flash-lite(默认)、gemini-2.0-pro等。

如果配置了无效值,系统会默认使用openai服务并记录警告信息。

微信公众号配置

  1. 登录微信公众平台
  2. 进入"开发"->"基本配置"
  3. 设置服务器配置:
    • URL: https://你的域名/api/wechat
    • Token: 与环境变量中的WECHAT_TOKEN一致
    • 消息加解密方式: 明文模式

飞书机器人配置

除了微信公众号外,本项目还支持接入飞书机器人。

飞书应用配置

  1. 登录飞书开发者平台
  2. 创建一个自建应用
  3. 在"应用功能"中启用"机器人"功能
  4. 在"事件订阅"中添加请求地址:https://你的域名/api/feishu
  5. 订阅以下事件:
    • im:message.receive_v1 (接收消息)
  6. 获取并配置以下环境变量:
    • FEISHU_APP_ID: 应用凭证中的App ID
    • FEISHU_APP_SECRET: 应用凭证中的App Secret
    • FEISHU_VERIFICATION_TOKEN: 事件订阅中的Verification Token
    • FEISHU_ENCRYPT_KEY: 事件订阅中的Encrypt Key (如启用了加密)

部署

使用 Vercel 部署

Deploy with Vercel

  1. 点击上方按钮
  2. 配置环境变量
  3. 部署完成后,设置微信公众号服务器地址为 https://你的vercel域名/api/wechat

使用 Docker 部署

docker build -t node-wechat-gpt .
docker run -p 3000:3000 --env-file .env.local node-wechat-gpt

故障排除

问题: 微信公众号无法接收到回复

  • 检查服务器配置是否正确
  • 确认WECHAT_TOKEN设置正确
  • 查看日志是否有API错误

问题: AI响应过慢

  • 考虑使用更快的API端点
  • 减少MAX_HISTORY值
  • 检查网络连接

问题: 记忆上下文失败

  • 确保MAX_HISTORY值大于0
  • 检查用户ID是否正确传递

问题: 切换模型后无响应

  • 确保已配置相应模型的API密钥
  • 检查模型名称是否正确
  • 查看服务器日志中的错误信息

贡献

欢迎提交Issues和Pull Requests!

许可

MIT

About

wechat power by openAI&gemini

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published