ШІ

Функції ШІ Antimatter використовують моделі на ваш вибір: хмарного провайдера або сервер у вашій мережі. Жодна інформація не надсилається доникуди, доки ви не налаштуєте модель. На цій сторінці описано підключення моделей, кожну функцію, дані, які вона надсилає, і способи її вимкнення.

Функції ШІ

ФункціяНалаштовується вТип моделіУвімкнено за замовчуванням
Переписування у полі введення: покращення, скорочення, виправлення або переклад повідомлення перед надсиланнямШІ › Вбудовані функції, з підключенням моделіМова модель (LLM)ні
Зведення: резюме каналів, які обирають учасникиШІ › Вбудовані функції, з підключенням моделіМова модель (LLM)ні
Автоматичний переклад каналівКонфігурація сайту › ЛокалізаціяПідключення моделі, LibreTranslate або сумісний із OpenAI APIні
ОзвученняІнтеграції › Текст у мовлення, за бажанням з підключенням моделіПеретворення тексту в мовлення, сумісне з OpenAIні
Агенти ШІ: чат із ботом, зведення обговорень, зведення дзвінківДодаток AgentsБудь-яка служба великої мовної моделі (LLM)Додаток увімкнено, але не виконує жодних дій, доки ви не додасте службу
Транскрипція дзвінків та живі субтитриДодаток CallsПеретворення мовлення в текст, сумісне з OpenAIні

«Сумісний із OpenAI» означає сервер, який пропонує той самий HTTP API, що й OpenAI. Більшість серверів моделей, які можна запустити самостійно, підтримують цей стандарт (наприклад Ollama, vLLM, сервер llama.cpp, або сервери розпізнавання мовлення та перетворення тексту в мовлення), а також багато хмарних провайдерів і шлюзів, таких як LiteLLM або OpenRouter. Для жодної з цих функцій не потрібна ліцензія.

Вбудовані функції (переписування, зведення, переклад та озвучення) не потребують додатка «Агенти»: вони використовують підключення моделей, які ви додаєте в системній консолі.

Підключення моделей

Підключення моделі — це провайдер ШІ, до якого Antimatter може звертатися: його адреса, ключ і моделі. Ви додаєте його один раз, а потім обираєте для кожної функції, яка має його використовувати. Існує два типи:

  • Підключення для всього сервера, якими керують системні адміністратори в Системна консоль › ШІ › Підключення моделей. Лише вони можуть обслуговувати вбудовані функції. Додатки також можуть їх використовувати для дозволених на це учасників.
  • Підключення спільноти, які адміністратори спільноти додають для власної спільноти в її налаштуваннях (див. нижче). Додатки використовують їх для учасників спільноти. Вони ніколи не обслуговують вбудовані функції.

Розділ ШІ у системній консолі відображається для тих, хто може керувати підключеннями для всього сервера: за замовчуванням — системних адміністраторів. На сторінці Підключення моделей перелічено підключення для всього сервера та для всіх спільнот.

Додати з'єднання

У Системна консоль › ШІ › Підключення моделей натисніть Додати з'єднання, а потім заповніть форму:

