同步操作将从 CyrusZhou/MP_WeiXin_ChatGPT 强制同步,此操作会覆盖自 Fork 仓库以来所做的任何修改,且无法恢复!!!
确定后同步将在后台操作,完成时将刷新页面,请耐心等待。
This is a ChatGPT program that integrates with WeChat Official Account, which allows users to ask questions and get answers directly from ChatGPT through WeChat Official Account. It is based on Next.js framework.
Clone this repository to your local computer and enter the project directory.
git clone https://github.com/CyrusZhou-CN/MP_WeiXin_ChatGPT.git
cd MP_WeiXin_ChatGPT
Create a .env
file in the root directory of the project.
Add the following configuration parameters in the .env
file and replace them with actual parameter values:
APP_ID=your_app_id
APP_SECRET=your_app_secret
TOKEN=your_token
ENCODING_AES_KEY=(required for security mode)
SUBSCRIBE_REPLY=Welcome to subscribe, feel free to ask ChatGPT any questions.
CONTENT_TOO_LONG=The answer is too long and timed out. Please try again.
OPENAI_API_KEY=your_openai_api_key
OPENAI_MODEL=gpt-3.5-turbo
OPENAI_TIMEOUT=60000
IS_AUTHENTICATED=false
SECRET_COOKIE_PASSWORD=(You can use the command openssl rand -hex 16 to generate a secret)
MYSQL_HOST=localhost
MYSQL_PORT=6306
MYSQL_USER=weixin
MYSQL_PASSWORD=weixin
MYSQL_DATABASE=weixin
VERCEL=false
Replace your_app_id
, your_app_secret
, your_token
, your_encoding_aes_key
, and your_openai_api_key
with actual parameter values obtained from WeChat Official Account Developer Platform and OpenAI API Key.
Note: In the WeChat Official Account management background, the URL is a complete address starting with your server address, such as http://yourdomain.com/api/wechat.
docker compose up -d
Execute the following command in the root directory of the project to install dependencies.
npm install
Verify the database
npm test
Execute the following command to start the development server.
npm run dev
In the WeChat Official Account management background, configure the server address, and fill in Token as the value of the TOKEN
parameter in the configuration file.
Submit the configuration and enable the service.
Access WeChat Official Account to start testing the program.
Two tables are created in the database: system_log
and reply_cache
.
system_log
table:- `id`: Primary key, a unique identifier that auto-increments.
- `level`: Log level, supports values including 'error', 'warn', 'info', 'debug'.
- `message`: Log content.
- `createdAt`: Record creation time.
- `updatedAt`: Record update time.
reply_cache
table:- `id`: Primary key, a unique identifier that auto-increments.
- `msgId`: A unique identifier of the message, which acts as an identity identifier of the message in the WeChat Official Account.
- `responseId`: A random identifier associated with the answer.
- `input`: The user's question content.
- `reply`: ChatGPT's answer content.
- `ask`: int(11) NOT NULL Number of requests from WeChat Official Account.
- `createdAt`: Record creation time.
- `updatedAt`: Record update time.
- `expireAt`: Cache expiration time, used to control the validity period of the cache.
In the application, we use the sequelize
module to operate the cache and save the cache to the reply_cache
table.
The database file is located at db\mysql_init.sql
Execute the following command in the root directory of the project to pack the application.
npm run build
Upload the generated .next
directory, package.json
, and .env
file to the server.
Execute the following command on the server to install dependencies.
npm install
Execute the following command to start the application.
npm start
In the WeChat Official Account management background, configure the server address, and fill in Token as the value of the TOKEN
parameter in the configuration file.
Submit the configuration and enable the service.
Access WeChat Official Account to start using the program.
If you have any questions, you can debug them in the WeChat Official Account Interface Debugging Tool.
If your server does not support external access to WeChat Official Account, you can use a PHP request proxy program to process the received requests and forward them to the Next.js application that supports the interface.
Follow these steps:
Copy the content of the ./php/proxy.php
file and create a new proxy.php
file, and paste the content into it.
Replace 'https://*.vercel.app/api/wechat'
with the URL address of the Next.js application that you deployed in the previous step.
Upload the proxy.php
file to the server that supports PHP services, and remember the URL address where the file is located.
In the WeChat Official Account management background, configure the service as the URL address of the PHP file.
If you are using Vercel, note that the default timeout period for functions in Vercel is 10 seconds, which can lead to errors when processing large amounts of text with ChatGPT. Therefore, it is recommended to deploy the application on your own server.
As Vercel does not support SQLite, it offers a cloud-based PostgreSQL database service as an alternative solution.
Create a PostgreSQL database by clicking on the "Storage" tab after logging in to the Vercel dashboard.
Set Environment Variables.
The Vercel PostgreSQL connection configuration can be viewed in the ".env.local" tab of the database.
Corresponding settings for this project:
DB_TYPE=postgres
DB_HOST=POSTGRES_HOST
DB_PORT=5432
DB_USER=POSTGRES_USER
DB_PASS=POSTGRES_PASSWORD
DB_NAME=POSTGRES_DATABASE
Backend address: http://localhost:3000/admin
Username/password: admin/admin
GPT Chat Translation.
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。