IA
Os recursos de IA do Antimatter usam modelos de sua escolha: um provedor de nuvem ou um servidor na sua própria rede. Nada é enviado a lugar nenhum até que você configure um modelo. Esta página aborda as conexões de modelos, cada recurso, os dados que ele envia e como desativá-lo.
Os recursos de IA
| Recurso | Configurado em | Tipo de modelo | Ativado por padrão |
|---|---|---|---|
| Reescrita no compositor: melhore, encurte, corrija ou traduza uma mensagem antes de enviá-la | IA › Recursos integrados, com uma conexão de modelo | Um modelo de chat (LLM) | não |
| Resumos: resumos dos canais escolhidos pelas pessoas | IA › Recursos integrados, com uma conexão de modelo | Um modelo de chat (LLM) | não |
| Tradução automática de canais | Configuração do Site › Regionalização | Uma conexão de modelo, LibreTranslate ou uma API compatível com OpenAI | não |
| Leitura em voz alta | Integrações › Texto para Fala, opcionalmente com uma conexão de modelo | Conversão de texto em fala, compatível com OpenAI | não |
| Agentes de IA: converse com um bot, resumos de tópicos, resumos de chamadas | O aplicativo Agentes | Qualquer serviço de modelo de linguagem grande (LLM) | O aplicativo está ativado, mas não faz nada até que você adicione um serviço |
| Transcrições de chamadas e legendas ao vivo | O aplicativo Chamadas | Conversão de fala em texto, compatível com OpenAI | não |
"Compatível com OpenAI" significa um servidor que oferece a mesma API HTTP que a OpenAI. A maioria dos servidores de modelos que você pode executar por conta própria o faz (por exemplo, Ollama, vLLM, o servidor do llama.cpp, ou servidores de Whisper e texto para fala), assim como muitos provedores de nuvem e gateways, como LiteLLM ou OpenRouter. Nenhuma licença é necessária para nenhum desses recursos.
Os recursos integrados (reescrita, resumos, tradução e leitura em voz alta) não precisam do aplicativo Agentes: eles usam as conexões de modelos que você adiciona no Console do Sistema.
Conexões de modelos
Uma conexão de modelo é um provedor de IA que o Antimatter pode chamar: seu endereço, sua chave e seus modelos. Você a adiciona uma vez e, em seguida, a seleciona para cada recurso que deve usá-la. Existem dois tipos:
- Conexões em nível de servidor, gerenciadas por administradores do sistema em Console do Sistema › IA › Conexões de modelos. Somente elas podem atender aos recursos integrados. Os aplicativos também podem usá-las, para as pessoas autorizadas.
- Conexões de comunidade, que os administradores de uma comunidade adicionam para a própria comunidade nas configurações da comunidade (veja abaixo). Os aplicativos as usam para as pessoas da comunidade. Elas nunca atendem aos recursos integrados.
A seção IA do Console do Sistema é exibida para as pessoas que podem gerenciar as conexões em nível de servidor: administradores do sistema, por padrão. Sua página Conexões de modelos lista as conexões em nível de servidor e as de todas as comunidades.
Adicionar uma conexão
Em Console do Sistema › IA › Conexões de modelos, clique em Adicionar uma conexão e, em seguida, preencha o formulário:
| Campo | O que inserir |
|---|---|
| Predefinições | Preenche o provedor e o endereço de um serviço bem conhecido: OpenAI, Mistral, Gemini, OpenRouter, ou Ollama e LiteLLM no próprio servidor. Opcional. |
| Nome | O nome que os administradores veem ao selecioná-lo, por exemplo "OpenAI da Empresa". |
| Provedor | Compatível com OpenAI (a maioria dos provedores, gateways e servidores de modelos que você executa) ou Anthropic. Serviços em nuvem com login próprio, como AWS Bedrock, Google Vertex AI ou Azure com Entra ID, usam seu endpoint compatível com OpenAI ou um gateway como o LiteLLM. |
| URL base | O endereço da API, incluindo /v1, por exemplo http://ollama:11434/v1. Se deixado vazio, usa o padrão do provedor (https://api.openai.com/v1 ou https://api.anthropic.com/v1). |
| Chave de API | A chave do provedor. Deixe vazio se o endpoint não exigir. Ela é armazenada de forma criptografada e nunca exibida novamente: o formulário mostra apenas os últimos quatro caracteres e oferece opções para manter, substituir ou remover. |
| Cabeçalhos extras | Cabeçalhos para enviar com cada requisição, para gateways que os exigem. Seus valores são armazenados de forma criptografada, como a chave, e nunca exibidos novamente: para alterá-los, digite todos novamente. |
| Modelos | O modelo usado para cada capacidade quando um recurso ou aplicativo não especifica um: Chat, Embeddings, Transcrição e Decisões. Carregar modelos lista os modelos oferecidos pelo endpoint. Deixe uma capacidade vazia se o endpoint não a oferecer. Conexões Anthropic apenas fazem chat. |
| API de Decisões | Como o modelo de decisões é chamado: Decisões OpenAI ou SystemOne. Importante apenas para aplicativos que solicitam decisões. |
| Limites | Veja Limites e orçamentos. |
| Comunidades | Somente conexões em nível de servidor. Todas as comunidades: utilizável em todas as comunidades, bem como em mensagens diretas e de grupo. Caso contrário, apenas nas comunidades que você escolher. |
| Quem pode usar | Todos onde estiver utilizável, ou apenas as equipes (grupos de pessoas dentro de uma comunidade) e os papéis que você escolher (Administradores do sistema, Administradores da comunidade). Convidados também permite que convidados usem; sem isso, eles não podem, mesmo com Todos. |
Testar Conexão verifica o endereço e a chave: o servidor solicita os modelos ao endpoint ou envia um chat de um token. Um endereço alterado é testado com a chave salva apenas após salvar, ou se você digitar a chave novamente. Clique em Adicionar conexão para salvar.
O servidor faz as solicitações por conta própria, portanto, ele deve conseguir acessar a API: um servidor de modelo no mesmo projeto compose, na sua rede ou na Internet. As solicitações de saída respeitam as variáveis HTTP_PROXY e HTTPS_PROXY.
Ao excluir uma conexão, sua chave é descartada. Os recursos que a utilizavam deixam de usar IA até que você selecione outra conexão.
Limites e orçamentos
Cada conexão possui quatro limites. Valores vazios ou 0 significam sem limite.
- Solicitações por minuto e Por pessoa, solicitações por minuto. Eles são contados separadamente por cada servidor: um cluster de três servidores permite até três vezes a taxa.
- Tokens por mês e Por pessoa, tokens por mês: orçamentos de tokens, por mês civil (UTC), contados no banco de dados para todo o cluster. Várias solicitações executadas ao mesmo tempo podem ultrapassar ligeiramente um orçamento.
Os limites por pessoa também se aplicam à reescrita e aos resumos: eles são descontados da pessoa que reescreve ou que é a proprietária do resumo.
Uso
A lista mostra o uso de cada conexão neste mês. Uso abre os detalhes: tokens de entrada e saída, solicitações, o orçamento mensal, o uso por dia (UTC) e por finalidade (Reescrever, Resumos, Tradução automática, Texto para Fala, Pessoas, por meio de aplicativos ou um aplicativo).
Toda chamada feita por uma pessoa ou aplicativo por meio de uma conexão também grava um registro de auditoria: quem, a conexão, a finalidade, o modelo, as contagens de tokens e se funcionou, nunca o que foi dito. Os recursos integrados são contados apenas no uso: a tradução sozinha faz uma chamada por mensagem e idioma.
Conexões da comunidade
Administradores de comunidade adicionam as próprias conexões da comunidade nas configurações da comunidade, na aba Conexões de modelos. O formulário é o mesmo, sem Comunidades: a conexão de uma comunidade funciona apenas nos próprios canais, para os próprios membros, e seu público só pode nomear as próprias equipes. Papéis com a permissão Gerenciar conexões de modelos também podem gerenciá-las. Por padrão, os administradores de comunidade possuem essa permissão.
A conexão de uma comunidade não pode acessar endereços privados ou de loopback (um servidor Ollama na sua rede, por exemplo), a menos que Console do Sistema › Ambiente › Desenvolvedor › Permitir conexão interna não confiável (ServiceSettings.AllowedUntrustedInternalConnections) os liste. As conexões de todo o servidor podem.
Veja Configurações da comunidade para a perspectiva dos administradores de comunidade.
A chave de criptografia
As chaves e os cabeçalhos extras das conexões de modelos são criptografados no banco de dados (AES-256-GCM) com uma única chave de criptografia. Um backup do banco de dados por si só não os revela. O servidor localiza a chave nesta ordem:
- A variável
AM_AI_ENCRYPTION_KEY: 32 bytes aleatórios, em base64. Crie uma comopenssl rand -base64 32. - Caso contrário, o arquivo
ai-encryption.keyna raiz do diretório de dados do servidor (FileSettings.Directory,./data/por padrão). O servidor o cria, legível apenas por ele, na primeira vez que uma conexão precisa dele. Aplicativos, exportações e arquivos de compactação não conseguem lê-lo.
Quando definir a variável:
- Com o arquivo compose do site. O
compose.yamlpassaAM_AI_ENCRYPTION_KEYa partir do.enve mantém o arquivo de chave no volumedataquando a variável está vazia. Definir a variável é melhor: o backup do.enventão contém a chave, separada do banco de dados. Adicione-a ao.enve executedocker compose up -d:
Se o servidor já criou seu arquivo de chave, coloque a chave que ele contém noecho "AM_AI_ENCRYPTION_KEY=$(openssl rand -base64 32)" >> .env.envem vez disso, para que as chaves salvas permaneçam legíveis:docker compose exec antimatter cat /antimatter/data/ai-encryption.keya exibe. - Um cluster cujos arquivos estão no S3. Seus servidores não compartilham um diretório, então o servidor não cria o arquivo: defina a mesma variável em todos os servidores. Até que seja definida, as conexões não podem salvar chaves.
- Com o arquivo de liberação ou os pacotes, o arquivo está em
data/(/var/lib/antimatter/datapara os pacotes). Você pode mantê-lo lá ou definir a variável no seu arquivo de ambiente.
Para alterar a chave, defina a nova em AM_AI_ENCRYPTION_KEY e a antiga em AM_AI_ENCRYPTION_PREVIOUS_KEYS (várias chaves separadas por vírgulas): as chaves salvas com a antiga ainda podem ser lidas. A chave de uma conexão é criptografada com a nova chave quando você a digita novamente. Mantenha a chave antiga na lista até que a chave de cada conexão tenha sido digitada novamente.
Os recursos integrados
Em Console do Sistema › IA › Recursos integrados, selecione para cada recurso uma conexão global do servidor e seu modelo, ou Desligado. Um recurso sem conexão não usa IA. Carregar modelos lista todos os modelos da conexão; por padrão, cada recurso usa o modelo de chat da conexão.
| Recurso | Configuração | O que mais é necessário |
|---|---|---|
| Reescrever no compositor: o menu de IA da caixa de mensagem (melhorar, encurtar, corrigir, traduzir) | AISettings.Rewrite | Nada: o menu aparece assim que uma conexão é selecionada. |
| Resumos: resumos dos canais escolhidos pelas pessoas, sob demanda ou em um agendamento | AISettings.Recaps | Ativar resumos de IA em Console do Sistema › Configuração do Site › Resumos (ativado por padrão), o que também define quantos resumos as pessoas podem criar. |
| Tradução automática | AISettings.AutoTranslation | O provedor de tradução Conexão de modelo (recomendado), em Tradução automática. |
| Texto para Fala | AISettings.TextToSpeech | Ler mensagens em voz alta ativado, em Texto para Fala. O endpoint /audio/speech da conexão substitui o endereço e a chave definidos lá. |
Cada configuração tem uma chave ConnectionId e uma chave Model, por exemplo AISettings.Rewrite.ConnectionId (AM_AISETTINGS_REWRITE_CONNECTIONID). Um Model vazio usa o modelo padrão da conexão.
Os recursos integrados usam os limites da conexão, mas não seu público: qualquer pessoa que possa usar o recurso pode usar sua conexão. Uma conexão que precisa de atenção, ou que foi excluída, faz o recurso falhar até que você selecione outra: a página informa isso.
Agentes de IA
O aplicativo Agentes (id mattermost-ai) está ativado por padrão. A configuração dele requer duas etapas: adicione um serviço (uma conexão com um provedor de modelos) e, em seguida, crie agentes (bots que usam um serviço).

