Chaz é Chaz.
Este é um bot da Matrix que se conecta a vários fornecedores de LLM para permitir a conversa com qualquer um dos modelos LLM. É compatível com qualquer modelo usando a API OpenAI.
Além disso, também é possível usar o Aichat como provedor; portanto, todos os modelos disponíveis no Aichat também podem ser acessados.
Você precisará de suas próprias chaves da API ou sua própria IA local já configurada.
Postagem do blog do anúncio: Chaz: um LLM <-> Matrix Chatbot
Há uma sala de matriz pública disponível em #chaz: Jackson.dev
Se você tem suas próprias teclas de API e confia em mim para não abusar delas, pode começar rapidamente com @chaz: Jackson.dev. Basta adicionar esse usuário Matrix ao seu quarto, configure -o com suas próprias teclas de API para um back -end compatível com API OpenAI e você estará pronto.
O CHAZ aceitará automaticamente convites de sala para qualquer usuário no allow_list .
Quando estiver em uma sala, ele observará comandos prefixados por !chaz . Se for um DM, ele responderá a todas as mensagens que não reconhecem como um comando. Se estiver em uma sala maior, ele responderá apenas a mensagens enviadas a ela usando !chaz .
Então, em uma sala maior, envie Just !chaz e ele será enviado todas as mensagens recentes da sala e solicitou uma resposta. Você também pode enviar uma solicitação junto com isso, por exemplo !chaz explain that to me , e isso receberá sua mensagem e o contexto da sala e responderá.
Os comandos que reconhece são:
!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 O comando !chaz role leva 0, 1 ou muitos argumentos.
!chaz role!chaz role <name> para definir uma função existente como o padrão.!chaz role <name> <prompt> para criar uma nova função com o prompt fornecido. chaz é embalado apenas em Crates.io, mas é recomendável que você corra do Git Head por enquanto.
Para usuários do NIX, este repo contém um flago nix. Consulte a seção de configuração para obter detalhes sobre a configuração.
Há uma imagem do Docker disponível no Docker Hub. Aqui está um exemplo de composição do docker:
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 :Observe que isso requer que 2 arquivos de configuração sejam montados no recipiente, um para Chaz e outro para Aichat. Você também precisará definir os diretórios de estado/cache em seu arquivo de configuração do Chaz.
O arquivo de configuração do Chaz deve se parecer com o seguinte:
homeserver_url : https://matrix.jackson.dev
username : " chaz "
password : " "
state_dir : " /state "
aichat_config_dir : " /aichat "
allow_list : " @.*:jackson.dev|@arcuru:matrix.org " Primeiro, configure uma conta em qualquer servidor Matrix para o bot usar.
Crie um arquivo de configuração para o bot com suas informações de login.
Importante : certifique -se de configurar seu allowlist ou o bot não responderá
Os padrões estão configurados em 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. Para executá -lo, simplesmente:
chaz --config config.yaml .O bot não responderá às mensagens mais antigas enviadas enquanto não estava funcionando para evitar sobrecarregar o back -end.
O desenvolvimento está sendo feito usando um flago nix. A maneira mais fácil de instalar Chaz é usar flocos de nix.
❯ nix run github:arcuru/chazO floco contém uma sobreposição para facilitar a importação para a sua própria configuração de flocos. Para usar, adicione -o às suas entradas:
inputs . chaz . url = "github:arcuru/chaz" ; E adicione a sobreposição inputs.chaz.overlays.default ao seu PKGS.
O Flake também contém um módulo de gerente doméstico para instalar o Chaz como um serviço. Importe o módulo para a sua configuração de gerente de casa e você pode configurar chaz tudo de dentro do 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" ;
} ;
} ;
} Espelhado no Github e Codeberg. O Github é o repositório oficial, mas use qualquer um dos repositórios para contribuir. Os problemas não podem ser sincronizados, portanto, pode haver algumas duplicatas.