AI

Antimatters AI-funktioner använder modeller du väljer: en molnleverantör eller en server på ditt eget nätverk. Ingenting skickas någonstans förrän du har konfigurerat en modell. Denna sida behandlar modellanslutningar, varje funktion, de data den skickar och hur du stänger av den.

AI-funktionerna

FunktionKonfigureras iTyp av modellPå som standard
Omskrivning i meddelandefältet: förbättra, förkorta, rätta eller översätt ett meddelande innan du skickar detAI › Inbyggda funktioner, med en modellanslutningEn chattmodell (LLM)nej
Sammanfattningar: sammanfattningar av de kanaler användarna väljerAI › Inbyggda funktioner, med en modellanslutningEn chattmodell (LLM)nej
Automatisk översättning av kanalerSite-konfiguration › LokaliseringEn modellanslutning, LibreTranslate eller en OpenAI-kompatibel APInej
UppläsningIntegrationer › Text till tal, valfritt med en modellanslutningText-till-tal, OpenAI-kompatibelnej
AI-agenter: chatt med en bot, sammanfattningar av trådar, sammanfattningar av samtalAppen AgentsValfri tjänst för stora språkmodeller (LLM)Appen är på, men gör ingenting förrän du lägger till en tjänst
Transkriptioner och live-undertexter för samtalAppen CallsTal-till-text, OpenAI-kompatibelnej

”OpenAI-kompatibel” betyder en server som erbjuder samma HTTP-API som OpenAI. De flesta modellservrar du kan köra själv gör det (t.ex. Ollama, vLLM, llama.cpp:s server, eller Whisper- och text-till-tal-servrar), liksom många molnleverantörer och gatewayer som LiteLLM eller OpenRouter. Ingen licens krävs för någon av dessa funktioner.

De inbyggda funktionerna (omskrivning, sammanfattningar, översättning och uppläsning) kräver inte appen Agents: de använder modellanslutningarna du lägger till i Systemkonsolen.

Modellanslutningar

En modellanslutning är en AI-leverantör som Antimatter kan anropa: dess adress, dess nyckel och dess modeller. Du lägger till den en gång och väljer den sedan för varje funktion som ska använda den. Det finns två typer:

  • Serveromfattande anslutningar, hanterade av systemadministratörer i Systemkonsol › AI › Modellanslutningar. Endast de kan tillhandahålla de inbyggda funktionerna. Appar kan också använda dem, för de personer som är tillåtna.
  • Communityanslutningar, som en communitys administratörer lägger till för sin egen community i communityns inställningar (se nedan). Appar använder dem för communityns personer. De tillhandahåller aldrig de inbyggda funktionerna.

Avsnittet AI i Systemkonsolen visas för de personer som får hantera serveromfattande anslutningar: systemadministratörer, som standard. Sidan Modellanslutningar listar serveromfattande anslutningar och de för varje community.

Lägg till en anslutning

I Systemkonsol › AI › Modellanslutningar, klicka på Lägg till en anslutning och fyll i formuläret:

