AI
De AI-functies van Antimatter gebruiken modellen naar keuze: een cloudprovider of een server op uw eigen netwerk. Er wordt niets ergens naartoe gestuurd totdat u een model configureert. Deze pagina behandelt modelverbindingen, elke functie, de gegevens die deze verstuurt en hoe u deze kunt uitschakelen.
De AI-functies
| Functie | Geconfigureerd in | Type model | Standaard ingeschakeld |
|---|---|---|---|
| Herschrijven in de invoerbalk: verbeter, verkort, corrigeer of vertaal een bericht voordat u het verstuurt | AI › Ingebouwde functies, met een modelverbinding | Een chatmodel (LLM) | nee |
| Samenvattingen: overzichten van de kanalen die gebruikers kiezen | AI › Ingebouwde functies, met een modelverbinding | Een chatmodel (LLM) | nee |
| Automatische vertaling van kanalen | Site Configuratie › Lokalisatie | Een modelverbinding, LibreTranslate of een OpenAI-compatibele API | nee |
| Voorlezen | Integraties › Tekst naar spraak, optioneel met een modelverbinding | Text-to-speech, OpenAI-compatibel | nee |
| AI-agents: chatten met een bot, samenvattingen van draadjes, samenvattingen van gesprekken | De app Agents | Elke large language model (LLM)-service | De app is ingeschakeld, maar doet niets totdat u een service toevoegt |
| Transcripties en live ondertiteling van gesprekken | De app Gesprekken | Speech-to-text, OpenAI-compatibel | nee |
“OpenAI-compatibel” betekent een server die dezelfde HTTP-API aanbiedt als OpenAI. De meeste modelserver die u zelf kunt draaien, doen dit (bijvoorbeeld Ollama, vLLM, de server van llama.cpp, of Whisper- en tekst-naar-spraakserver), net als veel cloudproviders en gateways zoals LiteLLM of OpenRouter. Voor geen van deze functies is een licentie vereist.
De ingebouwde functies (herschrijven, samenvattingen, vertaling en voorlezen) hebben de Agents-app niet nodig: ze gebruiken de modelverbindingen die u toevoegt in de Systeemconsole.
Modelverbindingen
Een modelverbinding is een AI-provider die Antimatter kan aanroepen: het adres, de sleutel en de modellen. U voegt deze een keer toe en kiest hem vervolgens voor elke functie die hem moet gebruiken. Er zijn twee soorten:
- Serverbrede verbindingen, beheerd door systeembeheerders in Systeemconsole › AI › Modelverbindingen. Alleen zij kunnen de ingebouwde functies bedienen. Apps kunnen ze ook gebruiken, voor de personen die daarvoor gemachtigd zijn.
- Communityverbindingen, die beheerders van een community toevoegen voor hun eigen community in de instellingen van de community (zie hieronder). Apps gebruiken ze voor de personen van de community. Ze bedienen nooit de ingebouwde functies.
Het AI-gedeelte van de Systeemconsole is zichtbaar voor de personen die de serverbrede verbindingen mogen beheren: standaard de systeembeheerders. De pagina Modelverbindingen toont de serverbrede verbindingen en die van elke community.
Een verbinding toevoegen
Klik in Systeemconsole › AI › Modelverbindingen op Een verbinding toevoegen en vul het formulier in:
| Veld | Wat er in moet |
|---|---|
| Voorinstellingen | Vult de provider en het adres van een bekende service in: OpenAI, Mistral, Gemini, OpenRouter, of Ollama en LiteLLM op de server zelf. Optioneel. |
| Naam | De naam die beheerders zien wanneer ze deze kiezen, bijvoorbeeld "OpenAI van het bedrijf". |
| Provider | OpenAI-compatibel (de meeste providers, gateways en modelserver die u zelf draait) of Anthropic. Cloudservices met hun eigen aanmelding, zoals AWS Bedrock, Google Vertex AI of Azure met Entra ID, gaan via hun OpenAI-compatibele eindpunt of een gateway zoals LiteLLM. |
| Basis-URL | Het adres van de API, tot en met /v1, bijvoorbeeld http://ollama:11434/v1. Als dit leeg blijft, is het dat van de provider zelf (https://api.openai.com/v1 of https://api.anthropic.com/v1). |
| API-sleutel | De sleutel van de provider. Laat dit leeg als het eindpunt er geen nodig heeft. Deze wordt versleuteld opgeslagen en nooit weer getoond: het formulier toont alleen de laatste vier tekens en biedt aan deze te behouden, te vervangen of te verwijderen. |
| Extra headers | Headers die met elke verzoek worden verzonden, voor een gateway die ze nodig heeft. Hun waarden worden versleuteld opgeslagen zoals de sleutel en nooit weer getoond: om ze te wijzigen, typt u ze opnieuw in. |
| Modellen | Het model dat voor elke functie wordt gebruikt wanneer een functie of app er geen naam voor geeft: Chat, Embeddings, Transcriptie en Beslissingen. Modellen laden toont de modellen die het eindpunt aanbiedt. Laat een functie leeg als het eindpunt deze niet aanbiedt. Anthropic-verbindingen kunnen alleen chatten. |
| Beslissingen-API | Hoe het beslissingsmodel wordt aangeroepen: OpenAI beslissingen of SystemOne. Relevant alleen voor apps die beslissingen vragen. |
| Beperkingen | Zie Beperkingen en budgetten. |
| Communities | Alleen serverbrede verbindingen. Alle communities: beschikbaar in elke community en in privé- en groepsberichten. Anders alleen in de communities die u kiest. |
| Wie het mag gebruiken | Iedereen waar het beschikbaar is, of alleen de teams (groepen mensen binnen een community) en rollen die u kiest (Systeembeheerders, Communitybeheerders). Gasten ook laat gasten het gebruiken; zonder dit kunnen gasten het niet, zelfs niet met Iedereen. |
Verbinding testen controleert het adres en de sleutel: de server vraagt het eindpunt om zijn modellen, of stuurt een chat met één token. Een gewijzigd adres wordt alleen getest met de opgeslagen sleutel nadat u opslaat, of als u de sleutel opnieuw intypt. Klik op Verbinding toevoegen om op te slaan.
De server voert de verzoeken zelf uit, dus hij moet de API kunnen bereiken: een modelserver in hetzelfde compose-project, op uw netwerk of op het internet. Uitgaande verzoeken respecteren de variabelen HTTP_PROXY en HTTPS_PROXY.
Wanneer u een verbinding verwijdert, wordt de bijbehorende sleutels vergeten. De functies die deze verbinding gebruikten, stoppen met AI te gebruiken totdat u een andere verbinding kiest.
Limieten en budgetten
Elke verbinding heeft vier limieten. Een leeg veld of 0 betekent geen limiet.
- Verzoeken per minuut en Per persoon, verzoeken per minuut. Deze worden door elke server afzonderlijk geteld: een cluster van drie servers laat tot drie keer de limiet door.
- Tokens per maand en Per persoon, tokens per maand: tokenbudgetten per kalendermaand (UTC), geteld in de database voor het hele cluster. Meerdere verzoeken die tegelijkertijd worden uitgevoerd, kunnen licht boven een budget uitkomen.
De limieten per persoon gelden ook voor het herschrijven en voor samenvattingen: ze tellen mee voor de persoon die herschrijft of de eigenaar van de samenvatting.
Gebruik
De lijst toont het gebruik van elke verbinding deze maand. Gebruik opent de details: tokens in en uit, verzoeken, het maandbudget, gebruik per dag (UTC) en per doeleinde (Herschrijven, Samenvattingen, Automatische vertaling, Tekst naar spraak, Personen, via apps of een app).
Elke aanroep die een persoon of een app via een verbinding doet, schrijft ook een auditlog: wie, de verbinding, het doeleinde, het model, de tokenaantallen en of het geslaagd is, nooit wat er gezegd is. De ingebouwde functies tellen alleen mee in het gebruik: vertaling alleen doet één aanroep per bericht en taal.
Community-verbindingen
Communitybeheerders voegen de eigen verbindingen van hun community toe in de instellingen van de community, in het tabblad Modelverbindingen. Het formulier is hetzelfde, zonder Communities: de verbinding van een community werkt alleen in de eigen kanalen, voor de eigen leden, en het publiek kan alleen de eigen teams noemen. Rollen met de machtiging Modelverbindingen beheren kunnen ze ook beheren. Standaard hebben communitybeheerders deze machtiging.
De verbinding van een community kan geen privé- of loopback-adressen bereiken (bijvoorbeeld een Ollama-server op uw netwerk), tenzij Systeemconsole › Omgeving › Ontwikkelaar › Niet-vertrouwde interne verbindingen toestaan naar (ServiceSettings.AllowedUntrustedInternalConnections) ze vermeldt. Serverbrede verbindingen kunnen dit wel.
Zie Community-instellingen voor het perspectief van de communitybeheerders.
De versleutelingsleutel
De sleutels en extra headers van modelverbindingen zijn in de database versleuteld (AES-256-GCM) met één versleutelingssleutel. Een back-up van alleen de database onthult ze niet. De server zoekt de sleutel in deze volgorde:
- De
AM_AI_ENCRYPTION_KEY-variabele: 32 willekeurige bytes, in base64. Maak er een metopenssl rand -base64 32. - Anders het bestand
ai-encryption.keyin de root van de datamap van de server (FileSettings.Directory, standaard./data/). De server maakt dit bestand de eerste keer dat een verbinding het nodig heeft, alleen leesbaar door zichzelf. Apps, exports en archieven van bestanden kunnen het niet lezen.
Wanneer de variabele instellen:
- Met het compose-bestand van de site.
compose.yamlgeeftAM_AI_ENCRYPTION_KEYdoor vanuit.enven bewaart het sleutelbestand in dedata-volume als de variabele leeg is. Het is beter om de variabele in te stellen: de back-up van.envbevat dan de sleutel, gescheiden van de database. Voeg het toe aan.enven voerdocker compose up -duit:
Als de server al een sleutelbestand heeft aangemaakt, zet dan in plaats daarvan de sleutel die het bevat inecho "AM_AI_ENCRYPTION_KEY=$(openssl rand -base64 32)" >> .env.env, zodat de opgeslagen sleutels leesbaar blijven:docker compose exec antimatter cat /antimatter/data/ai-encryption.keytoont deze. - Een cluster waarvan de bestanden in S3 staan. De servers delen geen map, dus de server maakt het bestand niet aan: stel dezelfde variabele in op elke server. Totdat dit is ingesteld, kunnen verbindingen geen sleutels opslaan.
- Bij het releasearchief of de pakketten staat het bestand in
data/(/var/lib/antimatter/datavoor de pakketten). U kunt het daar laten staan, of de variabele instellen in uw omgevingsbestand.
Om de sleutel te wijzigen, stelt u de nieuwe in in AM_AI_ENCRYPTION_KEY en de oude in AM_AI_ENCRYPTION_PREVIOUS_KEYS (meerdere sleutels gescheiden door komma's): de met de oude sleutel opgeslagen sleutels kunnen nog steeds worden gelezen. De sleutel van een verbinding wordt versleuteld met de nieuwe sleutel wanneer u deze opnieuw invoert. Houd de oude sleutel in de lijst totdat de sleutel van elke verbinding opnieuw is ingevoerd.
De ingebouwde functionaliteiten
In Systeemconsole › AI › Ingebouwde functies kiest u voor elke functie een serverbrede verbinding en het bijbehorende model, of Uit. Een functie zonder verbinding gebruikt geen AI. Modellen laden toont alle modellen van de verbinding; standaard gebruikt elke functie het chatmodel van de verbinding.
| Functie | Instelling | Wat er verder voor nodig is |
|---|---|---|
| Herschrijven in de invoer: het AI-menu van het berichtvak (verbeteren, verkorten, corrigeren, vertalen) | AISettings.Rewrite | Niets: het menu verschijnt zodra er een verbinding is gekozen. |
| Samenvattingen: samenvattingen van de kanalen die mensen kiezen, op verzoek of volgens een planning | AISettings.Recaps | AI-samenvattingen inschakelen in Systeemconsole › Site Configuratie › Samenvattingen (standaard ingeschakeld), waarmee ook wordt ingesteld hoeveel samenvattingen mensen mogen maken. |
| Automatische vertaling | AISettings.AutoTranslation | De vertaalprovider Modelverbinding (aanbevolen), in Automatische vertaling. |
| Tekst naar spraak | AISettings.TextToSpeech | Berichten hardop voorlezen inschakelen, in Tekst naar spraak. Het /audio/speech-endpoint van de verbinding vervangt het adres en de sleutel die daar zijn ingesteld. |
Elke instelling heeft een ConnectionId- en een Model-sleutel, bijvoorbeeld AISettings.Rewrite.ConnectionId (AM_AISETTINGS_REWRITE_CONNECTIONID). Een leeg Model gebruikt het standaardmodel van de verbinding.
De ingebouwde functies gebruiken de limieten van de verbinding, maar niet het publiek: iedereen die de functie kan gebruiken, kan de verbinding gebruiken. Een verbinding die aandacht vereist of is verwijderd, zorgt ervoor dat de functie faalt totdat u een andere kiest: de pagina geeft dit aan.
AI-agents
De app Agents (id mattermost-ai) is standaard ingeschakeld. Het instellen vereist twee stappen: voeg een service toe (een verbinding met een modelprovider) en maak vervolgens agents (bots die een service gebruiken).

1. Een service toevoegen
Ga naar Systeemconsole › Plugins › Agents en klik onder AI-services op Een AI-service toevoegen. Kies het Type service:
- OpenAI-compatibel: voor een modelserver die u zelf draait, of voor elke provider met een OpenAI-stijl API. Vul de API-URL in (bijvoorbeeld
http://ollama:11434/v1ofhttp://vllm.internal:8000/v1) en de API-sleutel alleen als de server er een vereist. Als de server alleen de Chat Completions-API ondersteunt, schakel dan Responses API gebruiken uit. - OpenAI, Anthropic, Google Gemini, Google Vertex AI, AWS Bedrock, Azure, Cohere, Mistral: gehoste providers. Elke vereist een API-sleutel (Bedrock: een AWS-regio en referenties of een IAM-role; Vertex AI: een project, regio en service account; Azure: ook de API-URL).
Stel daarna het Standaardmodel in (een lijst als de provider zijn modellen kan rapporteren, anders typ de naam in) en, als de provider ze niet rapporteert, de Tokenlimiet invoer en de Tokenlimiet uitvoer. Een Reserve-service kan overnemen als deze faalt. Sla op.
De server voert deze verzoeken zelf uit, dus hij moet de API kunnen bereiken: een modelserver in hetzelfde compose-project, op uw netwerk of op het internet. Uitgaande verzoeken respecteren de variabelen HTTP_PROXY en HTTPS_PROXY.
2. Agents aanmaken
Agents worden aangemaakt op de pagina Agents van de webapp: open deze met Beheren in de agentkeuze van het Agents-paneel (in de klassieke interface ook via het productmenu). Het adres is https://chat.example.com/plug/mattermost-ai/agents. Elke agent heeft een Weergavenaam, een Agent Username (zoals mensen deze vermelden), een Service en optioneel een model, Custom Instructions en schakelaars voor Enable Vision (afbeeldingen) en Enable Tools. Het tabblad Toegang beperkt in welke kanalen de agent kan worden gebruikt en welke gebruikers hem mogen gebruiken. Onder AI Functions in de Systeemconsole bepaalt Default bot welke agent wordt gebruikt wanneer er geen is gekozen, bijvoorbeeld voor samenvattingen van gesprekken.
Optionele functies van de Agents-app
- Embedding-zoeken (experimenteel, uit): semantisch zoeken door berichten. Dit vereist PostgreSQL met de pgvector-extensie en een embeddingmodel (OpenAI of OpenAI-compatibel). Het stuurt elk bericht naar het embeddingmodel, inclusief privé-kanalen en privéberichten.
- Webzoeken (uit): stelt agents in staat het web te doorzoeken via Google, Brave of een SearXNG-server die u draait.
- Inheemse hulpmiddelen: bij providers die ze aanbieden, kunnen agents de eigen webzoeken van de provider gebruiken (standaard ingeschakeld voor nieuwe agents, indien ondersteund), webfetch en code-uitvoering. Deze worden uitgevoerd door de provider. Schakel ze per agent uit.
- Model Context Protocol (MCP): verbind agents met MCP-servers die u vertrouwt, voor extra hulpmiddelen.
- Debug: Trace-uitvoer (uit, serverlogboeken of een OpenTelemetry-eindpunt) en Tokengebruik-logboek inschakelen, dat tokencijfers schrijft naar
logs/agents/token_usage.log.
Spraak-naar-tekst: transcripties en ondertiteling van gesprekken
Gesprekken kunnen worden getranscribeerd, met live ondertiteling, door een spraak-naar-tekstserver die een OpenAI-compatibele /v1/audio/transcriptions-endpoint aanbiedt. De configuratie staat in Gesprekken en spraak. Als Transcripties samenvatten is ingeschakeld, postt de standaardagent ook een samenvatting van elk transcript.
Tekst naar spraak: voorlezen
Als tekst naar spraak is ingeschakeld, heeft het menu van elk bericht Voorlezen: de server stuurt de tekst van het bericht naar een tekst-naar-spraak-API en speelt de audio af. De instellingen staan in Systeemconsole › Integraties › Tekst naar spraak:
| Instelling | Sleutel en variabele | Wat er in moet |
|---|---|---|
| Berichten hardop voorlezen | TextToSpeechSettings.Enable, AM_TEXTTOSPEECHSETTINGS_ENABLE | true (standaard uitgeschakeld) |
| API-basis-URL | TextToSpeechSettings.URL, AM_TEXTTOSPEECHSETTINGS_URL | De basis-URL tot en met /v1, bijvoorbeeld http://tts.internal:8000/v1. De server roept de /audio/speech-endpoint aan. |
| Model | TextToSpeechSettings.Model, AM_TEXTTOSPEECHSETTINGS_MODEL | Het model zoals de API het noemt, bijvoorbeeld tts-1. Verplicht. |
| Stem | TextToSpeechSettings.Voice, AM_TEXTTOSPEECHSETTINGS_VOICE | Een van de stemmen van het model, of leeg voor de standaardstem. |
| API-sleutel | TextToSpeechSettings.APIKey, AM_TEXTTOSPEECHSETTINGS_APIKEY | Wordt verzonden als bearer-token. Leeg als de API er geen nodig heeft. |
Om een modelverbinding te gebruiken in plaats van het adres en de sleutel hierboven, kiest u deze voor Tekst naar spraak in AI › Ingebouwde functies. De pagina geeft dan aan dat berichten met die verbinding hardop worden voorgelezen: API-basis-URL en API-sleutel worden niet gebruikt, Stem wél, en ook Model wanneer de verbinding geen model noemt. Berichten hardop voorlezen moet nog steeds ingeschakeld zijn.
Voor verzending verwijdert de server codeblokken, links, emoji-codes en opmaak, en behoudt maximaal 4000 tekens. Het vraagt om MP3-audio en bewaart de laatste 64 resultaten in het geheugen, zodat een bericht dat twee keer wordt voorgelezen maar één keer wordt verzonden.
Automatische vertaling
Automatische vertaling toont de berichten van een kanaal in de eigen taal van elke lezer. Configureer dit in Systeemconsole › Site Configuratie › Lokalisatie, onder Automatische vertaling:
| Instelling | Sleutel | Standaardwaarde |
|---|---|---|
| Inschakelen | AutoTranslationSettings.Enable | Uit |
| Vertaalprovider | AutoTranslationSettings.Provider | connection (weergegeven als "Model connection (recommended)", de optie die wordt gekozen wanneer er niets is ingesteld), libretranslate, openai ("OpenAI-compatible API, set up here") of agents ("AI chat app's service (older)") |
| Toegestane talen | AutoTranslationSettings.TargetLanguages | en: de talen waarnaar berichten kunnen worden vertaald |
| Time-out vertaling (ms) | AutoTranslationSettings.TimeoutMs | 5000 |
| Automatische vertaling beperken voor privéberichten en groepsberichten | AutoTranslationSettings.RestrictDMAndGM | Uit |
Elke provider heeft zijn eigen velden:
- Model connection: een serverbrede verbinding en het bijbehorende model, dezelfde instelling als Automatische vertaling in AI › Ingebouwde functies (
AISettings.AutoTranslation). Een dedicated vertaalmodel is snel en nauwkeurig; een algemeen LLM werkt ook. - LibreTranslate: LibreTranslate API Endpoint en LibreTranslate API-sleutel (
AutoTranslationSettings.LibreTranslate.URL,.APIKey). Een LibreTranslate-server kan op uw eigen netwerk draaien. - OpenAI-compatibele API: API-basis-URL (tot en met
/v1; de server gebruikt de chat completions-endpoint), Model en API-sleutel (AutoTranslationSettings.OpenAI.URL,.Model,.APIKey). Een klein vertaalmodel dat lokaal draait, werkt goed. - AI chat app's service (older): de provider van servers die vóór 0.9.0 zijn geïnstalleerd en een service van de Agents-app gebruikten. Deze vereist de app niet meer: vertaling gebeurt met de verbinding die is gekozen voor automatische vertaling in AI › Ingebouwde functies, of anders met de verbinding die bij de upgrade is gekopieerd uit de service van de app. Switch to Model connection verplaatst de instelling naar de aanbevolen provider.
Wanneer deze functie is ingeschakeld, schakelen beheerders van een kanaal de vertaling in via de instellingen van het kanaal (Automatische vertaling). Elk lid kan zich uitschakelen via het kanaalmenu (Berichten vertalen). In privé- en groepsberichten kan elk lid de vertaling inschakelen; als de beperking is ingeschakeld, is vertaling daar niet beschikbaar. Vertaalde berichten tonen "Vertaald uit …" met een link naar het origineel.
Code, links, vermeldingen en emoji's worden door placeholders vervangen voordat de tekst wordt verzonden, en daarna weer hersteld.
Welke gegevens waar naartoe gaan
| Functie | Wat wordt verzonden | Naar |
|---|---|---|
| Herschrijf | Het bericht dat wordt geschreven en de gekozen instructie | De verbinding die hiervoor is gekozen |
| Overzichten | De berichten van de kanalen in de samenvatting en de instructies van de persoon | De verbinding die hiervoor is gekozen |
| Apps die modelverbindingen gebruiken | Wat elke app verstuurt, voor de persoon die deze gebruikt | De verbindingen die die persoon mag gebruiken |
| Agents | De aanvraag, de berichten van het draadje of kanaal waarnaar het zich richt, de instructies van de agent, toolresultaten, afbeeldingen wanneer visie is ingeschakeld, en de naam, gebruikersnaam, functie en taal van de gebruiker die de vraag stelt | De API van de service |
| Zoeken met embeddings | Elk bericht (behalve berichten van bots en systeemberichten) | De embedding-API |
| Ingebouwde tools en webzoeken | Zoekopdrachten, pagina's om op te halen, code | De provider, of de zoekmachine die u hebt gekozen |
| Transcriptie van gesprekken | De stem van iedereen die spreekt terwijl het is ingeschakeld | De speech-to-text-API |
| Voorlezen | De tekst van het bericht dat wordt voorgelezen | De tekst-naar-spraak-API of de verbinding die hiervoor is gekozen |
| Vertaling | De tekst van de berichten in vertaalde kanalen | De modelverbinding, LibreTranslate of de OpenAI-compatible API |
Om alles binnen uw netwerk te houden, wijst u elke functie naar servers die u zelf draait. Bij een cloudprovider controleert u de voorwaarden voor het bewaren van gegevens en informeert u uw gebruikers welke functies hun berichten naar buiten sturen.
AI uitschakelen
Er is geen enkele schakelaar: elke functie heeft er een eigen.
- Herschrijven en samenvattingen: zet deze op Uit in Systeemconsole › AI › Ingebouwde functies. Mensen lezen de samenvattingen die ze al hebben.
- Modelverbindingen: verwijder een verbinding om elk gebruik ervan te stoppen. Zonder verbinding kunnen noch de ingebouwde functies noch de apps AI via de server gebruiken.
- Agents: schakel de Agents-app uit in Systeem console › Plugins › Plugin Beheer. Hierdoor worden ook gespreksamenvattingen verwijderd.
- Transcriptie en ondertiteling:
AM_CALLS_ENABLE_TRANSCRIPTIONS=falseenAM_CALLS_ENABLE_LIVE_CAPTIONS=false(de standaardwaarden). - Voorlezen: Berichten hardop voorlezen uit (
AM_TEXTTOSPEECHSETTINGS_ENABLE=false, de standaardinstelling), ongeacht of er een verbinding voor wordt gebruikt. - Vertaling: automatische vertaling uitschakelen (
AM_AUTOTRANSLATIONSETTINGS_ENABLE=false, de standaardwaarde).
Het uitschakelen van de Agents-app schakelt de andere functies niet uit: die gebruiken modelverbindingen of hun eigen API's.