2023-03-05 14:07:25 +00:00
## Introduction
2023-04-11 03:11:59 +00:00
2023-09-13 00:19:12 +00:00
This is a simple Matrix bot that support using OpenAI API, Langchain to generate responses from user inputs. The bot responds to these commands: `!gpt` , `!chat` and `!pic` and `!talk` , `!goon` , `!new` and `!lc` and `!help` depending on the first word of the prompt.
2023-04-13 15:49:12 +00:00
![ChatGPT ](https://i.imgur.com/kK4rnPf.jpeg )
2023-04-10 13:40:39 +00:00
## Feature
2023-04-11 03:11:59 +00:00
2023-09-13 00:19:12 +00:00
1. Support official openai api and self host models([LocalAI](https://github.com/go-skynet/LocalAI))
2. Support E2E Encrypted Room
3. Colorful code blocks
4. Langchain([Flowise](https://github.com/FlowiseAI/Flowise))
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-09-13 00:19:12 +00:00
Create two 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-09-13 00:19:12 +00:00
touch sync_db manage_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 >
2023-05-26 12:31:52 +00:00
system dependece: < code > libolm-dev< / code >
2023-03-09 15:45:25 +00:00
2023-04-10 13:40:39 +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
2023-04-10 13:40:39 +00:00
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-09-13 00:19:12 +00:00
3. Create a new config.json file and complete 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-09-13 00:19:12 +00:00
"api_endpoint": "xxxxxxxxx"
2023-03-05 14:07:25 +00:00
}
```
2023-04-11 03:11:59 +00:00
2023-09-13 00:19:12 +00:00
4. Launch 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 >
2023-05-20 01:46:16 +00:00
- `!help` help message
2023-04-11 03:11:59 +00:00
2023-04-11 05:41:26 +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-05-26 12:31:52 +00:00
- `!lc` To chat using langchain api endpoint
```
2023-09-13 00:19:12 +00:00
!lc All the world is a stage
2023-05-26 12:31:52 +00:00
```
2023-09-13 00:19:12 +00:00
- `!pic` To generate an image using openai DALL·E or LocalAI
2023-04-11 03:11:59 +00:00
2023-03-22 14:41:01 +00:00
```
!pic A bridal bouquet made of succulents
```
2023-09-13 00:19:12 +00:00
- `!new + {chat}` Start a new converstaion
2023-04-11 03:11:59 +00:00
2023-06-05 03:27:37 +00:00
2023-09-13 00:19:12 +00:00
## Image Generation
2023-04-11 03:11:59 +00:00
https://github.com/hibobmaster/matrix_chatgpt_bot/wiki/ < br >
2023-09-13 00:19:12 +00:00
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 )
2023-05-20 01:46:16 +00:00
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 >