Чаз чаз.
Это матричный бот, который подключается к нескольким поставщикам LLM, чтобы позволить общаться с любой из моделей LLM. Он совместим с любой моделью с использованием API OpenAI.
Кроме того, также можно использовать Aichat в качестве поставщика, поэтому можно получить доступ к любым моделям, доступным через Aichat.
Вам понадобятся ваши собственные клавиши API или ваш собственный локальный AI, уже настроенный.
Сообщение в блоге объявления: Chaz: LLM <-> Матричный чатбот
В #Chaz: Jackson.dev есть комната для публичной матрицы: Jackson.dev
Если у вас есть свои собственные ключи API, и вы доверяете мне, чтобы не злоупотреблять ими, вы можете быстро начать с @chaz: jackson.dev. Просто добавьте этот пользователь Matrix в свою комнату, настройте его с помощью собственных клавиш API на Backend API OpenAI, и все готово.
Chaz автоматически примет приглашение в комнату для любого пользователя в allow_list .
Когда он находится в комнате, он будет следить за командами, которые префикс !chaz . Если это DM, он будет отвечать на каждое сообщение, которое он не признает как команду. Если он находится в большей комнате, это будет отвечать только на сообщения, которые отправляются на него с помощью !chaz .
Так что в большей комнате отправьте Just !chaz , и он будет отправлен все недавние сообщения в комнате и попросят ответить. Вы также можете отправить запрос вместе с этим, например !chaz explain that to me , и он получит ваше сообщение и контекст комнаты и ответит.
Команды, которые он распознает, являются:
!chaz help
Available commands:
!chaz print - Print the conversation
!chaz send < message > - Send a message without context
!chaz model < model > - Select the model to use
!chaz backend < name > <api_base> <api_key> - Manually enter an OpenAI Compatible Backend
!chaz role [ < role > ] [ < prompt > ] - Get the role info, set the role, or define a new role
!chaz list - List available models
!chaz clear - Ignore all messages before this point
!chaz rename - Rename the room and set the topic based on the chat content
!chaz help - Show this message Команда !chaz role занимает 0, 1 или много аргументов.
!chaz role , чтобы показать текущую роль и перечислить все доступные роли.!chaz role <name> чтобы установить существующую роль в качестве дефолта.!chaz role <name> <prompt> чтобы создать новую роль с данной подсказкой. chaz упакован только на Crates.io, но рекомендуется вам пробежать от Git Head.
Для пользователей NIX этот репо содержит NIX Flake. См. Раздел «Настройка» для получения подробной информации о настройке.
На Docker Hub доступно изображение Docker. Вот пример Docker Compose:
services :
chaz :
image : arcuru/chaz:main # Set to your desired version
restart : unless-stopped
network_mode : host
volumes :
# Mount your config file to /config.yaml
- ./config.yaml:/config.yaml
# Mount your aichat config to /aichat, AND SET THAT LOCATION IN CHAZ'S CONFIG.YAML
- aichat-state:/aichat
- ./aichat.yaml:/aichat/config.yaml
# Mount the volume into the same location specified in config.yaml
- chaz-state:/state
volumes :
# Persists the logged in session
chaz-state :
aichat-state :Обратите внимание, что это требует, чтобы 2 конфигурации были установлены в контейнер, один для Chaz и один для Aichat. Вам также необходимо установить каталоги состояния/кэша в вашем файле конфигурации Chaz.
Файл конфигурации Chaz должен выглядеть примерно так:
homeserver_url : https://matrix.jackson.dev
username : " chaz "
password : " "
state_dir : " /state "
aichat_config_dir : " /aichat "
allow_list : " @.*:jackson.dev|@arcuru:matrix.org " Во -первых, настройте учетную запись на любом сервере Matrix для использования бота.
Создайте файл конфигурации для бота с информацией о входе в систему.
Важно : убедитесь, что вы настроили свой alluct_list, или бот не будет отвечать
По умолчанию настроены в src/defaults.rs
homeserver_url : https://matrix.org
username : " chaz "
password : " " # Optional, if not given it will ask for it on first run
allow_list : " " # Regex for allowed accounts.
# message_limit: 0 # Set a per-account message limit, it will not allow more than this many messages per account.
# room_size_limit: 0 # Set a room size limit. It will refuse join if the room is too large.
state_dir : " $XDG_STATE_HOME/chaz " # Optional, for setting the chaz state directory
aichat_config_dir : " $AICHAT_CONFIG_DIR " # Optional, for using a separate aichat config
chat_summary_model : " " # Optional, set a different model than the default to use for summarizing the chat
disable_media_context : false # Optional, set to true to disable sending media context to aichat
role : chaz # Optionally set a role, AKA system prompt. Set to `chaz` for the full chaz experience, or `cave-chaz` for even more chaz
# Define backends. If more than 1 is defined, model names will be prefixed by the backends name.
# If none are defined, Chaz will look for Aichat
backends :
- name : openai # Name of the backend, models will be shown with this as a prefix, e.g. openai:gpt-4
type : openaicompatible
api_key :
api_base : https://api.openai.com/v1
models : # Listing models here is not necessary, but does make Chaz aware of them. You can still switch to a model not listed here through '!chaz model ....'
- name : gpt-4o
- name : gpt-4o-mini
- name : tog # Name can be anything. Model names will be "tog:<model>"
type : openaicompatible
api_key :
api_base : https://api.together.xyz/v1
- name : aic
type : aichat
roles : # Optional, define your own roles
- name : chaz # This one is predefined
description : Chaz is Chaz
prompt : " Your name is Chaz, you are an AI assistant, and you refer to yourself in the third person. "
example : # Optionally define example messages.
- user : User
message : " Are you ready? "
- user : Assistant
message : " Chaz is ready. "
- name : bash
description : Get a single shell command
prompt : >
Based on the following user description, generate a corresponding Bash shell command.
Focus solely on interpreting the requirements and translating them into a single, executable Bash command.
Ensure accuracy and relevance to the user's description.
The output should be a valid Bash command that directly aligns with the user's intent, ready for execution in a command-line environment.
Do not output anything except for the command.
No code block, no English explanation, no newlines, and no start/end tags. Чтобы запустить его, просто:
chaz --config config.yaml .Бот не будет реагировать на более старые сообщения, отправленные, пока он не работает, чтобы предотвратить подавляющую бэкэнд.
Разработка осуществляется с использованием NIX Flake. Самый простой способ установить Chaz - это использовать NIX Flakes.
❯ nix run github:arcuru/chazХлоплят содержит наложение, чтобы облегчить импорт в вашу собственную конфигурацию. Чтобы использовать, добавьте его в свои входы:
inputs . chaz . url = "github:arcuru/chaz" ; И затем добавьте inputs.chaz.overlays.default в свои pkgs.
Flake также содержит модуль домашнего менеджера для установки Chaz в качестве услуги. Импортируйте модуль в конфигурацию домашнего менеджера, и вы можете настроить chaz все из Nix:
{ inputs , ... } : {
imports = [ inputs . chaz . homeManagerModules . default ] ;
services . chaz = {
enable = true ;
settings = {
homeserver_url = "https://matrix.jackson.dev" ;
username = "chaz" ;
password = "hunter2" ;
allow_list = "@me:matrix.org|@myfriend:matrix.org" ;
} ;
} ;
} Зеркально на Github и Codeberg. GitHub - официальный репо, но используйте любого репо, чтобы внести свой вклад. Проблемы не могут быть синхронизированы, поэтому могут быть некоторые дубликаты.