[package] name = "baibot" description = "A Matrix bot for using diffent capabilities (text-generation, text-to-speech, speech-to-text, image-generation, etc.) of AI / Large Language Models" authors = ["Slavi Pantaleev "] repository = "https://github.com/etkecc/baibot" license = "AGPL-3.0-or-later" readme = "README.md" keywords = ["matrix", "chat", "bot", "AI", "LLM"] include = ["/etc/assets/baibot-torso-768.png", "/src", "/README.md", "/CHANGELOG.md", "/LICENSE"] version = "1.25.0" edition = "2024" [lib] name = "baibot" path = "src/lib.rs" [dependencies] anthropic = { git = "https://github.com/etkecc/anthropic-rs.git", branch = "fix-content-block-image" } anyhow = "1.0.*" async-openai = { version = "0.41.0", features = ["audio", "chat-completion", "image", "responses"] } base64 = "0.22.*" chrono = { version = "0.4.*", default-features = false, features = ["std", "now"] } # We'd rather not depend on this, but we cannot use the ruma-events EventContent macro without it. matrix-sdk = { version = "0.18.0", default-features = false } mime_guess = "2.0.*" mxidwc = "1.0.*" mxlink = ">=1.15.0" etke_openai_api_rust = "0.1.*" quick_cache = "0.7.*" regex = "1.13.*" # HTTP client for the native `venice` provider. rustls only (no extra TLS stack), matching the # reqwest copy async-openai/matrix-sdk/mxlink already use. reqwest = { version = "0.13.*", default-features = false, features = ["json", "multipart", "rustls"] } serde = { version = "1.0.*", features = ["derive"], default-features = false } serde_json = "1.0.*" serde_yaml_ng = "0.10.*" tempfile = "3.27.*" tiktoken-rs = { version = "0.12.*", default-features = false } tokio = { version = "1.52.*", features = ["rt", "rt-multi-thread", "macros"] } tracing = "0.1.*" tracing-subscriber = { version = "0.3.*", features = ["env-filter"] } url = "2.5.*" [profile.release] strip = true opt-level = "z" lto = "thin"