This commit is contained in:
commit
95a533c876
451 changed files with 18255 additions and 0 deletions
90
docs/modules/nixos/baibot.md
Normal file
90
docs/modules/nixos/baibot.md
Normal file
|
|
@ -0,0 +1,90 @@
|
|||
# Baibot
|
||||
|
||||
Baibot is a Matrix AI bot.
|
||||
|
||||
View the [*synix* NixOS module on Forgejo](https://git.sid.ovh/sid/synix/tree/master/modules/nixos/baibot).
|
||||
|
||||
## References
|
||||
|
||||
- [GitHub](https://github.com/etkecc/baibot)
|
||||
|
||||
## Setup
|
||||
|
||||
### Configuration
|
||||
|
||||
Since baibot's configuration file requires setting secrets as plain text strings, configuring the baibot service through Nix is not supported. You have to create a configuration file on your machine and point to it with `services.baibot.configFile`.
|
||||
|
||||
Use the [template configuration file](https://github.com/etkecc/baibot/blob/main/etc/app/config.yml.dist) for reference.
|
||||
|
||||
### User Creation
|
||||
|
||||
Create the `baibot` user on your Matrix instance. If you are using the [synix Matrix module](./matrix-synapse.md), this can be done with the `register_new_matrix_user` alias:
|
||||
|
||||
```bash
|
||||
register_new_matrix_user
|
||||
```
|
||||
|
||||
Set the `user localpart` and `password` according to your configuration.
|
||||
|
||||
Restart both `matrix-synapse.service` and `baibot.service`. You can then invite Baibot to any room you like.
|
||||
|
||||
### OpenAI API
|
||||
|
||||
Send this message in a room where Baibot has joined:
|
||||
|
||||
```
|
||||
!bai agent create-global openai openai
|
||||
```
|
||||
|
||||
The bot will reply with a YAML configuration which you need to edit and send back:
|
||||
|
||||
```yaml
|
||||
base_url: https://api.openai.com/v1
|
||||
api_key: YOUR_API_KEY_HERE
|
||||
text_generation:
|
||||
model_id: gpt-4o
|
||||
prompt: 'You are a brief, but helpful bot called {{ baibot_name }} powered by the {{ baibot_model_id }} model. The date/time of this conversation''s start is: {{ baibot_conversation_start_time_utc }}.'
|
||||
temperature: 1.0
|
||||
max_response_tokens: 16384
|
||||
max_context_tokens: 128000
|
||||
speech_to_text:
|
||||
model_id: whisper-1
|
||||
text_to_speech:
|
||||
model_id: tts-1-hd
|
||||
voice: onyx
|
||||
speed: 1.0
|
||||
response_format: opus
|
||||
image_generation:
|
||||
model_id: dall-e-3
|
||||
style: vivid
|
||||
size: 1024x1024
|
||||
quality: standard
|
||||
```
|
||||
|
||||
Set `openai` as the default for any purpose you like:
|
||||
|
||||
```
|
||||
!bai config global set-handler text-generation global/openai
|
||||
!bai config global set-handler speech-to-text global/openai
|
||||
!bai config global set-handler text-to-speech global/openai
|
||||
!bai config global set-handler image-generation global/openai
|
||||
```
|
||||
|
||||
## Tips
|
||||
|
||||
### Set STT to Transcribe Only
|
||||
```
|
||||
!bai config global speech-to-text set-flow-type only_transcribe
|
||||
```
|
||||
|
||||
### Set user access
|
||||
```
|
||||
!bai access set-users SPACE_SEPARATED_PATTERNS
|
||||
```
|
||||
|
||||
> For example: `@*:example.com`
|
||||
|
||||
## Todo
|
||||
|
||||
1. Set up a local LLM for speech-to-text with Ollama.
|
||||
1. Whitelist each user for the speech-to-text engine only.
|
||||
Loading…
Add table
Add a link
Reference in a new issue