AI
Antimatter 的 AI 功能使用您選擇的模型:雲端供應商,或您自己網路上的伺服器。在您設定模型之前,不會有任何資料被傳送。本頁涵蓋模型連線、各項功能、所傳送的資料以及如何關閉它們。
AI 功能
| 功能 | 設定位置 | 模型類型 | 預設開啟 |
|---|---|---|---|
| 在輸入框中重寫:在傳送訊息前改善、縮短、修正或翻譯訊息 | AI › 內建功能,並搭配模型連線 | 一個聊天模型(LLM) | 否 |
| 摘要:使用者選擇頻道的摘要 | AI › 內建功能,並搭配模型連線 | 一個聊天模型(LLM) | 否 |
| 頻道的自動翻譯 | 網站設定 › 語言 | 一個模型連線、LibreTranslate 或 OpenAI 相容的 API | 否 |
| 朗讀 | 整合 › 文字轉語音,可選搭配模型連線 | 文字轉語音,相容於 OpenAI | 否 |
| AI 代理程式:與機器人聊天、討論串摘要、通話摘要 | 代理程式應用程式 | 任何大型語言模型 (LLM) 服務 | 應用程式已開啟,但在您新增服務之前不會執行任何動作 |
| 通話文字轉錄與即時字幕 | 通話應用程式 | 文字轉錄,相容於 OpenAI | 否 |
「OpenAI 相容」是指提供與 OpenAI 相同 HTTP API 的伺服器。大多數您可以自行運行的模型伺服器都符合此條件(例如 Ollama、vLLM、llama.cpp 的伺服器,或 Whisper 和文字轉語音伺服器),許多雲端供應商和閘道器也是如此,例如 LiteLLM 或 OpenRouter。使用這些功能不需要任何授權。
內建功能(重寫、摘要、翻譯和朗讀)不需要代理程式應用程式:它們使用您在系統控制台中新增的模型連線。
模型連線
模型連線是 Antimatter 可以呼叫的 AI 供應商:其位址、金鑰及其模型。您只需新增一次,然後為需要使用它的每個功能進行選擇。有兩種類型:
- 伺服器級連線,由系統管理員在系統控制台 › AI › 模型連線中管理。只有這些連線可以服務內建功能。應用程式也可以為被允許的使用者使用它們。
- 社群連線,由社群管理員在其社群設定中為其社群新增(見下方)。應用程式為社群成員使用它們。它們永遠不會服務內建功能。
系統控制台的AI部分顯示給可以管理伺服器級連線的人員:預設為系統管理員。其模型連線頁面列出伺服器級連線以及所有社群的連線。
新增一個連線
在系統控制台 › AI › 模型連線中,點擊新增一個連線,然後填寫表單:
| 欄位 | 應填入的內容 |
|---|---|
| 預設值 | 填入供應商與知名服務的位址:OpenAI、Mistral、Gemini、OpenRouter,或伺服器本身的 Ollama 與 LiteLLM。選填。 |
| 名稱 | 管理員選擇時看到的名稱,例如「公司 OpenAI」。 |
| 供應商 | OpenAI 相容(大多數供應商、閘道以及您自行執行的模型伺服器)或 Anthropic。擁有獨立登入方式的雲端服務,例如 AWS Bedrock、Google Vertex AI 或搭配 Entra ID 的 Azure,請透過其 OpenAI 相容端點或 LiteLLM 等閘道進行存取。 |
| 基礎 URL | API 的位址,包含 /v1 在內,例如 http://ollama:11434/v1。若留空,則使用供應商預設的位址(https://api.openai.com/v1 或 https://api.anthropic.com/v1)。 |
| API 金鑰 | 供應商的金鑰。若端點不需要金鑰,請留空。金鑰會加密儲存且不再顯示:表單僅顯示最後四個字元,並提供保留、取代或移除的選項。 |
| 額外標頭 | 隨每個請求送出的標頭,供需要這些標頭的閘道使用。其值會像金鑰一樣加密儲存且不再顯示:若要變更,請重新輸入所有值。 |
| 模型 | 當功能或應用程式未指定模型時,各功能所使用的模型:聊天、嵌入、文字轉錄 與 決策。載入模型 會列出端點提供的模型。若端點不提供某項功能,請將該欄位留空。Anthropic 連線僅支援聊天。 |
| 決策 API | 呼叫決策模型的方式:OpenAI 決策 或 SystemOne。僅對請求決策的應用程式有影響。 |
| 限制 | 請參閱 限制與預算。 |
| 社群 | 僅限伺服器層級的連線。所有社群:可在每個社群以及私人訊息和群組訊息中使用。否則,僅在您選擇的社群中可用。 |
| 誰可以使用 | 在可用的範圍內,所有人,或僅限您選擇的團隊(社群內的人員群組)與角色(系統管理員、社群管理員)。訪客也可使用 允許訪客使用;若未勾選,即使選擇了 所有人,訪客仍無法使用。 |
測試連線 會檢查位址與金鑰:伺服器會向端點請求其模型列表,或發送一個單詞元的聊天。若位址已變更,只有在您儲存後,或重新輸入金鑰時,才會使用已儲存的金鑰進行測試。點擊 新增連線 以儲存。
伺服器會自行發出請求,因此必須能連接到 API:可以是同一 compose 專案中的模型伺服器、您網路中的伺服器,或網際網路上的伺服器。外發請求會遵循 HTTP_PROXY 和 HTTPS_PROXY 變數。
刪除連線會遺忘其金鑰。使用該連線的功能將停止使用 AI,直到您選擇另一條連線為止。
限制與預算
每條連線都有四項限制。留空或設為 0 表示沒有限制。
- 每分鐘請求數 和 每人每分鐘請求數。這些數值由每台伺服器獨立計算:由三台伺服器組成的叢集,允許的速率最高可達單台的三倍。
- 每月 Token 數 和 每人每月 Token 數:Token 預算,以日曆月(UTC)為單位,在資料庫中針對整個叢集進行計算。同時執行的多個請求可能會略微超出預算。
每人限制也適用於重寫和摘要:它們會計入執行重寫的人,或擁有該摘要的人。
使用量
清單顯示每條連線本月的使用量。使用量 可開啟詳細資訊:輸入與輸出的 Token 數、請求數、每月預算、按日(UTC)及使用類型(重寫、摘要、自動翻譯、文字轉語音、透過應用程式的使用者,或特定應用程式)的使用情況。
使用者或應用程式透過連線發出的每次呼叫都會寫入稽核記錄:包括誰、哪條連線、使用類型、模型、Token 數以及是否成功,但絕不會記錄對話內容。內建功能僅計入使用量:單獨的翻譯功能每則訊息、每種語言會產生一次呼叫。
社群連線
社群管理員可在社群設定的 模型連線 分頁中,新增該社群專屬的連線。表單與一般連線相同,但不包含 社群 欄位:社群連線僅在其自身的頻道中運作,供其自身成員使用,且其受眾只能指定其自身的團隊。具有 管理模型連線 權限的角色也可以管理這些連線。預設情況下,社群管理員擁有此權限。
社群連線無法存取私人或環回位址(例如您網路中的 Ollama 伺服器),除非 系統控制台 › 環境 › 開發者 › 允許不受信任的內部連線連往(ServiceSettings.AllowedUntrustedInternalConnections)中列出了這些位址。伺服器層級的連線則可以。
社群管理員端的相關資訊,請參閱 社群設定。
加密金鑰
模型連線的金鑰與額外標頭會使用單一加密金鑰,以 AES-256-GCM 加密後儲存在資料庫中。僅備份資料庫不會洩露這些資訊。伺服器會依下列順序尋找金鑰:
AM_AI_ENCRYPTION_KEY變數:32 個隨機位元組,以 base64 編碼。可使用openssl rand -base64 32產生。- 否則,使用位於伺服器資料目錄(
FileSettings.Directory,預設為./data/)根目錄下的ai-encryption.key檔案。伺服器會在首次有連線需要時建立此檔案,且僅允許伺服器自身讀取。應用程式、匯出與檔案封存無法讀取此檔案。
何時設定變數:
- 使用站點的 compose 檔案。
compose.yaml會從.env傳遞AM_AI_ENCRYPTION_KEY,並在變數為空時將金鑰檔案保留在data磁碟區中。設定變數較佳:這樣.env的備份就會包含金鑰,且與資料庫分開。請將其加入.env並執行docker compose up -d:
如果伺服器已建立其金鑰檔案,請將該檔案中的金鑰放入echo "AM_AI_ENCRYPTION_KEY=$(openssl rand -base64 32)" >> .env.env,以確保已儲存的金鑰仍可讀取:docker compose exec antimatter cat /antimatter/data/ai-encryption.key可印出該金鑰。 - 檔案位於 S3 的叢集。由於其伺服器不共用目錄,因此伺服器不會建立該檔案:請在每台伺服器上設定相同的變數。在設定之前,連線無法儲存金鑰。
- 使用發行版封存或套件時,檔案位於
data/(套件的/var/lib/antimatter/data)。您可以將其保留在該處,或在環境檔案中設定變數。
若要變更金鑰,請將新金鑰設定在 AM_AI_ENCRYPTION_KEY,並將舊金鑰設定在 AM_AI_ENCRYPTION_PREVIOUS_KEYS(多個金鑰以逗號分隔):使用舊金鑰儲存的金鑰仍可讀取。當您重新輸入連線的金鑰時,該金鑰會使用新金鑰加密。請將舊金鑰保留在列表中,直到所有連線的金鑰都已重新輸入為止。
內建功能
在 系統控制台 › AI › 內建功能 中,為每個功能選擇一個伺服器層級的連線及其模型,或選擇 關閉。未設定連線的功能將不使用 AI。載入模型 會列出該連線的所有模型;預設情況下,每個功能使用該連線的聊天模型。
| 功能 | 設定 | 其他需求 |
|---|---|---|
| 在編輯器中重寫:訊息框中的 AI 選單(改善、縮短、修正、翻譯) | AISettings.Rewrite | 無:一旦選擇了連線,選單就會顯示。 |
| 摘要:使用者選擇的頻道的摘要,可隨需或定期生成 | AISettings.Recaps | 在 系統控制台 › 網站設定 › 摘要 中 啟用 AI 摘要(預設為開啟),這也會設定使用者可建立的摘要數量。 |
| 自動翻譯 | AISettings.AutoTranslation | 翻譯提供者 模型連線(建議),位於 自動翻譯。 |
| 文字轉語音 | AISettings.TextToSpeech | 在 文字轉語音 中開啟 朗讀訊息。該連線的 /audio/speech 端點會取代那裡設定的位址和金鑰。 |
每個設定都有 ConnectionId 和 Model 金鑰,例如 AISettings.Rewrite.ConnectionId(AM_AISETTINGS_REWRITE_CONNECTIONID)。空的 Model 會使用連線的預設模型。
內建功能使用連線的限制,但不使用其受眾:任何可以使用該功能的人都可以使用其連線。如果連線需要關注或已被刪除,該功能將失敗,直到您選擇另一個連線:頁面會說明這一點。
AI 代理程式
代理程式應用程式 (id mattermost-ai) 預設為開啟。設定需要兩個步驟:新增一個服務(與模型供應商的連線),然後建立代理程式(使用該服務的機器人)。

