Sticker generation was failing when using newer GPT image models (gpt-image-1, gpt-image-1-mini, gpt-image-1.5). The issue occurred because stickers requested 256x256 size, but these models only support 1024x1024, 1536x1024, 1024x1536, and auto. To reproduce, send `!bai sticker Something` to an agent configured with a GPT image model. The error was: invalid_request_error: Invalid value: '256x256'. Supported values are: '1024x1024', '1024x1536', '1536x1024', and 'auto'. (param: size) (code: invalid_value) The fix replaces the hardcoded 256x256 size override with a `smallest_size_possible` flag, letting each provider determine the appropriate sticker size based on the model being used. The `openai_compat` provider still defaults to requesting 256x256 in all cases (regardless of model name).
baibot
🤖 baibot is an AI (Large Language Model) bot for Matrix built by etke.cc (managed Matrix servers).
The name is pronounced 'bye'-bot and is a play on AI, referencing the fictional character 🇧🇬 Bai Ganyo.
It's designed as a more private and featureful alternative to matrix-chatgpt-bot. It's influenced by chaz, but does not use the AIChat CLI tool and instead does everything in-process, without forking.
🌟 Features
-
🎨 Encourages provider choice (Anthropic, Groq, LocalAI, OpenAI and ☁️ many more) as well as mixing & matching models:
-
Supports different use purposes (depending on the ☁️ provider & model):
- 💬 text-generation: communicating with you via text (though certain models may "see" images as well)
- 🦻 speech-to-text: turning your voice messages into text
- 🗣️ text-to-speech: turning bot or users text messages into voice messages
- 🖌️ image-generation: creating and editing images based on instructions
-
🪄 Supports seamless voice interaction (turning user voice messages into text, answering in text, then turning that text back into voice)
-
🦻 Supports transcribe-only mode (turning user voice messages into text, without doing text-generation)
-
🗣️ Supports text-to-speech-only mode (turning user text messages into voice, without doing text-generation)
-
🔒 Supports encryption for Matrix communication and Account-Data-stored configuration
-
♻️ Supports context-management handling on some models (automatically adjusting the message history length, etc.)
-
🛠️ Allows customizing much of the bot's configuration at runtime (using commands sent via chat)
-
👥 Actively maintained by the team at etke.cc
🖼️ Screenshots
You can find more screenshots on the 🌟 Features and other 📚 Documentation pages, as well as in the docs/screenshots directory.
🚀 Getting Started
🗲 For a quick experiment, you can refer to the 🧑💻 development documentation which contains information on how to build and run the bot (and its various dependency services) locally.
For a real installation, see the 🚀 Installation documentation which contains information on 🐋 Running in a container and 🖥️️️️️ Running a binary.
📚 Documentation
See the bot's 📚 documentation for more information on how to use and configure the bot.
💻 Development
See the bot's 🧑💻 development documentation for more information on how to develop on the bot.
📜 Changes
This bot evolves over time, sometimes with backward-incompatible changes.
When updating the bot, refer to the changelog to catch up with what's new.
🆘 Support
-
Matrix room: #baibot:etke.cc
-
GitHub issues: etkecc/baibot/issues