FältVad som ska anges
FörinställningarFyller i leverantör och adress för en välkänd tjänst: OpenAI, Mistral, Gemini, OpenRouter eller Ollama och LiteLLM på servern. Valfritt.
NamnNamnet som administratörer ser när de väljer den, till exempel "Företags OpenAI".
LeverantörOpenAI-kompatibel (de flesta leverantörer, gatewayer och modellserverar du kör själv) eller Anthropic. Molntjänster med egen inloggning, såsom AWS Bedrock, Google Vertex AI eller Azure med Entra ID, går via deras OpenAI-kompatibla endpoint eller en gateway som LiteLLM.
Bas-URLAPI:ets adress, inklusive /v1, till exempel http://ollama:11434/v1. Om det lämnas tomt används leverantörens egen (https://api.openai.com/v1 eller https://api.anthropic.com/v1).
API-nyckelLeverantörens nyckel. Lämna den tom om endpointen inte kräver någon. Den lagras krypterat och visas aldrig igen: formuläret visar endast de sista fyra tecknen och erbjuder att behålla, byta ut eller ta bort den.
Extra headersHeaders som skickas med varje begäran, för en gateway som kräver dem. Deras värden lagras krypterat som nyckeln och visas aldrig igen: för att ändra dem måste du skriva in dem alla på nytt.
ModellerModellen som används för varje funktion när en funktion eller en app inte anger en: Chatt, Embeddings, Transkription och Decisions. Ladda modeller listar modellerna som endpointen erbjuder. Lämna en funktion tom om endpointen inte erbjuder den. Anthropic-anslutningar kan bara chatta.
Decisions APIHur decisions-modellen anropas: OpenAI decisions eller SystemOne. Endast relevant för appar som begär decisions.
BegränsningarSe Begränsningar och budgetar.
GemenskaperEndast serveromfattande anslutningar. Alla gemenskaper: användbar i alla gemenskaper, samt i direkt- och gruppmeddelanden. Annars endast i de gemenskaper du väljer.
Vem får använda denAlla där den är användbar, eller endast de team (grupper av personer inom en gemenskap) och roller du väljer (Systemadministratörer, Gemenskapsadministratörer). Gäster också låter gäster använda den; utan det kan gäster inte, ens med Alla.

Testa anslutningen kontrollerar adressen och nyckeln: servern ber endpointen om dess modeller, eller skickar en chatt med ett token. En ändrad adress testas med den sparade nyckeln först efter att du har sparat, eller om du skriver in nyckeln igen. Klicka på Lägg till anslutning för att spara.

Servern gör begärandena själv, så den måste kunna nå API:t: en modellserver i samma compose-projekt, på ditt nätverk eller på Internet. Utgående begäranden respekterar variablerna HTTP_PROXY och HTTPS_PROXY.

När du tar bort en anslutning glöms dess nyckel bort. Funktionerna som använde den slutar använda AI tills du väljer en annan anslutning.

Gränser och budgetar

Varje anslutning har fyra gränser. Tomt eller 0 betyder ingen gräns.

  • Begäranden per minut och Per person, begäranden per minut. De räknas separat av varje server: en kluster med tre servrar släpper igenom upp till tre gånger så mycket.
  • Token per månad och Per person, token per månad: tokenbudgetar, per kalendermånad (UTC), räknade i databasen för hela klustret. Flera begäranden som körs samtidigt kan gå lite över en budget.

Gränserna per person gäller även för skriv om och sammanfattningar: de räknas mot den person som skriver om, eller som äger sammanfattningen.

Användning

Listan visar varje anslutnings användning i månad. Användning öppnar detaljerna: token in och ut, begäranden, den månatliga budgeten, användning per dag (UTC) och per användning (Skriv om, Sammanfattningar, Automatisk översättning, Text till tal, Personer, via appar, eller en app).

Varje anrop som en person eller en app gör via en anslutning skriver också en revisionspost: vem, anslutningen, användningen, modellen, tokenräkningen och om det lyckades, aldrig vad som sägdes. De inbyggda funktionerna räknas bara i användningen: översättning ensam gör ett anrop per meddelande och språk.

Gemenskapsanslutningar

Gemenskapsadministratörer lägger till sin gemenskaps egna anslutningar i gemenskapens inställningar, i fliken Modellanslutningar. Formuläret är detsamma, utan Gemenskaper: en gemenskaps anslutning fungerar bara i sina egna kanaler, för sina egna medlemmar, och dess publik kan bara nämna sina egna team. Roller med behörigheten Hantera modellanslutningar kan också hantera dem. Som standard har gemenskapsadministratörer det.

En gemenskaps anslutning kan inte nå privata eller loopback-adresser (en Ollama-server på ditt nätverk, till exempel), om inte Systemkonsol › Miljö › Utvecklare › Tillåt osäkra interna anslutningar till (ServiceSettings.AllowedUntrustedInternalConnections) listar dem. Serveromfattande anslutningar kan.

Se Gemenskapsinställningar för gemenskapsadministratörernas sida.

