/chatbot

Primary LanguageTypeScript

Welcome to wechat-chatgpt 👋

Version License: ISC Twitter: fuergaosi join discord community of github profile readme generator

Use ChatGPT On Wechat via wechaty
English | 中文文档

Deploy on Railway

🌟 Features

  • Interact with WeChat and ChatGPT:

    • Use ChatGPT on WeChat with wechaty and Official API
    • Add conversation support
    • Support command setting
  • Deployment and configuration options:

  • Other features:

    • Support Dall·E
    • Support whisper
    • Support setting prompt
    • Support proxy (in development)

🚀 Usage

Use with Railway

Railway offers $5 or 500 hours of runtime per month

  1. Click the Railway button to go to the Railway deployment page
  2. Click the Deploy Now button to enter the Railway deployment page
  3. Fill in the repository name and OPENAI_API_KEY (need to link GitHub account)
  4. Click the Deploy button
  5. Click the View Logs button and wait for the deployment to complete

Use with Fly.io

Please allocate 512MB memory for the application to meet the application requirements

fly.io offers free bills up to $5(Free Allowances 3 256MB are not included in the bill)

  1. Install flyctl
     # macOS
     brew install flyctl
     # Windows
     scoop install flyctl
     # Linux
     curl https://fly.io/install.sh | sh
  2. Clone the project and enter the project directory
    git clone https://github.com/fuergaosi233/wechat-chatgpt.git && cd wechat-chatgpt
  3. Create a new app
    ➜ flyctl launch 
     ? Would you like to copy its configuration to the new app? No
     ? App Name (leave blank to use an auto-generated name): <YOUR APP NAME>
     ? Select region: <YOUR CHOOSE REGION>
     ? Would you like to setup a Postgresql database now? No
     ? Would you like to deploy now? No
  4. Configure the environment variables
    flyctl secrets set OPENAI_API_KEY="<YOUR OPENAI API KEY>" MODEL="<CHATGPT-MODEL>"
  5. Deploy the app
    flyctl deploy

Use with docker

# pull image
docker pull holegots/wechat-chatgpt
# run container
docker run -d --name wechat-chatgpt \
    -e OPENAI_API_KEY=<YOUR OPENAI API KEY> \
    -e MODEL="gpt-3.5-turbo" \
    -e CHAT_PRIVATE_TRIGGER_KEYWORD="" \
    -v $(pwd)/data:/app/data/wechat-assistant.memory-card.json \
    holegots/wechat-chatgpt:latest
# View the QR code to log in to wechat
docker logs -f wechat-chatgpt

How to get OPENAI API KEY? Click here

Use with docker compose

# Copy the configuration file according to the template
cp .env.example .env
# Edit the configuration file
vim .env
# Start the container
docker-compose up -d
# View the QR code to log in to wechat
docker logs -f wechat-chatgpt

Use with nodejs

You need NodeJS 18.0.0 version and above

# Clone the project
git clone https://github.com/fuergaosi233/wechat-chatgpt.git && cd wechat-chatgpt
# Install dependencies
npm install
# Copy the configuration file according to the template
cp .env.example .env
# Edit the configuration file
vim .env
# Start project
npm run dev

Please make sure your WeChat account can log in WeChat on web

📝 Environment Variables

name description
API API endpoint of ChatGPT
OPENAI_API_KEY create new secret key
MODEL ID of the model to use. Currently, only gpt-3.5-turbo and gpt-3.5-turbo-0301 are supported.
TEMPERATURE What sampling temperature to use, between 0 and 2. Higher values like 0.8 will make the output more random, while lower values like 0.2 will make it more focused and deterministic.
CHAT_TRIGGER_RULE Private chat triggering rules.
DISABLE_GROUP_MESSAGE Prohibited to use ChatGPT in group chat.
CHAT_PRIVATE_TRIGGER_KEYWORD Keyword to trigger ChatGPT reply in WeChat private chat
BLOCK_WORDS Chat blocker words, (works for both private and group chats, Use, Split)
CHATGPT_BLOCK_WORDS The blocked words returned by ChatGPT(works for both private and group chats, Use, Split)

📝 Using Custom ChatGPT API

https://github.com/fuergaosi233/openai-proxy

# Clone the project
git clone https://github.com/fuergaosi233/openai-proxy
# Install dependencies
npm install && npm install -g wrangler && npm run build
# Deploy to CloudFlare Workers
npm run deploy
# Custom domain (optional)
Add `Route` to `wrangler.toml`
routes = [
    { pattern = "Your Custom Domain", custom_domain = true },
]

⌨️ Commands

Enter in the WeChat chat box

/cmd help # Show help
/cmd prompt <PROMPT> # Set prompt
/cmd clear # Clear all sessions since last boot

✨ Contributor

🤝 Contributing

Contributions, issues and feature requests are welcome!
Feel free to check issues page.

Show your support

Give a ⭐️ if this project helped you!