Skip to content

haohanmao/ChatGPT-wechat-bot

 
 

Repository files navigation

ChatGPT-wechat-bot🤖

Version License: ISC

Get a WeChat robot 🤖 based on ChatGPT in a few step. 中文文档 | English

Update February 3, 2023

🔥This package no longer requires any browser hacks – it is now using the official OpenAI completions API with a leaked model🔥

Support

  • Support conversation.
  • Can set keywords to reset the previous conversation.
  • Support replying message when mentioning your bot in the group.
  • Set the keywords to wake up the WeChat robot in the group.
  • Support Dockerfile to deploy.
  • Support set retry times when request ChatGPT.
  • Catch conversation error and retry.
  • Other

Default config

{
  // Fill up with OPENAI_API_KEY
  OPENAI_API_KEY: '',
  // Setting the number of retries when API error occurs
  retryTimes: 3,
  // Setting keyword to wake up in group chat
  groupKey: '',
  // Setting keyword to wake up in private chat
  privateKey: '',
  // Setting keyword to reset context
  resetKey: 'reset',
  // Enabling auto replies from ChatGPT
  autoReply: true,
  // Using regular expression to automatically pass friends verification
  friendShipRule: /chatgpt|chat/,
  // Using reply mode in group chat
  groupReplyMode: true,
  // Using reply mode in private chat
  privateReplyMode: false,
}

How to start?

  1. Firstly, you should have an OpenAI account, then follow the steps below to get your token.

image.png image.png

  1. Now, you should fill your Token value into the OPENAI_API_KEY in the directory src/config.js, then run this project on local.

    If necessary, configure other customization variables in src/config.js.

// install dependencies
npm i

// start:
// dev
npm run dev
  1. you can see your logs, and scan qrcode to log in wechat.

    image.png

  2. Send a message to your WeChat and you will receive a reply from ChatGPT.

    image.pngimage.png

QA

  1. If your WeChat cannot log in Please check the root directory of your project, whether there is a file —— WechatEveryDay.memory-card, if so, please delete it and try it again.

  2. This package is ESM-only. It supports: Node.js >= 16.8

  3. how to get all response? you can say "continue".

image

  1. Error: Failed to launch the browser process puppeteer refer to https://github.com/puppeteer/puppeteer/blob/main/docs/troubleshooting.md#chrome-headless-doesnt-launch-on-unix
// ubuntu
sudo apt-get install chromium-browser
sudo apt-get install  ca-certificates fonts-liberation libasound2 libatk-bridge2.0-0 libatk1.0-0 libc6 libcairo2 libcups2 libdbus-1-3 libexpat1 libfontconfig1 libgbm1 libgcc1 libglib2.0-0 libgtk-3-0 libnspr4 libnss3 libpango-1.0-0 libpangocairo-1.0-0 libstdc++6 libx11-6 libx11-xcb1 libxcb1 libxcomposite1 libxcursor1 libxdamage1 libxext6 libxfixes3 libxi6 libxrandr2 libxrender1 libxss1 libxtst6 lsb-release wget xdg-utils

👏🏻Contributions

Welcome to contribute your code and ideas🍵.

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 66.8%
  • JavaScript 21.1%
  • Dockerfile 10.7%
  • Shell 1.4%