Skip to content

个人微信接入ChatGPT,实现和GPT机器人互动聊天。支持私聊回复和群聊艾特回复。

Notifications You must be signed in to change notification settings

jiema123/chatgpt_wechat_robot_go

 
 

Repository files navigation

chatgpt_wechat_robot_go

个人微信接入ChatGPT,实现和GPT机器人互动聊天。支持私聊回复和群聊艾特回复。

实现功能

  • GPT机器人模型热度可配置
  • 提问增加上下文
  • 指令清空上下文
  • 机器人私聊回复
  • 机器人群聊@回复
  • 私聊回复前缀设置
  • 好友添加自动通过可配置

实现机制

基于openai官网提供的API,优点:模型以及各种参数可以自由配置,缺点:效果达不到官网智能,且API收费,新账号有18美元免费额度。

模型之间具体差异可以参考官方文档, 详细参数示例

常见问题

如无法登录login error: write storage.json: bad file descriptor 删除掉storage.json文件重新登录。

如无法登录login error: wechat network error: Get "https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxnewloginpage": 301 response missing Location header 一般是微信登录权限问题,先确保PC端能否正常登录。

其他无法登录问题 尝试删除掉storage.json文件,结束进程(linux一般是kill -9 进程id)之后重启程序,重新扫码登录。 如果为docket部署,Supervisord进程管理工具会自动重启程序。

机器人一直答非所问 可能因为上下文累积过多。切换不同问题时,发送指令:启动时配置的session_clear_token字段。会清空上下文

使用前提

  • 有openai账号,并且创建好api_key,注册事项可以参考此文章
  • 应用可以参考这篇文章 此文章
  • 微信必须实名认证。

注意事项

  • 项目仅供娱乐,滥用可能有微信封禁的风险,请勿用于商业用途。
  • 请注意收发敏感信息,本项目不做信息过滤。

源码运行

适合了解go语言编程的同学

# 获取项目
$ git clone https://github.com/jiema123/chatgpt_wechat_robot_go

# 进入项目目录
$ cd chatgpt_wechat_robot

# 复制配置文件
$ cp config.dev.json config.json

# 启动项目
$ go run main.go

配置说明

{
  "api_key": "your api key",        # openai账号里设置的api_key
  "auto_pass": true,                # 是否自动通过好友添加
  "session_timeout": 60,            # 会话超时时间,默认60秒,单位秒,在会话时间内所有发送给机器人的信息会作为上下文
  "max_tokens": 1024,               # GPT响应字符数,最大2048,默认值512。会影响接口响应速度,字符越大响应越慢
  "model": "gpt-3.5-turbo-0301",    # GPT选用模型,默认gpt-3.5-turbo-0301,具体选项参考官网训练场
  "temperature": 1,                 # GPT热度,0到1,默认0.9,数字越大创造力越强,但更偏离训练事实,越低越接近训练事实
  "reply_prefix": "来自机器人回复:", # 私聊回复前缀
  "session_clear_token": "清空会话",  # 会话清空口令,默认`下一个问题`
  "role": "assistant",
  "image_start_key": "画图画",
  "image_n": 2,
  "image_size": "512x512"
}

友情提示

本项目是 fork 他人的项目简单的做了修改来进行学习和使用,请勿商用,可以下载下来做自定义的功能。 项目基于openwechat 开发。

About

个人微信接入ChatGPT,实现和GPT机器人互动聊天。支持私聊回复和群聊艾特回复。

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 93.8%
  • Dockerfile 5.6%
  • Makefile 0.6%