Slavi Pantaleev 3b25b92a81 Implement more fine-grained typing notices sending
The previous approach (implemented in dd1dd78312) was simple
(send typing notices for as long as the "controller" is running),
but this proved to be overly simplistic and unable to handle edge-cases:

- in multi-user rooms (or rooms with a prefix requirement), the bot
  used to send a typing notice while "working", but its work consisted
  of ignoring the message. So it then sent a "not typing" notice.
  This is wasteful and otherwise problematic - certain clients (like nheko)
  do not handle this "race" well.

- certain reactions (anything other than 🗣️ right now) are meant to be
  ignored. There's no point in doing the same "typing / not typing"
  dance

- there are other instances where the bot may do work, but doesn't (due
  to configuration or lack of capabilities)

This new more fine-grained implementation of typing notices aims to:

- only send a typing notice if actual "slow work" will be done

- avoid stopping & restarting typing notices (wasteful) if a chain of work is to
  be performed (processing voice messages and doing speech-to-text +
  text-generation + ...). Rather, maintaining typing notice sending
  throughout
2024-09-14 10:39:20 +03:00
2024-09-12 13:44:06 +03:00
2024-09-12 13:44:06 +03:00
2024-09-12 13:44:06 +03:00
2024-09-12 13:44:06 +03:00
2024-09-12 13:44:06 +03:00
2024-09-13 21:46:15 +03:00
2024-09-12 13:44:06 +03:00
2024-09-12 13:44:06 +03:00
2024-09-12 13:44:06 +03:00
2024-09-12 16:16:28 +03:00

baibot logo

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

🖼️ Screenshots

Introduction and general usage

You can find more screenshots on the 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

Description
BaiBot, but with MCP added in (yes, it's vibecoded. womp womp)
Readme AGPL-3.0 4.4 MiB
Languages
Rust 97.6%
Just 2%
Shell 0.2%
Dockerfile 0.2%