# SPDX-FileCopyrightText: 2024 Nikita Chernyi # SPDX-FileCopyrightText: 2024 Slavi Pantaleev # SPDX-FileCopyrightText: 2024 Suguru Hirahara # # SPDX-License-Identifier: AGPL-3.0-or-later --- # baibot is a bot exposing the power of Large Language Models to you. # Project source code URL: https://github.com/etkecc/baibot matrix_bot_baibot_enabled: true matrix_bot_baibot_container_image_self_build: false matrix_bot_baibot_container_repo: "https://github.com/etkecc/baibot.git" matrix_bot_baibot_container_repo_version: "{{ 'main' if matrix_bot_baibot_version == 'latest' else matrix_bot_baibot_version }}" matrix_bot_baibot_container_src_files_path: "{{ matrix_base_data_path }}/baibot/container-src" # renovate: datasource=docker depName=ghcr.io/etkecc/baibot matrix_bot_baibot_version: v1.24.0 matrix_bot_baibot_container_image: "{{ matrix_bot_baibot_container_image_registry_prefix }}etkecc/baibot:{{ matrix_bot_baibot_version }}" matrix_bot_baibot_container_image_registry_prefix: "{{ 'localhost/' if matrix_bot_baibot_container_image_self_build else matrix_bot_baibot_container_image_registry_prefix_upstream }}" matrix_bot_baibot_container_image_registry_prefix_upstream: "{{ matrix_bot_baibot_container_image_registry_prefix_upstream_default }}" matrix_bot_baibot_container_image_registry_prefix_upstream_default: "ghcr.io/" matrix_bot_baibot_base_path: "{{ matrix_base_data_path }}/baibot" matrix_bot_baibot_config_path: "{{ matrix_bot_baibot_base_path }}/config" matrix_bot_baibot_data_path: "{{ matrix_bot_baibot_base_path }}/data" matrix_bot_baibot_container_network: "" matrix_bot_baibot_container_additional_networks: "{{ matrix_bot_baibot_container_additional_networks_auto + matrix_bot_baibot_container_additional_networks_custom }}" matrix_bot_baibot_container_additional_networks_auto: [] matrix_bot_baibot_container_additional_networks_custom: [] # A list of extra arguments to pass to the container matrix_bot_baibot_container_extra_arguments: [] # List of systemd services that matrix-bot-baibot.service depends on matrix_bot_baibot_systemd_required_services_list: "{{ matrix_bot_baibot_systemd_required_services_list_default + matrix_bot_baibot_systemd_required_services_list_auto + matrix_bot_baibot_systemd_required_services_list_custom }}" matrix_bot_baibot_systemd_required_services_list_default: "{{ [devture_systemd_docker_base_docker_service_name] if devture_systemd_docker_base_docker_service_name else [] }}" matrix_bot_baibot_systemd_required_services_list_auto: [] matrix_bot_baibot_systemd_required_services_list_custom: [] # List of systemd services that matrix-bot-baibot.service wants matrix_bot_baibot_systemd_wanted_services_list: [] # Controls the `homeserver.server_name` configuration setting. matrix_bot_baibot_config_homeserver_server_name: "{{ matrix_domain }}" # Controls the `homeserver.url` configuration setting. matrix_bot_baibot_config_homeserver_url: "" # Controls the `user.mxid_localpart` configuration setting. # # This affects the bot's username. # Changing this subsequently will require you to drop the bot's session/database (see `matrix_bot_baibot_data_path`), # so it can start fresh. matrix_bot_baibot_config_user_mxid_localpart: baibot # Authentication settings (`user.*` configuration keys). # # baibot supports 2 mutually-exclusive authentication modes. # Set EITHER: # - password authentication: `matrix_bot_baibot_config_user_password` # OR: # - access-token authentication: `matrix_bot_baibot_config_user_access_token` + `matrix_bot_baibot_config_user_device_id` # # Password authentication is recommended for most playbook-managed deployments, # because it integrates with the `matrix-user-creator` role and can auto-create # the bot account (via the `ensure-matrix-users-created` playbook tag). # This remains true even on many MAS-enabled deployments where the bot account # is local and playbook-managed. # Controls the `user.password` configuration setting. matrix_bot_baibot_config_user_password: null # Controls the `user.access_token` configuration setting. matrix_bot_baibot_config_user_access_token: null # Controls the `user.device_id` configuration setting. matrix_bot_baibot_config_user_device_id: null # Controls the `user.name` configuration setting. # # The name the bot uses as a display name and when it refers to itself. # If you leave this empty, the bot will use the default (baibot). # # Also see: `matrix_bot_baibot_config_user_mxid_localpart` matrix_bot_baibot_config_user_name: baibot # Controls the `user.avatar` configuration setting. # # An optional path to an image file to be used as a custom avatar image. # This path should be an in-container path (e.g., `/data/avatar.png`). # Any type of content type is supported, but stick to common image formats (PNG, JPG, ..) for better compatibility with various Matrix clients. # # To use a custom avatar: # - Use the auxiliary role (`aux_` variables) to upload your avatar file to the server (e.g. to {{ matrix_bot_baibot_data_path }}/avatar.png on the host), # or do it any other way (without Ansible) you prefer # - Set this variable to something like `/data/avatar.png` (the in-container path) # # Possible values: # - null or empty string: use the default baibot avatar # - "keep": don't touch the avatar, keep whatever is already set (useful if you manage the avatar via other means) # - any other value: path to a custom avatar image file (must be an in-container path like `/data/avatar.png`) matrix_bot_baibot_config_user_avatar: null # Controls the `user.encryption.recovery_passphrase` configuration setting. # # An optional passphrase to use for backing up and recovering the bot's encryption keys. # You can use any string here. # # If left empty, the recovery module will not be used and losing your session/database (see persistence) # will mean you lose access to old messages in encrypted room. # # Changing this subsequently will also cause you to lose access to old messages in encrypted rooms. # If you really need to change this: # - Set `matrix_bot_baibot_config_user_encryption_recovery_reset_allowed` to `true` and adjust the passphrase # - Remove your session file and database (see persistence) # - Restart the bot # - Then restore `matrix_bot_baibot_config_user_encryption_recovery_reset_allowed` to `false` to prevent accidental resets in the future matrix_bot_baibot_config_user_encryption_recovery_passphrase: null # Controls the `user.encryption.recovery_passphrase` configuration setting. # # An optional flag to reset the encryption recovery passphrase (see `matrix_bot_baibot_config_user_encryption_recovery_passphrase`). matrix_bot_baibot_config_user_encryption_recovery_reset_allowed: false # Controls the `command_prefix` configuration setting. # If you leave this empty, the bot will use the default (!bai). matrix_bot_baibot_config_command_prefix: "!bai" # Controls the `room.post_join_self_introduction_enabled` configuration setting. # Influences whether the bot should send an introduction message after joining a room. matrix_bot_baibot_config_room_post_join_self_introduction_enabled: true # Controls the `access.admin_patterns` configuration setting. # A space-separated list of MXID patterns which specify who is an admin. # # Example: # matrix_bot_baibot_config_access_admin_patterns: # - "@*:example.com" # - "@admin:example.net" matrix_bot_baibot_config_access_admin_patterns: "{{ [matrix_admin] if matrix_admin else [] }}" # Controls the `persistence.data_dir_path` configuration setting. # # The bot runs in a container, so this is the in-container path referring to the data directory on the host # (see `matrix_bot_baibot_data_path`). # # You generally don't need to change this. matrix_bot_baibot_config_persistence_data_dir_path: /data # Controls the `persistence.session_encryption_key` configuration setting. # # An optional secret for encrypting the bot's session data (see `matrix_bot_baibot_data_path`). # This must be 32-bytes (64 characters when HEX-encoded). # Generate it with: `openssl rand -hex 32` # Leave null or empty to avoid using encryption. # Changing this subsequently requires that you also throw away all data (see `matrix_bot_baibot_data_path`) matrix_bot_baibot_config_persistence_session_encryption_key: null # Controls the `persistence.config_encryption_key` configuration setting. # # An optional secret for encrypting bot configuration stored in Matrix's account data. # This must be 32-bytes (64 characters when HEX-encoded). # Generate it with: `openssl rand -hex 32` # Leave null or empty to avoid using encryption. # Changing this subsequently will make you lose your configuration. matrix_bot_baibot_config_persistence_config_encryption_key: null # Controls the `agents.static_definitions` configuration setting. # # There are some presets (e.g. `matrix_bot_baibot_config_agents_static_definitions_openai_*`) you can easily use to get started with a given provider. # You can also define your own agents via `matrix_bot_baibot_config_agents_static_definitions_custom`. matrix_bot_baibot_config_agents_static_definitions: "{{ matrix_bot_baibot_config_agents_static_definitions_auto + matrix_bot_baibot_config_agents_static_definitions_custom }}" matrix_bot_baibot_config_agents_static_definitions_auto: |- {{ ([{ 'id': matrix_bot_baibot_config_agents_static_definitions_anthropic_id, 'provider': matrix_bot_baibot_config_agents_static_definitions_anthropic_provider, 'config': matrix_bot_baibot_config_agents_static_definitions_anthropic_config, }] if matrix_bot_baibot_config_agents_static_definitions_anthropic_enabled else []) + ([{ 'id': matrix_bot_baibot_config_agents_static_definitions_groq_id, 'provider': matrix_bot_baibot_config_agents_static_definitions_groq_provider, 'config': matrix_bot_baibot_config_agents_static_definitions_groq_config, }] if matrix_bot_baibot_config_agents_static_definitions_groq_enabled else []) + ([{ 'id': matrix_bot_baibot_config_agents_static_definitions_mistral_id, 'provider': matrix_bot_baibot_config_agents_static_definitions_mistral_provider, 'config': matrix_bot_baibot_config_agents_static_definitions_mistral_config, }] if matrix_bot_baibot_config_agents_static_definitions_mistral_enabled else []) + ([{ 'id': matrix_bot_baibot_config_agents_static_definitions_openai_id, 'provider': matrix_bot_baibot_config_agents_static_definitions_openai_provider, 'config': matrix_bot_baibot_config_agents_static_definitions_openai_config, }] if matrix_bot_baibot_config_agents_static_definitions_openai_enabled else []) + ([{ 'id': matrix_bot_baibot_config_agents_static_definitions_venice_id, 'provider': matrix_bot_baibot_config_agents_static_definitions_venice_provider, 'config': matrix_bot_baibot_config_agents_static_definitions_venice_config, }] if matrix_bot_baibot_config_agents_static_definitions_venice_enabled else []) }} matrix_bot_baibot_config_agents_static_definitions_custom: [] matrix_bot_baibot_config_agents_static_definitions_prompt: "{% raw %}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 }}.{% endraw %}" ######################################################################################## # # # Anthropic agent configuration # # # ######################################################################################## matrix_bot_baibot_config_agents_static_definitions_anthropic_enabled: false matrix_bot_baibot_config_agents_static_definitions_anthropic_id: anthropic matrix_bot_baibot_config_agents_static_definitions_anthropic_provider: anthropic matrix_bot_baibot_config_agents_static_definitions_anthropic_config: "{{ matrix_bot_baibot_config_agents_static_definitions_anthropic_config_yaml | from_yaml | combine(matrix_bot_baibot_config_agents_static_definitions_anthropic_config_extension, recursive=True) }}" matrix_bot_baibot_config_agents_static_definitions_anthropic_config_yaml: "{{ lookup('template', 'templates/provider/anthropic-config.yml.j2') }}" matrix_bot_baibot_config_agents_static_definitions_anthropic_config_extension: "{{ matrix_bot_baibot_config_agents_static_definitions_anthropic_config_extension_yaml | from_yaml if matrix_bot_baibot_config_agents_static_definitions_anthropic_config_extension_yaml | from_yaml is mapping else {} }}" matrix_bot_baibot_config_agents_static_definitions_anthropic_config_extension_yaml: | # Your custom YAML configuration for this provider's configuration goes here. # This configuration extends the default starting configuration (`matrix_bot_baibot_config_agents_static_definitions_anthropic_config`). # # You can override individual variables from the default configuration, or introduce new ones. # # If you need something more special, you can take full control by # completely redefining `matrix_bot_baibot_config_agents_static_definitions_anthropic_config_yaml`. # # Example configuration extension follows: # # text_generation: # temperature: 3.5 matrix_bot_baibot_config_agents_static_definitions_anthropic_config_base_url: https://api.anthropic.com/v1 matrix_bot_baibot_config_agents_static_definitions_anthropic_config_api_key: "" matrix_bot_baibot_config_agents_static_definitions_anthropic_config_text_generation_enabled: true # For valid model choices, see: https://docs.claude.com/en/docs/about-claude/models/overview matrix_bot_baibot_config_agents_static_definitions_anthropic_config_text_generation_model_id: claude-sonnet-4-5-20250929 # The prompt text to use (can be null or empty to not use a prompt). # See: https://huggingface.co/docs/transformers/en/tasks/prompting matrix_bot_baibot_config_agents_static_definitions_anthropic_config_text_generation_prompt: "{{ matrix_bot_baibot_config_agents_static_definitions_prompt }}" # The temperature parameter controls the randomness of the generated text. # See: https://blogs.novita.ai/what-are-large-language-model-settings-temperature-top-p-and-max-tokens/#what-is-llm-temperature matrix_bot_baibot_config_agents_static_definitions_anthropic_config_text_generation_temperature: 1.0 matrix_bot_baibot_config_agents_static_definitions_anthropic_config_text_generation_max_response_tokens: 8192 matrix_bot_baibot_config_agents_static_definitions_anthropic_config_text_generation_max_context_tokens: 204800 ######################################################################################## # # # /Anthropic agent configuration # # # ######################################################################################## ######################################################################################## # # # Groq agent configuration # # # ######################################################################################## matrix_bot_baibot_config_agents_static_definitions_groq_enabled: false matrix_bot_baibot_config_agents_static_definitions_groq_id: groq matrix_bot_baibot_config_agents_static_definitions_groq_provider: groq matrix_bot_baibot_config_agents_static_definitions_groq_config: "{{ matrix_bot_baibot_config_agents_static_definitions_groq_config_yaml | from_yaml | combine(matrix_bot_baibot_config_agents_static_definitions_groq_config_extension, recursive=True) }}" matrix_bot_baibot_config_agents_static_definitions_groq_config_yaml: "{{ lookup('template', 'templates/provider/groq-config.yml.j2') }}" matrix_bot_baibot_config_agents_static_definitions_groq_config_extension: "{{ matrix_bot_baibot_config_agents_static_definitions_groq_config_extension_yaml | from_yaml if matrix_bot_baibot_config_agents_static_definitions_groq_config_extension_yaml | from_yaml is mapping else {} }}" matrix_bot_baibot_config_agents_static_definitions_groq_config_extension_yaml: | # Your custom YAML configuration for this provider's configuration goes here. # This configuration extends the default starting configuration (`matrix_bot_baibot_config_agents_static_definitions_groq_config`). # # You can override individual variables from the default configuration, or introduce new ones. # # If you need something more special, you can take full control by # completely redefining `matrix_bot_baibot_config_agents_static_definitions_groq_config_yaml`. # # Example configuration extension follows: # # text_generation: # temperature: 3.5 matrix_bot_baibot_config_agents_static_definitions_groq_config_base_url: https://api.groq.com/openai/v1 matrix_bot_baibot_config_agents_static_definitions_groq_config_api_key: "" matrix_bot_baibot_config_agents_static_definitions_groq_config_text_generation_enabled: true # For valid model choices, see: https://platform.groq.com/docs/models matrix_bot_baibot_config_agents_static_definitions_groq_config_text_generation_model_id: "" # The prompt text to use (can be null or empty to not use a prompt). # See: https://huggingface.co/docs/transformers/en/tasks/prompting matrix_bot_baibot_config_agents_static_definitions_groq_config_text_generation_prompt: "{{ matrix_bot_baibot_config_agents_static_definitions_prompt }}" # The temperature parameter controls the randomness of the generated text. # See: https://blogs.novita.ai/what-are-large-language-model-settings-temperature-top-p-and-max-tokens/#what-is-llm-temperature matrix_bot_baibot_config_agents_static_definitions_groq_config_text_generation_temperature: 1.0 matrix_bot_baibot_config_agents_static_definitions_groq_config_text_generation_max_response_tokens: 4096 matrix_bot_baibot_config_agents_static_definitions_groq_config_text_generation_max_context_tokens: 131072 matrix_bot_baibot_config_agents_static_definitions_groq_config_speech_to_text_enabled: true matrix_bot_baibot_config_agents_static_definitions_groq_config_speech_to_text_model_id: whisper-large-v3 ######################################################################################## # # # /Groq agent configuration # # # ######################################################################################## ######################################################################################## # # # Mistral agent configuration # # # ######################################################################################## matrix_bot_baibot_config_agents_static_definitions_mistral_enabled: false matrix_bot_baibot_config_agents_static_definitions_mistral_id: mistral matrix_bot_baibot_config_agents_static_definitions_mistral_provider: mistral matrix_bot_baibot_config_agents_static_definitions_mistral_config: "{{ matrix_bot_baibot_config_agents_static_definitions_mistral_config_yaml | from_yaml | combine(matrix_bot_baibot_config_agents_static_definitions_mistral_config_extension, recursive=True) }}" matrix_bot_baibot_config_agents_static_definitions_mistral_config_yaml: "{{ lookup('template', 'templates/provider/mistral-config.yml.j2') }}" matrix_bot_baibot_config_agents_static_definitions_mistral_config_extension: "{{ matrix_bot_baibot_config_agents_static_definitions_mistral_config_extension_yaml | from_yaml if matrix_bot_baibot_config_agents_static_definitions_mistral_config_extension_yaml | from_yaml is mapping else {} }}" matrix_bot_baibot_config_agents_static_definitions_mistral_config_extension_yaml: | # Your custom YAML configuration for this provider's configuration goes here. # This configuration extends the default starting configuration (`matrix_bot_baibot_config_agents_static_definitions_mistral_config`). # # You can override individual variables from the default configuration, or introduce new ones. # # If you need something more special, you can take full control by # completely redefining `matrix_bot_baibot_config_agents_static_definitions_mistral_config_yaml`. # # Example configuration extension follows: # # text_generation: # temperature: 3.5 matrix_bot_baibot_config_agents_static_definitions_mistral_config_base_url: https://api.mistral.ai/v1 matrix_bot_baibot_config_agents_static_definitions_mistral_config_api_key: "" matrix_bot_baibot_config_agents_static_definitions_mistral_config_text_generation_enabled: true # For valid model choices, see: https://platform.mistral.com/docs/models matrix_bot_baibot_config_agents_static_definitions_mistral_config_text_generation_model_id: mistral-large-latest # The prompt text to use (can be null or empty to not use a prompt). # See: https://huggingface.co/docs/transformers/en/tasks/prompting matrix_bot_baibot_config_agents_static_definitions_mistral_config_text_generation_prompt: "{{ matrix_bot_baibot_config_agents_static_definitions_prompt }}" # The temperature parameter controls the randomness of the generated text. # See: https://blogs.novita.ai/what-are-large-language-model-settings-temperature-top-p-and-max-tokens/#what-is-llm-temperature matrix_bot_baibot_config_agents_static_definitions_mistral_config_text_generation_temperature: 1.0 matrix_bot_baibot_config_agents_static_definitions_mistral_config_text_generation_max_response_tokens: 4096 matrix_bot_baibot_config_agents_static_definitions_mistral_config_text_generation_max_context_tokens: 128000 ######################################################################################## # # # /Mistral agent configuration # # # ######################################################################################## ######################################################################################## # # # OpenAI agent configuration # # # ######################################################################################## matrix_bot_baibot_config_agents_static_definitions_openai_enabled: false matrix_bot_baibot_config_agents_static_definitions_openai_id: openai matrix_bot_baibot_config_agents_static_definitions_openai_provider: openai matrix_bot_baibot_config_agents_static_definitions_openai_config: "{{ matrix_bot_baibot_config_agents_static_definitions_openai_config_yaml | from_yaml | combine(matrix_bot_baibot_config_agents_static_definitions_openai_config_extension, recursive=True) }}" matrix_bot_baibot_config_agents_static_definitions_openai_config_yaml: "{{ lookup('template', 'templates/provider/openai-config.yml.j2') }}" matrix_bot_baibot_config_agents_static_definitions_openai_config_extension: "{{ matrix_bot_baibot_config_agents_static_definitions_openai_config_extension_yaml | from_yaml if matrix_bot_baibot_config_agents_static_definitions_openai_config_extension_yaml | from_yaml is mapping else {} }}" matrix_bot_baibot_config_agents_static_definitions_openai_config_extension_yaml: | # Your custom YAML configuration for this provider's configuration goes here. # This configuration extends the default starting configuration (`matrix_bot_baibot_config_agents_static_definitions_openai_config`). # # You can override individual variables from the default configuration, or introduce new ones. # # If you need something more special, you can take full control by # completely redefining `matrix_bot_baibot_config_agents_static_definitions_openai_config_yaml`. # # Example configuration extension follows: # # text_generation: # temperature: 3.5 matrix_bot_baibot_config_agents_static_definitions_openai_config_base_url: https://api.openai.com/v1 # The API key is intentionally not required. Some OpenAI-compatible APIs do not require a key. matrix_bot_baibot_config_agents_static_definitions_openai_config_api_key: "" matrix_bot_baibot_config_agents_static_definitions_openai_config_text_generation_enabled: true # For valid model choices, see: https://platform.openai.com/docs/models matrix_bot_baibot_config_agents_static_definitions_openai_config_text_generation_model_id: gpt-5.4 # The prompt text to use (can be null or empty to not use a prompt). # See: https://huggingface.co/docs/transformers/en/tasks/prompting matrix_bot_baibot_config_agents_static_definitions_openai_config_text_generation_prompt: "{{ matrix_bot_baibot_config_agents_static_definitions_prompt }}" # The temperature parameter controls the randomness of the generated text. # See: https://blogs.novita.ai/what-are-large-language-model-settings-temperature-top-p-and-max-tokens/#what-is-llm-temperature matrix_bot_baibot_config_agents_static_definitions_openai_config_text_generation_temperature: 1.0 matrix_bot_baibot_config_agents_static_definitions_openai_config_text_generation_max_response_tokens: ~ matrix_bot_baibot_config_agents_static_definitions_openai_config_text_generation_max_completion_tokens: 128000 matrix_bot_baibot_config_agents_static_definitions_openai_config_text_generation_max_context_tokens: 400000 # Built-in tools configuration (OpenAI only). # These tools extend the model's capabilities but are disabled by default following upstream defaults. # See: https://github.com/etkecc/baibot/blob/main/docs/features.md#%EF%B8%8F-built-in-tools-openai-only matrix_bot_baibot_config_agents_static_definitions_openai_config_text_generation_tools_web_search: false matrix_bot_baibot_config_agents_static_definitions_openai_config_text_generation_tools_code_interpreter: false matrix_bot_baibot_config_agents_static_definitions_openai_config_speech_to_text_enabled: true matrix_bot_baibot_config_agents_static_definitions_openai_config_speech_to_text_model_id: whisper-1 matrix_bot_baibot_config_agents_static_definitions_openai_config_text_to_speech_enabled: true matrix_bot_baibot_config_agents_static_definitions_openai_config_text_to_speech_model_id: tts-1-hd matrix_bot_baibot_config_agents_static_definitions_openai_config_text_to_speech_voice: onyx matrix_bot_baibot_config_agents_static_definitions_openai_config_text_to_speech_speed: 1.0 matrix_bot_baibot_config_agents_static_definitions_openai_config_text_to_speech_response_format: opus matrix_bot_baibot_config_agents_static_definitions_openai_config_image_generation_enabled: true matrix_bot_baibot_config_agents_static_definitions_openai_config_image_generation_model_id: gpt-image-1.5 matrix_bot_baibot_config_agents_static_definitions_openai_config_image_generation_style: null matrix_bot_baibot_config_agents_static_definitions_openai_config_image_generation_size: null matrix_bot_baibot_config_agents_static_definitions_openai_config_image_generation_quality: null ######################################################################################## # # # /OpenAI agent configuration # # # ######################################################################################## ######################################################################################## # # # Venice agent configuration # # # ######################################################################################## matrix_bot_baibot_config_agents_static_definitions_venice_enabled: false matrix_bot_baibot_config_agents_static_definitions_venice_id: venice matrix_bot_baibot_config_agents_static_definitions_venice_provider: venice matrix_bot_baibot_config_agents_static_definitions_venice_config: "{{ matrix_bot_baibot_config_agents_static_definitions_venice_config_yaml | from_yaml | combine(matrix_bot_baibot_config_agents_static_definitions_venice_config_extension, recursive=True) }}" matrix_bot_baibot_config_agents_static_definitions_venice_config_yaml: "{{ lookup('template', 'templates/provider/venice-config.yml.j2') }}" matrix_bot_baibot_config_agents_static_definitions_venice_config_extension: "{{ matrix_bot_baibot_config_agents_static_definitions_venice_config_extension_yaml | from_yaml if matrix_bot_baibot_config_agents_static_definitions_venice_config_extension_yaml | from_yaml is mapping else {} }}" matrix_bot_baibot_config_agents_static_definitions_venice_config_extension_yaml: | # Your custom YAML configuration for this provider's configuration goes here. # This configuration extends the default starting configuration (`matrix_bot_baibot_config_agents_static_definitions_venice_config`). # # You can override individual variables from the default configuration, or introduce new ones. # # If you need something more special, you can take full control by # completely redefining `matrix_bot_baibot_config_agents_static_definitions_venice_config_yaml`. # # The fully-commented sample config (every Venice knob, with explanations) lives at: # https://github.com/etkecc/baibot/blob/main/docs/sample-provider-configs/venice.yml # # Example configuration extension follows: # # text_generation: # venice_parameters: # enable_web_search: "off" matrix_bot_baibot_config_agents_static_definitions_venice_config_base_url: https://api.venice.ai/api/v1 matrix_bot_baibot_config_agents_static_definitions_venice_config_api_key: "" matrix_bot_baibot_config_agents_static_definitions_venice_config_text_generation_enabled: true # For valid model choices, see: https://docs.venice.ai/models/overview matrix_bot_baibot_config_agents_static_definitions_venice_config_text_generation_model_id: kimi-k2-5 # The prompt text to use (can be null or empty to not use a prompt). matrix_bot_baibot_config_agents_static_definitions_venice_config_text_generation_prompt: "{{ matrix_bot_baibot_config_agents_static_definitions_prompt }}" matrix_bot_baibot_config_agents_static_definitions_venice_config_text_generation_temperature: 1.0 matrix_bot_baibot_config_agents_static_definitions_venice_config_text_generation_max_response_tokens: 4096 matrix_bot_baibot_config_agents_static_definitions_venice_config_text_generation_max_context_tokens: 128000 # How long Venice keeps the prompt prefix cached: "default", "extended", or "24h". # "24h" makes a long, stable system prompt cheap across a day of conversations. matrix_bot_baibot_config_agents_static_definitions_venice_config_text_generation_prompt_cache_retention: 24h # The optional top-level sampling and reasoning knobs below default to null, meaning the knob is # omitted from the request and Venice applies its own server-side default. Set a value to override. # Nucleus sampling, 0.0-1.0 (an alternative to temperature). matrix_bot_baibot_config_agents_static_definitions_venice_config_text_generation_top_p: ~ # Penalize tokens by how often they have already appeared, -2.0-2.0. matrix_bot_baibot_config_agents_static_definitions_venice_config_text_generation_frequency_penalty: ~ # Penalize tokens that have appeared at all, -2.0-2.0. matrix_bot_baibot_config_agents_static_definitions_venice_config_text_generation_presence_penalty: ~ # Penalize repetition; values above 1.0 discourage repeats. matrix_bot_baibot_config_agents_static_definitions_venice_config_text_generation_repetition_penalty: ~ # Reasoning budget for models that support it: "low", "medium", or "high". matrix_bot_baibot_config_agents_static_definitions_venice_config_text_generation_reasoning_effort: ~ # Append the model's reasoning below the answer as a collapsible "Reasoning" block (folded by default). matrix_bot_baibot_config_agents_static_definitions_venice_config_text_generation_show_reasoning: ~ # Venice-specific request parameters (the `venice_parameters` bag). Each non-null knob below is sent; # a null knob is omitted, so Venice applies its own default. Omitting a knob is NOT the same as # setting it to `false` (which actively sends `false`). # Web search: "auto" (model decides), "on" (always), or "off". matrix_bot_baibot_config_agents_static_definitions_venice_config_text_generation_venice_parameters_enable_web_search: auto # Strip blocks from reasoning models so the user sees only the answer. matrix_bot_baibot_config_agents_static_definitions_venice_config_text_generation_venice_parameters_strip_thinking_response: true # Run in TEE-only mode (works across all models) instead of end-to-end-encrypted inference (only # some models support it). TEE is still zero-retention private; this default keeps every model usable. matrix_bot_baibot_config_agents_static_definitions_venice_config_text_generation_venice_parameters_enable_e2ee: false # Render web-search sources as readable citations in the reply. matrix_bot_baibot_config_agents_static_definitions_venice_config_text_generation_venice_parameters_enable_web_citations: ~ # Let web search read full page content, not just snippets. matrix_bot_baibot_config_agents_static_definitions_venice_config_text_generation_venice_parameters_enable_web_scraping: ~ # Prepend Venice's own system prompt alongside yours. matrix_bot_baibot_config_agents_static_definitions_venice_config_text_generation_venice_parameters_include_venice_system_prompt: ~ # Include search results inline in the streamed response. matrix_bot_baibot_config_agents_static_definitions_venice_config_text_generation_venice_parameters_include_search_results_in_stream: ~ # Return search results as documents rather than inline text. matrix_bot_baibot_config_agents_static_definitions_venice_config_text_generation_venice_parameters_return_search_results_as_documents: ~ # Allow web search to query X (Twitter). matrix_bot_baibot_config_agents_static_definitions_venice_config_text_generation_venice_parameters_enable_x_search: ~ # Disable the model's thinking phase entirely. matrix_bot_baibot_config_agents_static_definitions_venice_config_text_generation_venice_parameters_disable_thinking: ~ # Response verbosity for models that support it: "low", "medium", or "high". matrix_bot_baibot_config_agents_static_definitions_venice_config_text_generation_venice_parameters_verbosity: ~ # Use a public Venice character by its slug. matrix_bot_baibot_config_agents_static_definitions_venice_config_text_generation_venice_parameters_character_slug: ~ matrix_bot_baibot_config_agents_static_definitions_venice_config_speech_to_text_enabled: true matrix_bot_baibot_config_agents_static_definitions_venice_config_speech_to_text_model_id: nvidia/parakeet-tdt-0.6b-v3 matrix_bot_baibot_config_agents_static_definitions_venice_config_text_to_speech_enabled: true # Other models include tts-qwen3-1-7b, tts-xai-v1, tts-elevenlabs-turbo-v2-5, tts-minimax-speech-02-hd. matrix_bot_baibot_config_agents_static_definitions_venice_config_text_to_speech_model_id: tts-kokoro # Voices are model-specific. Kokoro uses af_*/am_*/bf_*/bm_* (e.g. af_sky, am_adam). You can also pass # a cloned-voice handle (vv_). An incompatible voice returns an error. matrix_bot_baibot_config_agents_static_definitions_venice_config_text_to_speech_voice: af_sky # Output audio format: mp3, opus, aac, flac, wav, or pcm. mp3 is the broadest Matrix-client fit. matrix_bot_baibot_config_agents_static_definitions_venice_config_text_to_speech_response_format: mp3 # The optional knobs below default to null (omitted). Set a value to override Venice's default. # Playback speed, 0.25-4.0 (1.0 is normal). matrix_bot_baibot_config_agents_static_definitions_venice_config_text_to_speech_speed: ~ # A style prompt steering emotion/delivery (e.g. "Excited and energetic."). Only Qwen 3 TTS uses it. matrix_bot_baibot_config_agents_static_definitions_venice_config_text_to_speech_prompt: ~ # Sampling temperature, 0.0-2.0. Only Qwen 3 / Orpheus / Chatterbox HD use it. matrix_bot_baibot_config_agents_static_definitions_venice_config_text_to_speech_temperature: ~ # Nucleus sampling, 0.0-1.0. Only Qwen 3 TTS uses it. matrix_bot_baibot_config_agents_static_definitions_venice_config_text_to_speech_top_p: ~ matrix_bot_baibot_config_agents_static_definitions_venice_config_image_generation_enabled: true matrix_bot_baibot_config_agents_static_definitions_venice_config_image_generation_model_id: chroma # The optional generation knobs below default to null (omitted). Set a value to override Venice's # default. Omitting a knob is NOT the same as setting it: an omitted knob lets Venice apply its own # default, a set value is sent verbatim. # A description of what should NOT appear in the image. matrix_bot_baibot_config_agents_static_definitions_venice_config_image_generation_negative_prompt: ~ # CFG scale, 0-20. Higher values make the image adhere more closely to the prompt. matrix_bot_baibot_config_agents_static_definitions_venice_config_image_generation_cfg_scale: ~ # Number of inference steps. Model-specific; some models ignore it. matrix_bot_baibot_config_agents_static_definitions_venice_config_image_generation_steps: ~ # A named style to apply (e.g. "3D Model"). See Venice's image-styles reference. matrix_bot_baibot_config_agents_static_definitions_venice_config_image_generation_style_preset: ~ # Random seed, -999999999-999999999. Fix it for reproducible results; omit for a random seed. matrix_bot_baibot_config_agents_static_definitions_venice_config_image_generation_seed: ~ # Blur images classified as adult content. Defaults to true. matrix_bot_baibot_config_agents_static_definitions_venice_config_image_generation_safe_mode: ~ # Hide the Venice watermark. Venice may ignore this for certain generated content. Defaults to false. matrix_bot_baibot_config_agents_static_definitions_venice_config_image_generation_hide_watermark: ~ # Output format: jpeg, png, or webp. webp is smallest; png is highest-quality. Defaults to webp. matrix_bot_baibot_config_agents_static_definitions_venice_config_image_generation_format: ~ # Image dimensions in pixels, each 1-1280. Default 1024x1024. matrix_bot_baibot_config_agents_static_definitions_venice_config_image_generation_width: ~ matrix_bot_baibot_config_agents_static_definitions_venice_config_image_generation_height: ~ # Aspect ratio (used by certain models, e.g. Nano Banana): "1:1", "16:9". An alternative to width/height. matrix_bot_baibot_config_agents_static_definitions_venice_config_image_generation_aspect_ratio: ~ # Resolution tier (used by certain models): "1K", "2K", "4K". matrix_bot_baibot_config_agents_static_definitions_venice_config_image_generation_resolution: ~ # Output quality for supported models (e.g. GPT Image 2): low, medium, high. Higher can cost more. matrix_bot_baibot_config_agents_static_definitions_venice_config_image_generation_quality: ~ # Lora strength, 0-100. Only applies if the model uses additional Loras. matrix_bot_baibot_config_agents_static_definitions_venice_config_image_generation_lora_strength: ~ # Embed the generation prompt into the image's EXIF metadata. Defaults to false. matrix_bot_baibot_config_agents_static_definitions_venice_config_image_generation_embed_exif_metadata: ~ # Let the model pull the latest info from the web for the image. Model-specific; costs extra credits. matrix_bot_baibot_config_agents_static_definitions_venice_config_image_generation_enable_web_search: ~ # Image editing shares this image_generation config block; only the model differs. matrix_bot_baibot_config_agents_static_definitions_venice_config_image_generation_edit_model_id: firered-image-edit # The optional edit knobs below default to null (omitted). Set a value to override Venice's default. # Output format: jpeg, png, or webp. When omitted, Venice infers it (PNG at 1K, JPEG at 2K/4K). matrix_bot_baibot_config_agents_static_definitions_venice_config_image_generation_edit_output_format: ~ # Aspect ratio of the result: auto, 1:1, 3:2, 16:9, 21:9, 9:16, 2:3, 3:4, 4:5 (model-specific). matrix_bot_baibot_config_agents_static_definitions_venice_config_image_generation_edit_aspect_ratio: ~ # Resolution tier: 1K, 2K, 4K (model-specific). Defaults to 1K. matrix_bot_baibot_config_agents_static_definitions_venice_config_image_generation_edit_resolution: ~ # Blur images classified as adult content. Defaults to true. matrix_bot_baibot_config_agents_static_definitions_venice_config_image_generation_edit_safe_mode: ~ ######################################################################################## # # # /Venice agent configuration # # # ######################################################################################## # Controls the `initial_global_config.handler.catch_all` configuration setting. # # This is an initial global configuration setting. # It only affects the first run of the bot. Configuration is later managed at runtime. matrix_bot_baibot_config_initial_global_config_handler_catch_all: null # Controls the `initial_global_config.handler.text_generation` configuration setting. # # This is an initial global configuration setting. # It only affects the first run of the bot. Configuration is later managed at runtime. matrix_bot_baibot_config_initial_global_config_handler_text_generation: null # Controls the `initial_global_config.handler.text_to_speech` configuration setting. # # This is an initial global configuration setting. # It only affects the first run of the bot. Configuration is later managed at runtime. matrix_bot_baibot_config_initial_global_config_handler_text_to_speech: null # Controls the `initial_global_config.handler.speech_to_text` configuration setting. # # This is an initial global configuration setting. # It only affects the first run of the bot. Configuration is later managed at runtime. matrix_bot_baibot_config_initial_global_config_handler_speech_to_text: null # Controls the `initial_global_config.handler.image_generation` configuration setting. # # This is an initial global configuration setting. # It only affects the first run of the bot. Configuration is later managed at runtime. matrix_bot_baibot_config_initial_global_config_handler_image_generation: null # Controls the `initial_global_config.user_patterns` configuration setting. # # A space-separated list of MXID patterns which specify who can use the bot. # By default, we let anyone on the homeserver use the bot. # # This is an initial global configuration setting. # It only affects the first run of the bot. Configuration is later managed at runtime. matrix_bot_baibot_config_initial_global_config_user_patterns: - "@*:{{ matrix_bot_baibot_config_homeserver_server_name }}" # Controls the `logging` configuration setting. # # This could take a single value (e.g. `warn`) to affect all tracing targets, # or individual libraries (e.g. `mxlink`, `baibot`) can be configured independently of the main level. # # Below, we configure the logging level for: # - the bot (baibot), via `matrix_bot_baibot_config_logging_level_baibot` # - the bot framework that the bot is based on (mxlink), via `matrix_bot_baibot_config_logging_level_mxlink` # - everything else (external libraries), via `matrix_bot_baibot_config_logging_level_other_libs` # # Valid values for each level are: `trace`, `debug`, `info`, `warn`, `error`. # Learn more here: https://stackoverflow.com/a/73735203 matrix_bot_baibot_config_logging: "{{ matrix_bot_baibot_config_logging_level_other_libs }},mxlink={{ matrix_bot_baibot_config_logging_level_mxlink }},baibot={{ matrix_bot_baibot_config_logging_level_baibot }}" # Adjust the logging level for other libraries used by the bot. matrix_bot_baibot_config_logging_level_other_libs: warn # Affects the logging level of the bot framework (mxlink) that the bot is based on. # Related to `matrix_bot_baibot_config_logging` matrix_bot_baibot_config_logging_level_mxlink: info # Affects the logging level of the bot itself. # Related to `matrix_bot_baibot_config_logging` matrix_bot_baibot_config_logging_level_baibot: info # Holds the final baibot configuration (a combination of the default and its extension). # You most likely don't need to touch this variable. Instead, see `matrix_bot_baibot_configuration_yaml` or `matrix_bot_baibot_configuration_extension_yaml`. matrix_bot_baibot_configuration: "{{ matrix_bot_baibot_configuration_yaml | from_yaml | combine(matrix_bot_baibot_configuration_extension, recursive=True) }}" # Default baibot configuration template which covers the generic use case. # You can customize it by controlling the various variables inside it. # # For a more advanced customization, you can extend the default (see `matrix_bot_baibot_configuration_extension_yaml`) # or completely replace this variable with your own template. matrix_bot_baibot_configuration_yaml: "{{ lookup('template', 'templates/config.yaml.j2') }}" matrix_bot_baibot_configuration_extension_yaml: | # Your custom YAML configuration for baibot goes here. # This configuration extends the default starting configuration (`matrix_bot_baibot_configuration_yaml`). # # You can override individual variables from the default configuration, or introduce new ones. # # If you need something more special, you can take full control by # completely redefining `matrix_bot_baibot_configuration_yaml`. # # Example configuration extension follows: # # user: # password: something matrix_bot_baibot_configuration_extension: "{{ matrix_bot_baibot_configuration_extension_yaml | from_yaml if matrix_bot_baibot_configuration_extension_yaml | from_yaml is mapping else {} }}" # Additional environment variables to pass to the baibot container. # # Environment variables take priority over settings in the configuration file. # # Example: # matrix_bot_baibot_environment_variables_extension: | # BAIBOT_USER_PASSWORD=password matrix_bot_baibot_environment_variables_extension: '' # matrix_bot_baibot_restart_necessary controls whether the service # will be restarted (when true) or merely started (when false) by the # systemd service manager role (when conditional restart is enabled). # # This value is automatically computed during installation based on whether # any configuration files, the systemd service file, or the container image changed. # The default of `false` means "no restart needed" — appropriate when the role's # installation tasks haven't run (e.g., due to --tags skipping them). matrix_bot_baibot_restart_necessary: false