ПолеЩо вказати
ШаблониЗаповнює провайдера та адресу відомої служби: OpenAI, Mistral, Gemini, OpenRouter або Ollama і LiteLLM на самому сервері. Довільне поле.
Ім'яІм'я, яке адміністратори бачать під час вибору, наприклад «OpenAI компанії».
ПровайдерСумісний з OpenAI (більшість провайдерів, шлюзів і серверів моделей, які ви запускаєте самостійно) або Anthropic. Хмарні служби з власною автентифікацією, такі як AWS Bedrock, Google Vertex AI або Azure з Entra ID, працюють через їхній сумісний з OpenAI endpoint або шлюз, наприклад LiteLLM.
Базова URLАдреса API, включно з /v1, наприклад http://ollama:11434/v1. Якщо поле порожнє, використовується адреса самого провайдера (https://api.openai.com/v1 або https://api.anthropic.com/v1).
Ключ APIКлюч провайдера. Залиште порожнім, якщо endpoint не потребує ключа. Він зберігається в зашифрованому вигляді і ніколи не показується знову: у формі видно лише останні чотири символи, а також пропонується зберегти, замінити або видалити ключ.
Додаткові заголовкиЗаголовки, які надсилаються з кожним запитом, якщо шлюз їх потребує. Їхні значення зберігаються в зашифрованому вигляді, як і ключ, і ніколи не показуються знову: щоб їх змінити, введіть усі значення заново.
МоделіМодель, що використовується для кожної можливості, коли функція або додаток не вказує конкретну: Чат, Вбудовування, Транскрипція та Рішення. Завантажити моделі показує список моделей, які пропонує endpoint. Залиште поле можливості порожнім, якщо endpoint її не підтримує. З'єднання з Anthropic підтримують лише чат.
API рішеньСпосіб виклику моделі для прийняття рішень: Рішення OpenAI або SystemOne. Має значення лише для додатків, які потребують прийняття рішень.
ОбмеженняДив. Обмеження та бюджети.
СпільнотиЛише серверні з'єднання. Усі спільноти: доступне в кожній спільноті, а також у приватних і групових повідомленнях. Інакше — лише в тих спільнотах, які ви оберете.
Хто може користуватисяУсі, де це доступне, або лише обрані вами команди (групи людей у межах спільноти) та ролі (Системні адміністратори, Адміністратори спільноти). Гості теж дозволяє гостям користуватися; без цього гості не можуть, навіть якщо обрано Усі.

Перевірити з'єднання перевіряє адресу та ключ: сервер запитує у endpoint список моделей або надсилає чат із одним токеном. Змінена адреса перевіряється зі збереженим ключем лише після збереження або якщо ви знову введете ключ. Натисніть Додати з'єднання, щоб зберегти.

Сервер виконує запити сам, тому він має мати доступ до API: сервера моделей у тому самому проекті compose, на вашій мережі або в Інтернеті. Вихідні запити дотримуються змінних HTTP_PROXY та HTTPS_PROXY.

Видалення з’єднання стирає його ключ. Функції, які ним користувалися, перестануть використовувати ШІ, доки ви не оберете інше з’єднання.

Обмеження та бюджети

Кожне з’єднання має чотири обмеження. Порожнє значення або 0 означає відсутність обмеження.

  • Запити за хвилину та Запити за хвилину на одну особу. Вони рахуються кожним сервером окремо: кластер із трьох серверів пропускає до тричі більше за цю частоту.
  • Токени за місяць та Токени за місяць на одну особу: бюджети токенів за календарний місяць (UTC), які рахуються в базі даних для всього кластера. Кілька запитів, виконаних одночасно, можуть незначно перевищити бюджет.

Обмеження на одну особу також діють для переписування та зведень: вони зараховуються на особу, яка переписує, або на власника зведення.

Використання

Список показує використання кожного з’єднання цього місяця. Використання відкриває деталі: токенів вхідних і вихідних, запитів, місячного бюджету, використання за днями (UTC) та за типом (Переписати, Зведення, Автоматичний переклад, Текст у мовлення, Люди, через додатки або конкретний додаток).

Кожен виклик, який людина або додаток робить через з’єднання, також записується в журнал аудиту: хто, яке з’єднання, тип використання, модель, кількість токенів і чи спрацювало, але ніколи — що саме було сказано. Вбудовані функції враховуються лише в статистичних даних: переклад окремо робить один виклик на кожне повідомлення та мову.

З’єднання спільнот

Адміністратори спільнот додають власні з’єднання спільноти в її налаштуваннях, на вкладці З’єднання моделей. Форма та сама, але без Спільноти: з’єднання спільноти працює лише в її власних каналах, для її власних учасників, а її аудиторія може називати лише власні команди. Ролі з дозволом Керувати з’єднаннями моделей також можуть ними керувати. За замовчуванням адміністратори спільнот мають цей дозвіл.

