186 lines
7.5 KiB
YAML
186 lines
7.5 KiB
YAML
---
|
|
# tasks file for baibot
|
|
- name: Create Baibot namespace
|
|
k8s:
|
|
state: present
|
|
definition:
|
|
apiVersion: v1
|
|
kind: Namespace
|
|
metadata:
|
|
name: baibot
|
|
|
|
- name: Create a ConfigMap for Baibot
|
|
k8s:
|
|
definition:
|
|
apiVersion: v1
|
|
kind: ConfigMap
|
|
metadata:
|
|
name: config
|
|
namespace: baibot
|
|
data:
|
|
config.yml: |
|
|
homeserver:
|
|
# The canonical homeserver domain name
|
|
server_name: synapse.eom.dev
|
|
url: https://synapse.eom.dev/
|
|
user:
|
|
mxid_localpart: localai
|
|
password: {{ localai_admin_password }}
|
|
# The name the bot uses as a display name and when it refers to itself.
|
|
# Leave empty to use the default (baibot).
|
|
name: LocalAI
|
|
encryption:
|
|
# An optional passphrase to use for backing up and recovering the bot's encryption keys.
|
|
# You can use any string here.
|
|
#
|
|
# If set to null, 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 `encryption_recovery_reset_allowed` to `true` and adjust the passphrase
|
|
# - Remove your session file and database (see persistence)
|
|
# - Restart the bot
|
|
# - Then restore `encryption_recovery_reset_allowed` to `false` to prevent accidental resets in the future
|
|
recovery_passphrase: {{ localai_matrix_recovery_key }}
|
|
# An optional flag to reset the encryption recovery passphrase.
|
|
recovery_reset_allowed: false
|
|
# Command prefix. Leave empty to use the default (!bai).
|
|
command_prefix: "!bai"
|
|
room:
|
|
# Whether the bot should send an introduction message after joining a room.
|
|
post_join_self_introduction_enabled: true
|
|
access:
|
|
# Space-separated list of MXID patterns which specify who is an admin.
|
|
admin_patterns:
|
|
- "@eric:eom.dev"
|
|
persistence:
|
|
# This is unset here, because we expect the configuration to come from an environment variable (BAIBOT_PERSISTENCE_DATA_DIR_PATH).
|
|
# In your setup, you may wish to set this to a directory path.
|
|
data_dir_path: null
|
|
# An optional secret for encrypting the bot's session data (stored in data_dir_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 stored in data_dir_path.
|
|
session_encryption_key: {{ baibot_session_encryption_key }}
|
|
# 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.
|
|
config_encryption_key: {{ baibot_config_encryption_key }}
|
|
agents:
|
|
# A list of statically-defined agents.
|
|
#
|
|
# Below are a few common choices on popular providers, preconfigured for development purposes (see docs/development.md).
|
|
# You may enable some of the ones you see below or define others.
|
|
# You can also leave this list empty and only define agents dynamically (via chat).
|
|
#
|
|
# Uncomment one or more of these and potentially adjust their configuration (API key, etc).
|
|
# Consider setting `initial_global_config.handler.*` to an agent that you enable here.
|
|
static_definitions:
|
|
- id: localai
|
|
provider: localai
|
|
config:
|
|
base_url: https://localai.eom.dev/v1
|
|
api_key: {{ localai_api_keys[1] }}
|
|
text_generation:
|
|
model_id: llama3-instruct
|
|
prompt: "You are a brief, but helpful bot called LocalAI powered by the llama3-8b-instruct model. Format all responses in markdown."
|
|
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
|
|
voice: onyx
|
|
speed: 1.0
|
|
response_format: opus
|
|
image_generation:
|
|
model_id: stablediffusion
|
|
style: vivid
|
|
# Intentionally defaults to a small value to improve performance
|
|
size: 256x256
|
|
quality: standard
|
|
# Initial global configuration. This only affects the first run of the bot.
|
|
# Configuration is later managed at runtime.
|
|
initial_global_config:
|
|
handler:
|
|
catch_all: static/localai
|
|
text_generation: static/localai
|
|
text_to_speech: static/localai
|
|
speech_to_text: static/localai
|
|
image_generation: static/localai
|
|
# Space-separated list of MXID patterns which specify who can use the bot.
|
|
# By default, we let anyone on the homeserver use the bot.
|
|
user_patterns:
|
|
- "@*:*"
|
|
# Controls logging.
|
|
#
|
|
# Sets all tracing targets (external crates) to warn, and our own logs to debug.
|
|
# For even more verbose logging, one may also use trace.
|
|
#
|
|
# matrix_sdk_crypto may be chatty and could be added with an error level.
|
|
#
|
|
# Learn more here: https://stackoverflow.com/a/73735203
|
|
logging: warn,mxlink=debug,baibot=debug
|
|
|
|
- name: Create a persistent volume claim for Baibot
|
|
k8s:
|
|
state: present
|
|
definition:
|
|
apiVersion: v1
|
|
kind: PersistentVolumeClaim
|
|
metadata:
|
|
name: data
|
|
namespace: baibot
|
|
spec:
|
|
accessModes:
|
|
- ReadWriteOnce
|
|
resources:
|
|
requests:
|
|
storage: 256Gi
|
|
|
|
- name: Create a Deployment for Baibot
|
|
k8s:
|
|
definition:
|
|
apiVersion: v1
|
|
kind: Deployment
|
|
metadata:
|
|
name: baibot
|
|
namespace: baibot
|
|
spec:
|
|
replicas: 1
|
|
selector:
|
|
matchLabels:
|
|
app: baibot
|
|
template:
|
|
metadata:
|
|
labels:
|
|
app: baibot
|
|
spec:
|
|
containers:
|
|
- name: baibot
|
|
image: ghcr.io/etkecc/baibot
|
|
tag: v1.0.0
|
|
env:
|
|
- name: BAIBOT_PERSISTENCE_DATA_DIR_PATH
|
|
value: /data
|
|
- name: BAIBOT_CONFIG_FILE_PATH
|
|
value: /config/config.yml
|
|
volumeMounts:
|
|
- name: config
|
|
mountPath: /config
|
|
- name: data
|
|
mountPath: /data
|
|
volumes:
|
|
- name: data
|
|
persistentVolumeClaim:
|
|
claimName: data
|
|
- name: config
|
|
configMap:
|
|
name: config
|
|
|