wechatbot - パーソナル WeChat 用に ChatGPT にアクセスします

(为个人微信接入ChatGPT)

Created at: 2022-12-06 17:21:30
Language: Go

wechatbot

最近ChatGPTが異常に爆発し、このプロジェクトは、パーソナルWeChatをGPTロボットに変身することができ、 プロジェクトはopenwechatに基づいて開発されました。

友链:
chatgpt-dingtalk このプロジェクトは、GPT ボットをネイル グループ チャットに統合します。

Release Github stars Forks

現在、以下の機能が実装されています

  • GPTロボットモデルの熱は構成可能である
  • 質問はコンテキストを増やします
  • ディレクティブはコンテキストを空にします (ディレクティブ: 次の質問をします)
  • ロボットグループチャット@返信
  • ボットのプライベートチャット返信
  • プライベート チャットの返信プレフィックスの設定
  • フレンド追加は自動的に通過します

実装メカニズム

現在、ロボットを実装する方法は 2 つあります

  • リバース機能は、公式ウェブサイトAPIをピックアップし、クッキーをつかんでGPT応答情報を取得し、効果は公式ウェブサイトと一致し、クッキーは、不定期の更新を必要とするために期限切れになります。
    优点:
    缺点:
  • Openaiの公式ウェブサイトが提供するAPIに基づいて、モデルと様々なパラメータは自由に構成することができ、効果は公式ウェブサイトインテリジェンスに達しておらず、API料金、新しいアカウントは18元無料です。
    优点
    缺点:

このプロジェクトは 2 番目の方法に基づいて実装され、モデル間の特定の違いは、詳細なパラメータの例である公式ドキュメントを参照できます。

よく寄せられる質問です

  • ログインできない場合 login error: write storage.json: bad file descriptor 削除storage.jsonファイル再ログイン。
  • ログインできないその他の問題は、storage.jsonファイルを削除して再度ログインしようとしました。
  • ボットは正常に応答せず、ApiKey が正常に動作するかどうかを確認し、コンソール ログに詳細なエラー メッセージがあり、新しいバージョンは、良い質問をされたので、ボットが直接出力します。
  • Linuxの QRコードはスキャンできず、コマンドライン機能を縮小し、QRコードピクセルをできるだけ明確にします。 (コード レベルでは解決できません)
  • ボットは、コンテキストが蓄積しすぎていることが原因である可能性があるため、質問に回答しています。 別の質問を切り替えるときに、指示を送信します:私は次の質問をするつもりです。 コンテキストは空になります

前提を使用します

  • 現在、Windows 上でのみ実行がサポートされています
  • openai アカウントがあり、api_keyが作成され、登録事項はこの記事を参照できます。
  • WeChat は実名で認定する必要があります。

注意事項

  • アイテムは娯楽のみを目的としており、乱用はマイクロエンベロープ禁止のリスクがあり、商業目的では使用しないでください。
  • 機密情報の送受信に注意し、このプロジェクトは情報フィルタリングを行いません。

docker を使用して実行します

docker を使用すると、このプロジェクトをすばやく実行できます。

第一种:基于环境变量运行

# 运行项目,环境变量参考下方配置说明
$ docker run -itd --name wechatbot --restart=always -e APIKEY=换成你的key -e AUTO_PASS=false -e SESSION_TIMEOUT=60s -e MODEL=text-davinci-003 -e MAX_TOKENS=512 -e TEMPREATURE=0.9 -e REPLY_PREFIX=我是来自机器人回复: -e SESSION_CLEAR_TOKEN=下一个问题 docker.mirrors.sjtug.sjtu.edu.cn/qingshui869413421/wechatbot:latest

# 查看二维码
$ docker exec -it wechatbot bash 
$ tail -f -n 50 /app/run.log 

コマンドでマップされたプロファイルを実行するには、次のプロファイルの説明を参照してください。

第二种:基于配置文件挂载运行

# 复制配置文件,根据自己实际情况,调整配置里的内容
cp config.dev.json config.json  # 其中 config.dev.json 从项目的根目录获取

# 运行项目
docker run -itd --name wechatbot -v `pwd`/config.json:/app/config.json docker.mirrors.sjtug.sjtu.edu.cn/qingshui869413421/wechatbot:latest

# 查看二维码
$ docker exec -it wechatbot bash 
$ tail -f -n 50 /app/run.log 

ここで、プロファイルは、次のプロファイルの説明を参照します。

クイックスタート

技術者以外の方は、release の圧縮パッケージを直接ダウンロードし、解凍して実行してください。

# 获取项目
git clone https://github.com/869413421/wechatbot.git

# 进入项目目录
cd wechatbot

# 复制配置文件
copy config.dev.json config.json

# 启动项目
go run main.go

# linux编译,守护进程运行(可选)
# 编译
CGO_ENABLED=0 GOOS=linux go build -a -installsuffix cgo -ldflags '-w' -o wechatbot  ./main.go
# 守护进程运行
nohup ./wechatbot > run.log &
# 查看二维码
# tail -f -n 50 run.log

プロファイルの説明

{
  "api_key": "your api key",
  "auto_pass": true,
  "session_timeout": 60,
  "max_tokens": 1024,
  "model": "text-davinci-003",
  "temperature": 1,
  "reply_prefix": "来自机器人回复:",
  "session_clear_token": "清空会话"
}

api_key:openai api_key
auto_pass:是否自动通过好友添加
session_timeout:会话超时时间,默认60秒,单位秒,在会话时间内所有发送给机器人的信息会作为上下文。
max_tokens: GPT响应字符数,最大2048,默认值512。max_tokens会影响接口响应速度,字符越大响应越慢。
model: GPT选用模型,默认text-davinci-003,具体选项参考官网训练场
temperature: GPT热度,0到1,默认0.9。数字越大创造力越强,但更偏离训练事实,越低越接近训练事实
reply_prefix: 私聊回复前缀
session_clear_token: 会话清空口令,默认`下一个问题`

例を使用します

ボットに送信し、セッション情報を空にします。
下一个问题

プライベートチャット

グループチャット@返信