Krypteringsnyckeln

Nycklar och extra sidhuvuden för modellanslutningar krypteras i databasen (AES-256-GCM) med en krypteringsnyckel. En databassäkerhetskopia i sig avslöjar dem inte. Servern letar efter nyckeln i följande ordning:

  1. Variabeln AM_AI_ENCRYPTION_KEY: 32 slumpmässiga byte, i base64. Skapa en med openssl rand -base64 32.
  2. Annars filen ai-encryption.key i roten till serverns datamapp (FileSettings.Directory, ./data/ som standard). Servern skapar den, så att bara den själv kan läsa den, första gången en anslutning behöver den. Appar, exporteringar och filarkiv kan inte läsa den.
Utan nyckeln kan de sparade API-nycklarna inte läsas, och varje anslutning måste få sin nyckel igen. Säkerhetskopiera nyckeln tillsammans med databasen (se Säkerhetskopior och uppgraderingar) och förvara den åtskilt från databassäkerhets kopiorna.

När du ska ställa in variabeln:

  • I webbställens compose-fil. compose.yaml skickar AM_AI_ENCRYPTION_KEY från .env och behåller nyckelfilen i data-volymen när variabeln är tom. Det är bättre att ställa in variabeln: då innehåller säkerhetskopian av .env nyckeln, åtskilt från databasen. Lägg till den i .env och kör docker compose up -d:
    echo "AM_AI_ENCRYPTION_KEY=$(openssl rand -base64 32)" >> .env
    Om servern redan har skapat sin nyckelfil, ange den nyckel den innehåller i .env istället, så att de sparade nycklarna förblir läsbara: docker compose exec antimatter cat /antimatter/data/ai-encryption.key skriver ut den.
  • En kluster vars filer finns i S3. Dess delar delar ingen mapp, så servern skapar inte filen: ställ in samma variabel på varje server. Innan det är gjort kan anslutningar inte spara nycklar.
  • Med releasearkivet eller paketen finns filen i data/ (/var/lib/antimatter/data för paketen). Du kan behålla den där, eller ställa in variabeln i din miljöfil.

För att byta nyckel, ställ in den nya i AM_AI_ENCRYPTION_KEY och den gamla i AM_AI_ENCRYPTION_PREVIOUS_KEYS (flera nycklar separerade med kommatecken): nycklar som sparats med den gamla kan fortfarande läsas. En anslutnings nyckel krypteras med den nya nyckeln när du anger den igen. Behåll den gamla nyckeln i listan tills varje anslutnings nyckel har angetts igen.

De inbyggda funktionerna

I Systemkonsol › AI › Inbyggda funktioner väljer du för varje funktion en serverbrett anslutning och dess modell, eller Av. En funktion utan anslutning använder ingen AI. Ladda modeller visar alla modeller för anslutningen; som standard använder varje funktion anslutningens chattmodell.

FunktionInställningVad mer det kräver
Skriva om i meddelandefältet: AI-menyn i meddelandefältet (förbättra, förkorta, korrigera, översätt)AISettings.RewriteIngenting: menyn visas när en anslutning har valts.
Sammanfattningar: sammanfattningar av de kanaler som användarna väljer, antingen efter begäran eller enligt schemaAISettings.RecapsAktivera AI-sammanfattningar i Systemkonsol › Site-konfiguration › Sammanfattningar (aktiverad som standard), vilket även anger hur många sammanfattningar användarna kan skapa.
Automatisk översättningAISettings.AutoTranslationÖversättningsleverantören Modellanslutning (rekommenderas), i Automatisk översättning.
Text till talAISettings.TextToSpeechLäs meddelanden högt på, i Text till tal. Anslutningens /audio/speech-ändpunkt ersätter adressen och nyckeln som är angivna där.

Varje inställning har en ConnectionId- och en Model-nyckel, till exempel AISettings.Rewrite.ConnectionId (AM_AISETTINGS_REWRITE_CONNECTIONID). En tom Model använder anslutningens standardmodell.