З’єднання спільноти не може отримати доступ до приватних або loopback-адрес (наприклад, сервера Ollama на вашій мережі), якщо Системна консоль › Середовище › Розробник › Дозволити ненадійні внутрішні з’єднання до (ServiceSettings.AllowedUntrustedInternalConnections) не містить їх у списку. З’єднання на рівні сервера можуть.

Див. Налаштування спільноти для сторони адміністраторів спільноти.

Ключ шифрування

Ключі та додаткові заголовки підключень моделей шифруються в базі даних (AES-256-GCM) за допомогою одного ключа шифрування. Сама резервна копія бази даних їх не розкриває. Сервер шукає ключ у такому порядку:

  1. Змінна AM_AI_ENCRYPTION_KEY: 32 випадкові байти в base64. Створіть її за допомогою openssl rand -base64 32.
  2. Інакше, файл ai-encryption.key у корені каталогу даних сервера (FileSettings.Directory, за замовчуванням ./data/). Сервер створює його, доступним лише для себе, вперше, коли підключенню потрібен ключ. Додатки, експорти та архіви файлів не можуть його прочитати.
Без ключа збережені API-ключі неможливо прочитати, і кожне підключення знову має отримати свій ключ. Зробіть резервну копію ключа разом із базою даних (див. Резервне копіювання та оновлення) і зберігайте його окремо від резервних копій бази даних.

Коли встановлювати змінну:

  • З файлом compose сайту. compose.yaml передає AM_AI_ENCRYPTION_KEY з .env і зберігає файл ключа в томі 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 (кілька ключів, розділених комами): ключі, збережені зі старим, досі можна прочитати. Ключ підключення шифрується новим ключем, коли ви введете його знову. Залишайте старий ключ у списку, доки ключі всіх підключень не буде введено знову.

Вбудовані можливості

У розділі Системна консоль › ШІ › Вбудовані функції для кожної функції виберіть загальносерверне з’єднання та його модель, або Вимк. Функція без з’єднання не використовує ШІ. У списку Завантаження моделей показано всі моделі з’єднання; за замовчуванням кожна функція використовує модель чату з’єднання.

ФункціяНалаштуванняЩо ще потрібно
Переписати в композері: меню ШІ в полі повідомлення (покращити, скоротити, виправити, перекласти)AISettings.RewriteНічого: меню з’являється, щойно буде вибрано з’єднання.
Зведення: зведення каналів, які обирають користувачі, за запитом або за розкладомAISettings.RecapsУвімкнути ШІ-зведення у розділі Системна консоль › Конфігурація сайту › Зведення (увімкнено за замовчуванням), а також встановіть, скільки зведень можуть створювати користувачі.
Автоматичний перекладAISettings.AutoTranslationПровайдера перекладу З’єднання з моделлю (рекомендовано) у розділі Автоматичний переклад.
Текст у мовленняAISettings.TextToSpeechУвімкніть Озвучення повідомлень у розділі Текст у мовлення. Кінцева точка /audio/speech з’єднання замінює адресу та ключ, встановлені там.

Кожне налаштування має ключі ConnectionId та Model, наприклад AISettings.Rewrite.ConnectionId (AM_AISETTINGS_REWRITE_CONNECTIONID). Пусте значення Model використовує модель за замовчуванням для з’єднання.

Вбудовані функції використовують обмеження з’єднання, але не його аудиторію: будь-хто, хто може скористатися функцією, може скористатися її з’єднанням. Якщо з’єднання потребує уваги або було видалене, функція перестане працювати, доки ви не виберете інше: про це буде повідомлено на сторінці.

Агенти ШІ

Додаток «Агенти» (id mattermost-ai) увімкнено за замовчуванням. Його налаштування складається з двох кроків: додавання сервісу (з’єднання з провайдером моделі) та створення агентів (ботів, які використовують сервіс).

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.
Агент, який відповідає на панелі Agents.
Агенти додатка «Агенти» досі використовують власні ШІ-сервіси додатка, а не з’єднання з моделями. Вбудовані функції більше не проходять через додаток. На сервері, оновленому до 0.9.0, сервіси додатка також було скопійовано один раз у загальносерверні з’єднання з моделями (див. Оновлення до 0.9.0).