1. 新增服務
前往 系統控制台 › 擴充程式 › 代理程式,在 AI Services 下方,按一下 Add an AI Service。選擇 Service type:
- OpenAI 相容:適用於您自行執行的模型伺服器,或任何具有 OpenAI 風格 API 的供應商。填寫API URL(例如
http://ollama:11434/v1或http://vllm.internal:8000/v1),僅在伺服器需要時填寫API 金鑰。如果伺服器僅支援 Chat Completions API,請關閉使用 Responses API。 - OpenAI、Anthropic、Google Gemini、Google Vertex AI、AWS Bedrock、Azure、Cohere、Mistral:託管供應商。每個都需要其API 金鑰(Bedrock:AWS 區域和憑證或 IAM 角色;Vertex AI:專案、區域和服務帳戶;Azure:也需要 API URL)。
接著設定預設模型(若供應商能回報其模型清單,則從清單中選擇;否則請輸入模型名稱),以及(若供應商未回報)輸入 Token 上限和輸出 Token 上限。您可以設定備援服務,當此服務失敗時由其接管。完成後儲存。
伺服器會自行發出這些請求,因此必須能連接到 API:可以是同一個 compose 專案中的模型伺服器、您網路中的伺服器,或是網際網路上的伺服器。外發請求會遵循 HTTP_PROXY 和 HTTPS_PROXY 變數。
2. 建立代理程式
代理程式是在網頁應用程式的代理程式頁面建立的:請在代理程式面板的代理程式選擇器中開啟管理(在傳統介面中,也可從產品選單開啟)。其網址為 https://chat.example.com/plug/mattermost-ai/agents。每個代理程式都有顯示名稱、代理程式使用者名稱(供他人提及使用)、服務,以及可選的模型、自訂指令,還有啟用視覺(影像)和啟用工具的開關。其存取標籤頁可限制該代理程式可在哪些頻道使用,以及哪些使用者可以使用它。在系統控制台的AI 功能中,預設機器人會選擇在未指定代理程式時所使用的代理程式,例如用於通話摘要。
代理程式應用程式的選填功能
- 嵌入搜尋(實驗性,已停用):對訊息進行語意搜尋。需要支援 pgvector 擴充功能的 PostgreSQL 以及嵌入模型(OpenAI 或相容於 OpenAI 的模型)。它會將每一則訊息(包括私人頻道和私人訊息)傳送至嵌入模型。
- 網頁搜尋(已停用):讓代理程式透過 Google、Brave 或您自行運行的 SearXNG 伺服器搜尋網頁。
- 原生工具:若供應商提供,代理程式可使用供應商自有的網頁搜尋(對於支援的新代理程式,預設為開啟)、網頁抓取和程式碼執行。這些操作在供應商端執行。您可以針對每個代理程式關閉這些功能。
- 模型上下文協定 (MCP):將代理程式連接至您信任的 MCP 伺服器,以獲得更多工具。
- 偵錯:Trace Output(關閉、伺服器記錄或 OpenTelemetry 端點)以及 Enable Token Usage Logging,此選項會將 token 數量寫入
logs/agents/token_usage.log。
語音轉文字:通話文字轉錄與即時字幕
通話可由提供 OpenAI 相容 /v1/audio/transcriptions 端點的語音轉文字伺服器進行文字轉錄,並提供即時字幕。設定方式請參閱通話與語音。開啟摘要文字轉錄後,預設代理程式也會為每份轉錄內容發布摘要。
文字轉語音:朗讀
開啟文字轉語音後,每則訊息的選單中都會出現朗讀選項:伺服器會將訊息文字傳送至文字轉語音 API 並播放音訊。設定位於系統控制台 › 整合 › 文字轉語音:
| 設定 | 金鑰與變數 | 應填入的內容 |
|---|---|---|
| 朗讀訊息 | TextToSpeechSettings.Enable, AM_TEXTTOSPEECHSETTINGS_ENABLE | true(預設為關閉) |
| API 基礎 URL | TextToSpeechSettings.URL, AM_TEXTTOSPEECHSETTINGS_URL | 包含 /v1 在內的基礎 URL,例如 http://tts.internal:8000/v1。伺服器將呼叫其 /audio/speech 端點。 |
| 模型 | TextToSpeechSettings.Model, AM_TEXTTOSPEECHSETTINGS_MODEL | API 所命名的模型,例如 tts-1。必填。 |
| 語音 | TextToSpeechSettings.Voice, AM_TEXTTOSPEECHSETTINGS_VOICE | 模型其中一種語音,或留空以使用預設值。 |
| API 金鑰 | TextToSpeechSettings.APIKey, AM_TEXTTOSPEECHSETTINGS_APIKEY | 作為 Bearer Token 傳送。若 API 不需要金鑰,則留空。 |
若要使用模型連線代替上述的網址和金鑰,請在AI › 內建功能中為文字轉語音選擇該連線。該頁面會顯示訊息將透過該連線朗讀:API 基礎 URL和API 金鑰將不被使用,語音仍會使用,若連線未指定模型,則模型也會使用。朗讀訊息仍必須開啟。
傳送前,伺服器會移除程式碼區塊、連結、表情符號代碼與格式,並保留最多 4000 個字元。它要求 MP3 音訊格式,並在記憶體中保留最近 64 個結果,因此同一則訊息若被朗讀兩次,只會傳送一次。
自動翻譯
自動翻譯功能可將頻道的訊息顯示為每位讀者自己的語言。請在系統控制台 › 網站設定 › 區域化下的自動翻譯中進行設定:
| 設定 | 金鑰 | 預設值 |
|---|---|---|
| 啟用 | AutoTranslationSettings.Enable | 關閉 |
| 翻譯供應商 | AutoTranslationSettings.Provider | connection(顯示為「模型連線(建議)」,在未設定時會選擇此選項)、libretranslate、openai(「OpenAI 相容 API,在此設定」)或 agents(「AI 聊天應用程式的服務(舊版)」) |
| 允許的語言 | AutoTranslationSettings.TargetLanguages | en:訊息可被翻譯成的語言 |
| 翻譯逾時(ms) | AutoTranslationSettings.TimeoutMs | 5000 |
| 限制私人訊息與群組訊息的自動翻譯 | AutoTranslationSettings.RestrictDMAndGM | 關閉 |
每個供應商都有各自的欄位:
- 模型連線:伺服器範圍的連線及其模型,與AI › 內建功能中的自動翻譯設定相同(
AISettings.AutoTranslation)。專用的翻譯模型速度快且準確;通用 LLM 也可以使用。 - LibreTranslate:LibreTranslate API 端點與LibreTranslate API 金鑰(
AutoTranslationSettings.LibreTranslate.URL、.APIKey)。LibreTranslate 伺服器可運行在您自己的網路上。 - OpenAI 相容 API:API 基礎 URL(包含
/v1在內;伺服器使用其聊天完成端點)、模型與API 金鑰(AutoTranslationSettings.OpenAI.URL、.Model、.APIKey)。在本地運行的輕量級翻譯模型效果良好。 - AI 聊天應用程式的服務(舊版):0.9.0 之前設定的伺服器所使用的提供者,當時使用的是代理程式應用程式的服務。現在不再需要該應用程式:它會使用AI › 內建功能中為自動翻譯選擇的連線進行翻譯,或者使用升級時從應用程式服務複製的連線。切換至模型連線可將設定移至建議的提供者。
開啟後,頻道管理員可在頻道的設定中(自動翻譯)為該頻道啟用翻譯功能,而每位成員可透過頻道選單(翻譯訊息)選擇退出。在私人訊息與群組訊息中,任何成員皆可開啟此功能;若已啟用限制,則這些情境中無法使用翻譯。已翻譯的訊息會顯示「已從……翻譯」,並附上連結指向原始訊息。
在傳送文字之前,程式碼、連結、提及與表情符號會被替換為佔位符,之後再還原。
資料流向
| 功能 | 傳送內容 | 目的地 |
|---|---|---|
| 重寫 | 正在撰寫的訊息,以及所選擇的指令 | 為其選擇的連線 |
| 摘要 | 摘要中頻道的訊息,以及該使用者的指令 | 為其選擇的連線 |
| 使用模型連線的應用程式 | 每個應用程式為使用它的使用者所傳送的內容 | 該使用者可能使用的連線 |
| 代理程式 | 請求、所關聯討論串或頻道的訊息、代理程式的指令、工具結果、開啟視覺功能時的圖片,以及提問者的姓名、使用者名稱、職位與語言 | 該服務的 API |
| 嵌入搜尋 | 所有訊息(機器人與系統訊息除外) | 嵌入 API |
| 原生工具與網頁搜尋 | 搜尋查詢、要抓取的頁面、程式碼 | 供應商或您選擇的搜尋引擎 |
| 通話文字轉錄 | 開啟期間所有發言者的聲音 | 語音轉文字 API |
| 朗讀 | 正在朗讀的訊息文字 | 文字轉語音 API,或為其選擇的連線 |
| 翻譯 | 已翻譯頻道中的訊息文字 | 模型連線、LibreTranslate 或 OpenAI 相容 API |
若要將所有資料保留在您的網路內,請將各項功能指向您自行執行的伺服器。若使用雲端供應商,請核對其資料保留條款,並告知使用者哪些功能會將訊息傳送至外部。
關閉 AI
沒有單一開關:每項功能都有各自的開關。
- 重寫與摘要:在系統控制台 › AI › 內建功能中將其設為關閉。使用者會持續閱讀他們已有的摘要。
- 模型連線:刪除連線即可停止所有對該連線的使用。若沒有任何連線,內建功能與應用程式皆無法透過伺服器使用 AI。
- 代理程式:在系統控制台 › 擴充程式 › 擴充程式管理中停用代理程式應用程式。這也會移除通話摘要。
- 文字轉錄與即時字幕:
AM_CALLS_ENABLE_TRANSCRIPTIONS=false與AM_CALLS_ENABLE_LIVE_CAPTIONS=false(預設值)。 - 朗讀:關閉朗讀訊息(
AM_TEXTTOSPEECHSETTINGS_ENABLE=false,預設值),無論其是否使用連線。 - 翻譯:關閉自動翻譯(
AM_AUTOTRANSLATIONSETTINGS_ENABLE=false,預設值)。
停用代理程式應用程式不會關閉其他功能:這些功能使用模型連線或各自的 API。