1. Adicionar um serviço
Vá para Console do Sistema › Plugins › Agentes e, em Serviços de IA, clique em Adicionar um Serviço de IA. Escolha o Tipo de serviço:
- Compatível com OpenAI: para um servidor de modelos que você executa por conta própria, ou qualquer provedor com uma API no estilo OpenAI. Preencha URL da API (por exemplo,
http://ollama:11434/v1ouhttp://vllm.internal:8000/v1) e Chave de API apenas se o servidor exigir uma. Se o servidor só suporta a API de Completions de Chat, desative Usar API de Respostas. - OpenAI, Anthropic, Google Gemini, Google Vertex AI, AWS Bedrock, Azure, Cohere, Mistral: provedores hospedados. Cada um exige sua Chave de API (Bedrock: uma região da AWS e credenciais ou uma função IAM; Vertex AI: um projeto, uma região e uma conta de serviço; Azure: também a URL da API).
Em seguida, defina o Modelo padrão (uma lista quando o provedor puder informar seus modelos, caso contrário, digite o nome) e, se o provedor não os informar, o Limite de tokens de entrada e o Limite de tokens de saída. Um Serviço de reserva pode assumir quando este falhar. Salve.
O servidor faz essas solicitações por conta própria, portanto, ele deve ter acesso à API: um servidor de modelos no mesmo projeto compose, na sua rede ou na Internet. As solicitações de saída respeitam as variáveis HTTP_PROXY e HTTPS_PROXY.
2. Criar agentes
Os agentes são criados na página Agentes do aplicativo web: abra-a com Gerenciar no seletor de agentes do painel de Agentes (na interface clássica, também pelo menu do produto). Seu endereço é https://chat.example.com/plug/mattermost-ai/agents. Cada agente tem um Nome de Exibição, um Nome de Usuário do Agente (como as pessoas fazem menção a ele), um Serviço e, opcionalmente, um modelo, Instruções Personalizadas e alternadores para Ativar Visão (imagens) e Ativar Ferramentas. A aba Acesso limita em quais canais ele pode ser usado e quais usuários podem usá-lo. Em Funções de IA no Console do Sistema, Bot padrão escolhe o agente usado quando nenhum é selecionado, por exemplo, para resumos de chamadas.
Recursos opcionais do aplicativo Agentes
- Busca de incorporação (experimental, desativado): busca semântica em mensagens. Requer PostgreSQL com a extensão pgvector e um modelo de incorporação (OpenAI ou compatível com OpenAI). Ele envia toda mensagem para o modelo de incorporação, incluindo canais privados e mensagens diretas.
- Busca na web (desativado): permite que os agentes pesquisem na web por meio do Google, Brave ou de um servidor SearXNG que você executa.
- Ferramentas nativas: com provedores que as oferecem, os agentes podem usar a própria busca na web do provedor (ativada por padrão para novos agentes, onde suportado), busca na web e execução de código. Eles são executados no provedor. Desative-os por agente.
- Protocolo de Contexto de Modelo (MCP): conecte agentes a servidores MCP nos quais você confia, para ferramentas adicionais.
- Debug: Saída de rastreamento (desativado, logs do servidor ou um endpoint OpenTelemetry) e Ativar registro de uso de tokens, que grava as contagens de tokens em
logs/agents/token_usage.log.
Conversão de fala em texto: transcrições e legendas de chamadas
As chamadas podem ser transcritas, com legendas ao vivo, por um servidor de reconhecimento de fala que oferece um endpoint /v1/audio/transcriptions compatível com a OpenAI. A configuração está em Chamadas e voz. Com Resumir transcrições ativado, o agente padrão também publica um resumo de cada transcrição.
Texto para fala: ler em voz alta
Com o texto para fala ativado, o menu de cada mensagem tem Ler em voz alta: o servidor envia o texto da mensagem para uma API de texto para fala e reproduz o áudio. As configurações estão em Console do Sistema › Integrações › Texto para Fala:
| Configuração | Chave e variável | O que inserir |
|---|---|---|
| Ler mensagens em voz alta | TextToSpeechSettings.Enable, AM_TEXTTOSPEECHSETTINGS_ENABLE | true (desativado por padrão) |
| URL base da API | TextToSpeechSettings.URL, AM_TEXTTOSPEECHSETTINGS_URL | A URL base até e incluindo /v1, por exemplo http://tts.internal:8000/v1. O servidor chama seu endpoint /audio/speech. |
| Modelo | TextToSpeechSettings.Model, AM_TEXTTOSPEECHSETTINGS_MODEL | O modelo como a API o nomeia, por exemplo tts-1. Obrigatório. |
| Voz | TextToSpeechSettings.Voice, AM_TEXTTOSPEECHSETTINGS_VOICE | Uma das vozes do modelo, ou vazio para usar a padrão. |
| Chave de API | TextToSpeechSettings.APIKey, AM_TEXTTOSPEECHSETTINGS_APIKEY | Enviado como token de bearer. Vazio se a API não exigir. |
Para usar uma conexão de modelo em vez do endereço e da chave acima, selecione-a para Texto para Fala em IA › Recursos integrados. A página então indica que as mensagens são lidas em voz alta com essa conexão: URL base da API e Chave de API não são usadas, Voz ainda é, assim como Modelo quando a conexão não especifica um modelo. Ler mensagens em voz alta ainda deve estar ativado.
Antes de enviar, o servidor remove blocos de código, links, códigos de emoji e formatação, mantendo no máximo 4000 caracteres. Ele solicita áudio em MP3 e mantém os últimos 64 resultados em memória, de modo que uma mensagem lida duas vezes só é enviada uma vez.
Tradução automática
A tradução automática exibe as mensagens de um canal no idioma de cada leitor. Configure-a em Console do Sistema › Configuração do Site › Regionalização, em Tradução automática:
| Configuração | Chave | Padrão |
|---|---|---|
| Ativar | AutoTranslationSettings.Enable | desativado |
| Provedor de tradução | AutoTranslationSettings.Provider | connection (exibido como "Conexão de modelo (recomendado)", o selecionado quando nenhum é definido), libretranslate, openai ("API compatível com OpenAI, configurada aqui") ou agents ("Serviço do aplicativo de chat de IA (mais antigo)") |
| Idiomas permitidos | AutoTranslationSettings.TargetLanguages | en: os idiomas para os quais as mensagens podem ser traduzidas |
| Tempo limite de tradução (ms) | AutoTranslationSettings.TimeoutMs | 5000 |
| Restringir tradução automática em mensagens diretas e de grupo | AutoTranslationSettings.RestrictDMAndGM | desativado |
Cada provedor tem seus próprios campos:
- Conexão de modelo: uma conexão de nível de servidor e seu modelo, a mesma configuração que Tradução automática em IA › Recursos integrados (
AISettings.AutoTranslation). Um modelo de tradução dedicado é rápido e preciso; um LLM geral também funciona. - LibreTranslate: Endpoint de API do LibreTranslate e Chave de API do LibreTranslate (
AutoTranslationSettings.LibreTranslate.URL,.APIKey). Um servidor LibreTranslate pode ser executado na sua própria rede. - API compatível com OpenAI: URL base da API (até e incluindo
/v1; o servidor usa seu endpoint de conclusões de chat), Modelo e Chave de API (AutoTranslationSettings.OpenAI.URL,.Model,.APIKey). Um pequeno modelo de tradução executado localmente funciona bem. - Serviço do aplicativo de chat de IA (mais antigo): o provedor de servidores configurados antes da versão 0.9.0, que usava um serviço do aplicativo Agentes. Ele não precisa mais do aplicativo: traduz com a conexão selecionada para tradução automática em IA › Recursos integrados, ou com a conexão copiada do serviço do aplicativo na atualização. Mudar para Conexão de modelo move a configuração para o provedor recomendado.
Quando ativado, os administradores do canal ativam a tradução para um canal em suas configurações (Tradução automática), e cada membro pode desativá-la pelo menu do canal (Traduzir mensagens). Em mensagens diretas e de grupo, qualquer membro pode ativá-la; com a restrição ativada, a tradução não está disponível nesses contextos. As mensagens traduzidas exibem “Traduzido de …” com um link para a mensagem original.
Código, links, menções e emojis são substituídos por marcadores antes do envio do texto e restaurados em seguida.
Para onde cada dado é enviado
| Recurso | O que é enviado | Destino |
|---|---|---|
| Reescrever | A mensagem sendo escrita e a instrução selecionada | A conexão selecionada para ela |
| Resumos | As mensagens dos canais no resumo e as instruções da pessoa | A conexão selecionada para ela |
| Aplicativos que usam conexões de modelo | O que cada aplicativo envia, para a pessoa que o usa | As conexões que a pessoa pode usar |
| Agentes | A solicitação, as mensagens do tópico ou canal em questão, as instruções do agente, os resultados das ferramentas, as imagens (quando a visão está ativada) e o nome, o nome de usuário, o cargo e o idioma do usuário que fez a solicitação | A API do serviço |
| Pesquisa por incorporação (embedding) | Todas as mensagens (exceto as de bots e do sistema) | A API de incorporação (embedding) |
| Ferramentas nativas e pesquisa na web | Consultas de pesquisa, páginas a serem obtidas, código | O provedor ou o mecanismo de pesquisa escolhido |
| Transcrição de chamadas | A voz de todos que falam enquanto a transcrição está ativada | A API de conversão de fala em texto |
| Leitura em voz alta | O texto da mensagem sendo lida | A API de texto para fala, ou a conexão selecionada para ela |
| Tradução | O texto das mensagens nos canais com tradução ativada | A conexão de modelo, LibreTranslate ou a API compatível com OpenAI |
Para manter tudo dentro da sua rede, aponte cada recurso para servidores que você mesmo administra. Ao usar um provedor em nuvem, verifique os termos de retenção de dados e informe aos usuários quais recursos enviam suas mensagens para fora.
Desativando a IA
Não há um único controle geral: cada recurso possui o seu próprio.
- Reescrita e resumos: defina-os como Desligado em Console do Sistema › IA › Recursos integrados. As pessoas continuam lendo os resumos que já possuem.
- Conexões de modelos: exclua uma conexão para interromper todo o seu uso. Sem nenhuma conexão, nem os recursos integrados nem os aplicativos podem usar IA por meio do servidor.
- Agentes: desative o aplicativo Agentes em Console do Sistema › Plugins › Gerenciamento de Plugin. Isso também remove os resumos de chamadas.
- Transcrição e legendas:
AM_CALLS_ENABLE_TRANSCRIPTIONS=falseeAM_CALLS_ENABLE_LIVE_CAPTIONS=false(valores padrão). - Ler em voz alta: desative Ler mensagens em voz alta (
AM_TEXTTOSPEECHSETTINGS_ENABLE=false, o padrão), independentemente de usar uma conexão. - Tradução: desative a tradução automática (
AM_AUTOTRANSLATIONSETTINGS_ENABLE=false, valor padrão).
Desativar o aplicativo Agentes não desliga os outros recursos: eles usam conexões de modelos ou suas próprias APIs.