De inbyggda funktionerna använder anslutningens begränsningar, men inte dess målgrupp: alla som kan använda funktionen kan använda dess anslutning. En anslutning som behöver uppmärksamhet, eller som har tagits bort, gör att funktionen misslyckas tills du väljer en annan: sidan anger detta.

AI-agenter

Appen Agents (id mattermost-ai) är på som standard. Att ställa in den kräver två steg: lägg till en tjänst (en anslutning till en modellleverantör) och skapa sedan agenter (bots som använder en tjänst).

The Agents panel on the right of a channel: a user asked about an incident and the agent answered with a summary of the related threads.
En agent som svarar i Agents-panelen.
Agent-appens agenter använder fortfarande appens egna AI Services, inte modellanslutningar. De inbyggda funktionerna går inte längre via appen. På en server som har uppgraderats till 0.9.0 kopierades appens tjänster också en gång till serverbredda modellanslutningar (se Uppgradering till 0.9.0).

1. Lägg till en tjänst

Gå till Systemkonsol › Plugin › Agenter och klicka, under AI-tjänster, på Lägg till en AI-tjänst. Välj Tjänsttyp:

  • OpenAI-kompatibel: för en modellserver som du själv kör, eller för en tjänsteleverantör med ett OpenAI-liknande API. Fyll i API-URL (till exempel http://ollama:11434/v1 eller http://vllm.internal:8000/v1) och API-nyckel endast om servern kräver en. Om servern endast stöder Chat Completions API, stäng av Använd Responses API.
  • OpenAI, Anthropic, Google Gemini, Google Vertex AI, AWS Bedrock, Azure, Cohere, Mistral: hystade tjänsteleverantörer. Var och en kräver sin API-nyckel (Bedrock: ett AWS-område och autentiseringsuppgifter eller en IAM-roll; Vertex AI: ett projekt, ett område och ett tjänstekonto; Azure: även API-URL:en).

Ange sedan Standardmodell (en lista om leverantören kan rapportera sina modeller, annars skriv namnet) samt, om leverantören inte rapporterar dem, Insättningsgräns för token och Utsättningsgräns för token. En Reservtjänst kan ta över när denna misslyckas. Spara.

Servern gör dessa anrop själv, så den måste kunna nå API:et: en modellserver i samma compose-projekt, på ditt nätverk eller på Internet. Utgående anrop respekterar variablerna HTTP_PROXY och HTTPS_PROXY.

2. Skapa agenter

Agenter skapas på sidan Agenter i webbappen: öppna den med Hantera i agentväljaren i panelen Agenter (i det klassiska gränssnittet även från produktmenyn). Dess adress är https://chat.example.com/plug/mattermost-ai/agents. Varje agent har ett Visningsnamn, ett Agentanvändarnamn (hur personer nämner den), en Tjänst och valfritt en modell, Anpassade instruktioner samt växlar för Aktivera vision (bilder) och Aktivera verktyg. Fliken Tillgång begränsar vilka kanaler den kan användas i och vilka användare som kan använda den. Under AI Functions i Systemkonsolen väljer Standardbot den agent som används när ingen är vald, till exempel för sammanfattningar av samtal.

Som standard kan varje användare skapa egna agenter med de tjänster du har konfigurerat. För att begränsa detta till administratörer, ta bort behörigheten Hantera egna AI-agenter från rollen för medlemmar i Systemkonsol › Hantera användare › Behörigheter.

Valfria funktioner i appen Agenter

  • Sökning med inbäddningar (experimentell, av): semantisk sökning över meddelanden. Kräver PostgreSQL med utökningen pgvector och en inbäddningsmodell (OpenAI eller OpenAI-kompatibel). Den skickar varje meddelande till inbäddningsmodellen, inklusive privata kanaler och direktmeddelanden.
  • Webbsökning (av): låter agenter söka på webben via Google, Brave eller en SearXNG-server du kör.
  • Inbyggda verktyg: med leverantörer som erbjuder dem kan agenter använda leverantörens egen webbsökning (på som standard för nya agenter, där det stöds), webbhämtning och kodexekvering. Dessa körs hos leverantören. Stäng av dem per agent.
  • Model Context Protocol (MCP): anslut agenter till MCP-servrar du litar på, för extra verktyg.
  • Felsökning: Spårningsutdata (av, serverloggar eller en OpenTelemetry-slutpunkt) och Aktivera loggning av tokenanvändning, som skriver tokenantal till logs/agents/token_usage.log.

Tal till text: transkriptioner och undertexter för samtal

Samtal kan transkriberas, med live-undertexter, av en tal-till-text-server som erbjuder en OpenAI-kompatibel /v1/audio/transcriptions-ändpunkt. Inställningarna finns under Samtal och röst. Med Sammanfatta transkriptioner aktiverat publicerar standardagenten även en sammanfattning av varje transkription.

Text-till-tal: Läs högt

När text-till-tal är aktiverat finns Läs högt i menyn för varje meddelande: servern skickar meddelandets text till ett text-till-tal-API och spelar upp ljudet. Inställningar finns under Systemkonsol › Integrationer › Text till tal:

InställningNyckel och variabelVad som ska anges
Läs meddelanden högtTextToSpeechSettings.Enable, AM_TEXTTOSPEECHSETTINGS_ENABLEtrue (av som standard)
API:ts bas-URLTextToSpeechSettings.URL, AM_TEXTTOSPEECHSETTINGS_URLBas-URL:n upp till och med /v1, till exempel http://tts.internal:8000/v1. Servern anropar dess /audio/speech-ändpunkt.
ModellTextToSpeechSettings.Model, AM_TEXTTOSPEECHSETTINGS_MODELModellen med det namn API:t använder, till exempel tts-1. Obligatoriskt.
RöstTextToSpeechSettings.Voice, AM_TEXTTOSPEECHSETTINGS_VOICEEn av modellens röster, eller tomt för standardvärdet.
API-nyckelTextToSpeechSettings.APIKey, AM_TEXTTOSPEECHSETTINGS_APIKEYSkickas som en bearer-token. Tomt om API:t inte kräver någon.

För att använda en modellanslutning istället för adressen och nyckeln ovan, välj den för Text till tal i AI › Inbyggda funktioner. Sidan anger då att meddelanden läses högt med den anslutningen: API:ts bas-URL och API-nyckel används inte, Röst används fortfarande, liksom Modell när anslutningen inte anger en modell. Läs meddelanden högt måste fortfarande vara påslaget.

Före sändning tar servern bort kodblock, länkar, emojikoder och formatering, och behåller högst 4000 tecken. Den begär MP3-ljud och behåller de senaste 64 resultaten i minnet, så ett meddelande som läses två gånger skickas bara en gång.

Automatisk översättning

Automatisk översättning visar kanalens meddelanden på varje läsares eget språk. Konfigurera den i Systemkonsol › Site-konfiguration › Lokalisering, under Automatisk översättning:

InställningNyckelStandard
AktiveraAutoTranslationSettings.EnableAv
ÖversättningstjänstAutoTranslationSettings.Providerconnection (visas som "Model connection (recommended)", den som väljs när ingen är inställd), libretranslate, openai ("OpenAI-compatible API, set up here") eller agents ("AI chat app's service (older)")
Tillåtna språkAutoTranslationSettings.TargetLanguagesen: de språk som meddelanden kan översättas till
Översättningstidsgräns (ms)AutoTranslationSettings.TimeoutMs5000
Begränsa automatisk översättning för direktmeddelanden och gruppmeddelandenAutoTranslationSettings.RestrictDMAndGMAv

Varje leverantör har egna fält:

  • Model connection: en serveromfattande anslutning och dess modell, samma inställning som Automatisk översättning i AI › Inbyggda funktioner (AISettings.AutoTranslation). En dedikerad översättningsmodell är snabb och exakt; en allmän LLM fungerar också.
  • LibreTranslate: Slutpunkt för LibreTranslate's API och API-nyckel för LibreTranslate (AutoTranslationSettings.LibreTranslate.URL, .APIKey). En LibreTranslate-server kan köras på ditt eget nätverk.
  • OpenAI-kompatibelt API: API:ts bas-URL (upp till och med /v1; servern använder dess chat completions-slutpunkt), Modell och API-nyckel (AutoTranslationSettings.OpenAI.URL, .Model, .APIKey). En liten översättningsmodell som körs lokalt fungerar bra.
  • AI chat app's service (older): leverantören för servrar som konfigurerades före 0.9.0, som använde en tjänst från appen Agents. Den kräver inte längre appen: den översätter med den anslutning som valts för automatisk översättning i AI › Inbyggda funktioner, eller annars med den anslutning som kopierades från appens tjänst vid uppgraderingen. Switch to Model connection flyttar inställningen till den rekommenderade leverantören.

När det är aktiverat kan kanaladministratörer slå på översättning för en kanal i kanalens inställningar (Automatisk översättning), och varje medlem kan välja bort det från kanalmenyn (Översätt meddelanden). I direkt- och gruppmeddelanden kan vilken medlem som helst slå på det; med begränsningen på är översättning inte tillgänglig där. Översatta meddelanden visar "Översatt från …" med en länk till originalet.

Kod, länkar, omnämnanden och emojier ersätts med platshållare innan texten skickas, och sätts tillbaka efteråt.

Vilka data som går vart

FunktionVad som skickasTill
OmskrivMeddelandet som skrivs, och den valda instruktionenDen anslutning som valts för det
SammanfattningarMeddelandena i kanalerna i sammanfattningen, och personens instruktionerDen anslutning som valts för det
Appar som använder modellanslutningarVad varje app skickar, för den person som använder denDe anslutningar den personen får använda
AgenterBegäran, meddelandena i tråden eller kanalen det gäller, agentens instruktioner, verktygsresultat, bilder när vision är på, samt den frågande användarens namn, användarnamn, position och språkTjänstens API
Sökning med inbäddningarVarje meddelande (utom bots' och systemmeddelanden)Inbäddnings-API:t
Inbyggda verktyg och websökningSökfrågor, sidor att hämta, kodLeverantören, eller den sökmotor du valde
Transkription av samtalRösten från alla som talar medan det är påRöst-till-text-API:t
UppläsningTexten i meddelandet som läsesText-till-tal-API:t, eller den anslutning som valts för det
ÖversättningTexten i meddelandena i översatta kanalerModellanslutningen, LibreTranslate eller OpenAI-kompatibelt API

För att hålla allt på ditt nätverk, peka varje funktion mot servrar du själv kör. Med en molnleverantör, kontrollera dess villkor för databevarande, och informera dina användare om vilka funktioner som skickar ut deras meddelanden.

Stänga av AI

Det finns ingen enda avstängning: varje funktion har sin egen.

  • Omskrivningar och sammanfattningar: Ställ in dem till Av i Systemkonsol › AI › Inbyggda funktioner. Användare fortsätter att läsa de sammanfattningar de redan har.
  • Modellanslutningar: Ta bort en anslutning för att stoppa all användning av den. Utan någon anslutning kan varken de inbyggda funktionerna eller apparna använda AI via servern.
  • Agenter: Inaktivera appen Agenter i Systemkonsol › Plugin › Pluginadministration. Detta tar även bort sammanfattningar av samtal.
  • Transkription och undertexter: AM_CALLS_ENABLE_TRANSCRIPTIONS=false och AM_CALLS_ENABLE_LIVE_CAPTIONS=false (standardvärdena).
  • Läs högt: Stäng av Läs meddelanden högt (AM_TEXTTOSPEECHSETTINGS_ENABLE=false, standardinställningen), oavsett om den använder en anslutning eller inte.
  • Översättning: auto-translation av (AM_AUTOTRANSLATIONSETTINGS_ENABLE=false, standardvärdet).

Att inaktivera appen Agenter stänger inte av de andra funktionerna: de använder modellanslutningar eller egna API:er.