Implemented chatgpt matrix bot

This commit is contained in:
Kevin Veen-Birkenbach 2024-01-20 22:29:53 +01:00
parent 7d9df18cfb
commit 3d67d7e3a8
3 changed files with 54 additions and 2 deletions

View File

@ -45,7 +45,7 @@ docker compose down -v
## Bridges
### General
### Mautrix
Contact one of the following bots for more information:
- @signalbot:yourdomain.tld
@ -53,9 +53,13 @@ Contact one of the following bots for more information:
- @whatsappbot:yourdomain.tld
- @slackbot:yourdomain.tld
### Slack
#### Slack
For login with Token checkout [this guide](https://docs.mau.fi/bridges/go/slack/authentication.html).
### ChatGPT
- Create API Token: https://platform.openai.com/api-keys
- Set ``matrix_chatgpt_bridge_access_token``
## Debug:
- https://federationtester.matrix.org/

View File

@ -126,4 +126,11 @@
cmd: docker compose exec -it synapse register_new_matrix_user -u {{matrix_admin_name}} -p {{matrix_admin_password}} -a -c /data/homeserver.yaml http://localhost:8008
chdir: "{{ docker_compose_instance_directory }}"
ignore_errors: true
when: mode_setup | bool
- name: create chatgpt bot
command:
cmd: docker compose exec -it synapse register_new_matrix_user -u chatgptbot -p {{matrix_chatgpt_bridge_user_password}} -a -c /data/homeserver.yaml http://localhost:8008
chdir: "{{ docker_compose_instance_directory }}"
ignore_errors: true
when: mode_setup | bool

View File

@ -64,7 +64,48 @@ services:
{% include 'templates/docker/container/networks.yml.j2' %}
{% endfor %}
matrix-chatgpt-bot:
restart: {{docker_restart_policy}}
container_name: matrix-chatgpt
image: ghcr.io/matrixgpt/matrix-chatgpt-bot:latest
volumes:
- chatgpt_data:/storage
environment:
OPENAI_API_KEY: '{{matrix_chatgpt_bridge_openai_api_key}}'
# Uncomment the next two lines if you are using Azure OpenAI API
# OPENAI_AZURE: 'false'
# CHATGPT_REVERSE_PROXY: 'your-completion-endpoint-here'
CHATGPT_CONTEXT: 'thread'
CHATGPT_API_MODEL: 'gpt-3.5-turbo'
# Uncomment and edit the next line if needed
# CHATGPT_PROMPT_PREFIX: 'Instructions:\nYou are ChatGPT, a large language model trained by OpenAI.'
# CHATGPT_IGNORE_MEDIA: 'false'
CHATGPT_REVERSE_PROXY: 'https://api.openai.com/v1/chat/completions'
# Uncomment and edit the next line if needed
# CHATGPT_TEMPERATURE: '0.8'
# Uncomment and edit the next line if needed
# CHATGPT_MAX_CONTEXT_TOKENS: '4097'
# CHATGPT_MAX_PROMPT_TOKENS: '3097'
KEYV_BACKEND: 'file'
KEYV_URL: ''
KEYV_BOT_ENCRYPTION: 'false'
KEYV_BOT_STORAGE: 'true'
MATRIX_HOMESERVER_URL: 'http://synapse'
MATRIX_BOT_USERNAME: '@chatgptbot:{{matrix_server_name}}'
MATRIX_ACCESS_TOKEN: '{{ matrix_chatgpt_bridge_access_token | default('') }}'
MATRIX_BOT_PASSWORD: '{{matrix_chatgpt_bridge_user_password}}'
MATRIX_DEFAULT_PREFIX: '!chatgpt'
MATRIX_DEFAULT_PREFIX_REPLY: 'false'
#MATRIX_BLACKLIST: ''
MATRIX_WHITELIST: ':{{matrix_server_name}}'
MATRIX_AUTOJOIN: 'true'
MATRIX_ENCRYPTION: 'true'
MATRIX_THREADS: 'true'
MATRIX_PREFIX_DM: 'false'
MATRIX_RICH_TEXT: 'true'
{% include 'templates/docker/compose/volumes.yml.j2' %}
synapse_data:
chatgpt_data:
{% include 'templates/docker/compose/networks.yml.j2' %}