matrix_chatgpt_bot/README.md

138 lines
4 KiB
Markdown
Raw Permalink Normal View History

2023-03-05 14:07:25 +00:00
## Introduction
2023-04-11 03:11:59 +00:00
This is a simple Matrix bot that uses OpenAI's GPT API and Bing AI and Google Bard to generate responses to user inputs. The bot responds to these commands: `!gpt`, `!chat` and `!bing` and `!pic` and `!bard` and `!talk`, `!goon`, `!new` and `!lc` and `!help` depending on the first word of the prompt.
2023-04-13 15:49:12 +00:00
![Bing](https://user-images.githubusercontent.com/32976627/231073146-3e380217-a6a2-413d-9203-ab36965b909d.png)
2023-04-14 11:57:22 +00:00
![image](https://user-images.githubusercontent.com/32976627/232036790-e830145c-914e-40be-b3e6-c02cba93329c.png)
2023-04-13 15:49:12 +00:00
![ChatGPT](https://i.imgur.com/kK4rnPf.jpeg)
## Feature
2023-04-11 03:11:59 +00:00
1. Support Openai ChatGPT and Bing AI and Google Bard
2. Support Bing Image Creator
3. Support E2E Encrypted Room
2023-04-11 06:21:36 +00:00
4. Colorful code blocks
5. Langchain([Flowise](https://github.com/FlowiseAI/Flowise))
2023-06-05 03:27:37 +00:00
6. ChatGPT Web ([pandora](https://github.com/pengzhile/pandora))
7. Session isolation support(`!chat`,`!bing`,`!bard`,`!talk`)
2023-04-07 01:28:47 +00:00
2023-03-05 14:07:25 +00:00
## Installation and Setup
2023-04-11 03:11:59 +00:00
2023-04-10 02:52:18 +00:00
Docker method(Recommended):<br>
Edit `config.json` or `.env` with proper values <br>
2023-04-20 05:02:35 +00:00
For explainations and complete parameter list see: https://github.com/hibobmaster/matrix_chatgpt_bot/wiki <br>
2023-03-10 16:47:04 +00:00
Create an empty file, for persist database only<br>
2023-04-11 03:11:59 +00:00
2023-03-09 15:45:25 +00:00
```bash
2023-04-10 02:52:18 +00:00
touch db
2023-03-09 15:45:25 +00:00
sudo docker compose up -d
```
2023-04-11 03:11:59 +00:00
2023-03-09 15:45:25 +00:00
<hr>
2023-04-11 03:11:59 +00:00
Normal Method:<br>
system dependece: <code>libolm-dev</code>
2023-03-09 15:45:25 +00:00
1. Clone the repository and create virtual environment:
2023-04-11 03:11:59 +00:00
2023-03-05 14:07:25 +00:00
```
git clone https://github.com/hibobmaster/matrix_chatgpt_bot.git
python -m venv venv
source venv/bin/activate
2023-03-05 14:07:25 +00:00
```
2023-04-11 03:11:59 +00:00
2023-03-05 14:07:25 +00:00
2. Install the required dependencies:<br>
2023-04-11 03:11:59 +00:00
2023-03-05 14:07:25 +00:00
```
2023-04-11 03:11:59 +00:00
pip install -U pip setuptools wheel
2023-03-05 14:07:25 +00:00
pip install -r requirements.txt
```
2023-04-11 03:11:59 +00:00
2023-03-05 14:07:25 +00:00
3. Create a new config.json file and fill it with the necessary information:<br>
2023-04-11 03:11:59 +00:00
Use password to login(recommended) or provide `access_token` <br>
If not set:<br>
`room_id`: bot will work in the room where it is in <br>
2023-06-05 03:27:37 +00:00
`openai_api_key`: `!gpt` `!chat` command will not work <br>
`api_endpoint`: `!bing` `!chat` command will not work <br>
2023-04-11 03:11:59 +00:00
`bing_auth_cookie`: `!pic` command will not work
2023-03-05 14:07:25 +00:00
```json
{
2023-04-11 03:11:59 +00:00
"homeserver": "YOUR_HOMESERVER",
"user_id": "YOUR_USER_ID",
"password": "YOUR_PASSWORD",
"device_id": "YOUR_DEVICE_ID",
"room_id": "YOUR_ROOM_ID",
2023-06-05 03:27:37 +00:00
"openai_api_key": "YOUR_API_KEY",
2023-04-11 03:11:59 +00:00
"access_token": "xxxxxxxxxxxxxx",
2023-06-05 03:27:37 +00:00
"api_endpoint": "xxxxxxxxx",
2023-04-11 03:11:59 +00:00
"bing_auth_cookie": "xxxxxxxxxx"
2023-03-05 14:07:25 +00:00
}
```
2023-04-11 03:11:59 +00:00
2023-03-05 14:07:25 +00:00
4. Start the bot:
2023-04-11 03:11:59 +00:00
2023-03-05 14:07:25 +00:00
```
2023-06-05 03:27:37 +00:00
python src/main.py
2023-03-05 14:07:25 +00:00
```
2023-04-11 03:11:59 +00:00
2023-03-05 14:07:25 +00:00
## Usage
2023-04-11 03:11:59 +00:00
2023-03-05 14:07:25 +00:00
To interact with the bot, simply send a message to the bot in the Matrix room with one of the two prompts:<br>
- `!help` help message
2023-04-11 03:11:59 +00:00
- `!gpt` To generate a one time response:
2023-04-11 03:11:59 +00:00
2023-03-05 14:07:25 +00:00
```
!gpt What is the meaning of life?
```
2023-04-11 03:11:59 +00:00
2023-03-10 17:01:25 +00:00
- `!chat` To chat using official api with context conversation
2023-04-11 03:11:59 +00:00
2023-03-05 14:07:25 +00:00
```
!chat Can you tell me a joke?
2023-03-10 15:45:38 +00:00
```
2023-04-11 03:11:59 +00:00
2023-03-10 17:01:25 +00:00
- `!bing` To chat with Bing AI with context conversation
2023-04-11 03:11:59 +00:00
2023-03-10 17:01:25 +00:00
```
!bing Do you know Victor Marie Hugo?
```
2023-04-11 03:11:59 +00:00
2023-04-13 15:49:12 +00:00
- `!bard` To chat with Google's Bard
```
!bard Building a website can be done in 10 simple steps
```
- `!lc` To chat using langchain api endpoint
```
!lc 人生如音乐,欢乐且自由
```
2023-03-22 14:41:01 +00:00
- `!pic` To generate an image from Microsoft Bing
2023-04-11 03:11:59 +00:00
2023-03-22 14:41:01 +00:00
```
!pic A bridal bouquet made of succulents
```
2023-06-05 03:27:37 +00:00
- `!new + {chat,bing,bard,talk}` Start a new converstaion
2023-04-11 03:11:59 +00:00
The following commands need pandora http api:
https://github.com/pengzhile/pandora/blob/master/doc/wiki_en.md#http-restful-api
- `!talk + [prompt]` Chat using chatGPT web with context conversation
- `!goon` Ask chatGPT to complete the missing part from previous conversation
2023-06-05 03:27:37 +00:00
2023-03-22 14:41:01 +00:00
## Bing AI and Image Generation
2023-04-11 03:11:59 +00:00
https://github.com/hibobmaster/matrix_chatgpt_bot/wiki/ <br>
2023-03-10 17:01:25 +00:00
![](https://i.imgur.com/KuYddd5.jpg)
2023-03-22 14:41:01 +00:00
![](https://i.imgur.com/3SRQdN0.jpg)
2023-04-13 15:49:12 +00:00
## Thanks
1. [matrix-nio](https://github.com/poljar/matrix-nio)
2. [acheong08](https://github.com/acheong08)
2023-04-20 05:02:35 +00:00
3. [node-chatgpt-api](https://github.com/waylaidwanderer/node-chatgpt-api)
4. [8go](https://github.com/8go/)
2023-05-02 02:13:01 +00:00
<a href="https://jb.gg/OpenSourceSupport" target="_blank">
<img src="https://resources.jetbrains.com/storage/products/company/brand/logos/jb_beam.png" alt="JetBrains Logo (Main) logo." width="200" height="200">
</a>