1. Додайте службу

Перейдіть у Системна консоль › Плагіни › Агенти і, у розділі AI Services, натисніть Add an AI Service. Оберіть Service type:

  • OpenAI Compatible: для сервера моделей, який ви запускаєте самостійно, або будь-якого провайдера з API у стилі OpenAI. Заповніть API URL (наприклад http://ollama:11434/v1 або http://vllm.internal:8000/v1) та Ключ API лише тоді, коли сервер його потребує. Якщо сервер підтримує лише API Chat Completions, вимкніть Use Responses API.
  • OpenAI, Anthropic, Google Gemini, Google Vertex AI, AWS Bedrock, Azure, Cohere, Mistral: хостингові провайдери. Кожен потребує свого Ключа API (Bedrock: регіон AWS та облікові дані або роль IAM; Vertex AI: проєкт, регіон та обліковий запис служби; Azure: також API URL).

Потім встановіть Модель за замовчуванням (список, якщо провайдер може повідомляти про свої моделі, інакше введіть назву вручну), а також, якщо провайдер не повідомляє про них, Обмеження входних токенів та Обмеження вихідних токенів. Резервний сервіс може взяти на себе обробку, якщо цей не спрацює. Збережіть зміни.

Сервер виконує ці запити сам, тому він повинен мати доступ до API: модельний сервер у тому самому compose-проєкті, у вашій мережі або в Інтернеті. Вихідні запити дотримуються змінних HTTP_PROXY та HTTPS_PROXY.

2. Створення агентів

Агентів створюють на сторінці Агенти веб-застосунку: відкрийте її за допомогою пункту Керувати у виборі агента на панелі агентів (у класичному інтерфейсі — також із меню продукту). Її адреса: https://chat.example.com/plug/mattermost-ai/agents. Кожен агент має Відображуване ім'я, Ім'я користувача агента (як його згадують), Службу та, за бажанням, модель, Користувацькі інструкції та перемикачі Увімкнути зір (зображення) та Увімкнути інструменти. На вкладці Доступ обмежуються канали, де агент може використовуватися, та користувачі, які можуть ним користуватися. У системній консолі, у розділі AI Functions, пункт Default bot визначає агента, який використовується, коли жоден не обрано, наприклад для підсумків дзвінків.

За замовчуванням кожен користувач може створювати власних агентів із використанням налаштованих вами сервісів. Щоб обмежити це лише адміністраторами, приберіть дозвіл Керування власними ШІ-агентами з ролі учасників у Системна консоль › Керування користувачами › Дозволи.

Додаткові можливості застосунку «Агенти»

  • Пошук за векторними описами (експериментальна, вимкнено): семантичний пошук серед повідомлень. Потребує PostgreSQL із розширенням pgvector та модель для векторизації (OpenAI або сумісну з OpenAI). Вона надсилає кожне повідомлення до моделі векторизації, включно з приватними каналами та приватними повідомленнями.
  • Веб-пошук (вимкнено): дозволяє агентам шукати в мережі через Google, Brave або ваш власний сервер SearXNG.
  • Вбудовані інструменти: за наявності провайдерів, які їх пропонують, агенти можуть використовувати власний веб-пошук провайдера (увімкнено за замовчуванням для нових агентів, де підтримується), отримання веб-сторінок та виконання коду. Ці інструменти працюють на боці провайдера. Вимкніть їх для кожного агента окремо.
  • Протокол контексту моделей (MCP): підключення агентів до серверів MCP, яким ви довіряєте, для додаткових інструментів.
  • Дебаг: Trace Output (вимкнено, журнали сервера або кінцева точка OpenTelemetry) та Enable Token Usage Logging, який записує кількість токенів у logs/agents/token_usage.log.

Розпізнавання мовлення: транскрипція та субтитри дзвінків

Дзвінки можна транскрибувати з живими субтитрами за допомогою сервера розпізнавання мови, який пропонує кінцеву точку /v1/audio/transcriptions, сумісну з OpenAI. Налаштування виконується в розділі Дзвінки та голос. Якщо увімкнено Summarize transcriptions, агент за замовчуванням також публікує резюме кожного транскрипту.

Синтез мови: озвучення

Якщо текст у мовлення увімкнено, у меню кожного повідомлення є пункт Прочитати вголос: сервер надсилає текст повідомлення до API тексту в мовлення та відтворює аудіо. Налаштування у Системна консоль › Інтеграції › Текст у мовлення:

НалаштуванняКлюч і зміннаЩо вказати
Озвучення повідомленьTextToSpeechSettings.Enable, AM_TEXTTOSPEECHSETTINGS_ENABLEtrue (вимкнено за замовчуванням)
Базова URL APITextToSpeechSettings.URL, AM_TEXTTOSPEECHSETTINGS_URLБазова URL-адреса до /v1 включно, наприклад http://tts.internal:8000/v1. Сервер звертається до його кінцевої точки /audio/speech.
МодельTextToSpeechSettings.Model, AM_TEXTTOSPEECHSETTINGS_MODELМодель під назвою, якою її вказує API, наприклад tts-1. Обов’язкове поле.
ГолосTextToSpeechSettings.Voice, AM_TEXTTOSPEECHSETTINGS_VOICEОдин із голосів моделі або порожнє значення для голосу за замовчуванням.
Ключ APITextToSpeechSettings.APIKey, AM_TEXTTOSPEECHSETTINGS_APIKEYНадсилається як токен доступу. Порожнє, якщо API не потребує ключа.

Щоб використовувати з'єднання з моделі замість адреси та ключа, наведених вище, оберіть його для Текст у мовлення у розділі AI › Вбудовані функції. На сторінці тоді зазначено, що повідомлення озвучуються за допомогою цього з'єднання: Базова URL API та Ключ API не використовуються, Голос продовжує використовуватися, а також Модель, якщо з'єднання не вказує модель. Озвучення повідомлень має бути увімкнено.

Перед надсиланням сервер видаляє блоки коду, посилання, коди емодзі та форматування, а також обмежує текст 4000 символами. Він запитує аудіо у форматі MP3 і зберігає останні 64 результати в пам’яті, тому повідомлення, яке читають двічі, надсилається лише один раз.

Автоматичний переклад

Автоматичний переклад показує повідомлення каналу в рідній мові кожного читача. Налаштуйте його в Системна консоль › Конфігурація сайту › Локалізація, у розділі Автоматичний переклад:

НалаштуванняКлючТипове значення
УвімкнутиAutoTranslationSettings.EnableВимкнено
Провайдер перекладуAutoTranslationSettings.Providerconnection (відображається як «З'єднання з моделі (рекомендовано)», обирається, якщо нічого не встановлено), libretranslate, openai («Сумісний з OpenAI API, налаштовується тут») або agents («Служба застосунку AI-чат (старіший)»)
Дозволені мовиAutoTranslationSettings.TargetLanguagesen: мови, на які можна перекладати повідомлення
Час очікування перекладу (мс)AutoTranslationSettings.TimeoutMs5000
Restrict auto-translation on direct messages and group messagesAutoTranslationSettings.RestrictDMAndGMВимкнено

Кожен провайдер має власні поля:

  • З'єднання з моделі: загальносерверне з'єднання та його модель, та сама настройка, що й Автоматичний переклад у розділі AI › Вбудовані функції (AISettings.AutoTranslation). Спеціалізована модель перекладу є швидкою та точною; загальна LLM також працює.
  • LibreTranslate: API-адреса LibreTranslate та API-ключ LibreTranslate (AutoTranslationSettings.LibreTranslate.URL, .APIKey). Сервер LibreTranslate може працювати у вашій власній мережі.
  • Сумісний з OpenAI API: Базова URL API (включно з /v1; сервер використовує його endpoint для завершення чату), Модель та Ключ API (AutoTranslationSettings.OpenAI.URL, .Model, .APIKey). Непогано працює невелика модель перекладу, запущена локально.
  • Служба застосунку AI-чат (старіший): провайдер для серверів, налаштованих до 0.9.0, які використовували службу застосунку агентів. Тепер застосунок не потрібен: переклад виконується за допомогою з'єднання, обраного для автоматичного перекладу в AI › Вбудовані функції, або за допомогою з'єднання, скопійованого зі служби застосунку під час оновлення. Перейти на з'єднання з моделі переносить настройку на рекомендований провайдер.

Після увімкнення адміністратори каналу вмикають переклад для конкретного каналу в його налаштуваннях (Автоматичний переклад), а кожен учасник може відмовитися від нього через меню каналу (Перекласти повідомлення). У приватних та групових повідомленнях будь-який учасник може увімкнути переклад; якщо обмеження ввімкнено, переклад там недоступний. Перекладені повідомлення мітяться написом «Перекладено з …» з посиланням на оригінал.

Код, посилання, згадки та емодзі замінюються на заміни перед відправкою тексту, а потім відновлюються.

Куди йде які дані

ФункціяЩо надсилаєтьсяКуди
ПереписатиПовідомлення, яке пишеться, та обрана інструкціяЗ'єднання, обране для нього
ПідсумкиПовідомлення каналів у підсумку та інструкції користувачаЗ'єднання, обране для нього
Застосунки, що використовують з'єднання з моделіЩо надсилає кожен застосунок для користувачаЗ'єднання, якими може користуватися ця людина
АгентиЗапит, повідомлення обговорення або каналу, про які йдеться, інструкції агента, результати інструментів, зображення (якщо ввімкнено зоровий режим), а також ім’я, імя користувача, посада та мова користувача, який ставить запитAPI сервісу
Пошук за вбудованими векторамиКожне повідомлення (крім тих, що надсилають боти та системні повідомлення)API вбудованих векторів
Вбудовані інструменти та веб-пошукЗапити для пошуку, сторінки для отримання, кодПровайдер або пошукова система, яку ви обрали
Транскрипція дзвінківГолоси всіх, хто говорить, доки функція ввімкненаAPI розпізнавання мовлення
ОзвученняТекст повідомлення, яке озвучуєтьсяAPI тексту в мовлення або з'єднання, обране для нього
ПерекладТекст повідомлень у каналах з перекладомЗ'єднання з моделі, LibreTranslate або сумісний з OpenAI API

Щоб утримати всі дані в межах вашої мережі, спрямовуйте кожну функцію на сервери, які ви адмініструєте самостійно. Якщо використовуєте хмарного провайдера, перевірте його умови зберігання даних та повідомте користувачів, які функції надсилають їхні повідомлення назовні.

Вимкнення ШІ

Єдиного перемикача немає: у кожної функції є власний.

  • Rewrite and recaps: set them to Off in System Console › AI › Built-in features. People keep reading the recaps they already have.
  • З’єднання з моделями: видаліть з’єднання, щоб зупинити будь-яке його використання. Без з’єднання ні вбудовані функції, ні додатки не можуть використовувати ШІ через сервер.
  • Агенти: вимкніть додаток «Агенти» у Системна консоль › Плагіни › Керування плагінами. Це також прибере зведення дзвінків.
  • Транскрипція та живі субтитри: AM_CALLS_ENABLE_TRANSCRIPTIONS=false та AM_CALLS_ENABLE_LIVE_CAPTIONS=false (типові значення).
  • Прочитати вголос: вимкніть Озвучення повідомлень (AM_TEXTTOSPEECHSETTINGS_ENABLE=false, значення за замовчуванням), незалежно від того, чи використовується з’єднання.
  • Переклад: вимкніть автоматичний переклад (AM_AUTOTRANSLATIONSETTINGS_ENABLE=false, типове значення).

Вимкнення додатка «Агенти» не вимикає інші функції: вони використовують з’єднання з моделями або власні API.