ИИ

Функции ИИ Antimatter используют модели на ваш выбор: облачного провайдера или сервера в вашей собственной сети. Ничего не отправляется никуда, пока вы не настроите модель. На этой странице описаны соединения с моделями, каждая функция, данные, которые она отправляет, и способ её отключения.

Функции ИИ

ФункцияНастраивается вТип моделиВключена по умолчанию
Переписывание в поле ввода: улучшите, сократите, исправьте или переведите сообщение перед отправкойИИ › Встроенные функции, с соединением с модельюМодель для чата (LLM)нет
Краткие сводки: резюме каналов, которые выбирают пользователиИИ › Встроенные функции, с соединением с модельюМодель для чата (LLM)нет
Автоматический перевод каналовНастройки сайта › ЛокализацияСоединение с моделью, LibreTranslate или API, совместимый с OpenAIнет
ОзвучиваниеИнтеграции › Синтез речи, при необходимости с соединением с модельюСинтез речи, совместимый с OpenAIнет
Агенты ИИ: чат с ботом, краткие сводки обсуждений, резюме звонковПриложение AgentsЛюбая служба большой языковой модели (LLM)Приложение включено, но не выполняет никаких действий, пока вы не добавите службу
Транскрипция звонков и субтитры в реальном времениПриложение CallsРаспознавание речи, совместимое с OpenAIнет

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

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

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

Соединение с моделью — это провайдер ИИ, к которому может обращаться Antimatter: его адрес, ключ и модели. Вы добавляете его один раз, а затем выбираете для каждой функции, которая должна его использовать. Существует два вида:

  • Соединения для всего сервера, которые администраторы системы управляют в Системная консоль › ИИ › Соединения с моделями. Только они могут обслуживать встроенные функции. Приложения также могут использовать их для тех, кому это разрешено.
  • Соединения сообщества, которые администраторы сообщества добавляют для своего сообщества в его настройках (см. ниже). Приложения используют их для участников сообщества. Они никогда не обслуживают встроенные функции.

Раздел ИИ в Системной консоли отображается тем, кто может управлять соединениями для всего сервера: по умолчанию — администраторам системы. Страница Соединения с моделями в этом разделе содержит список соединений для всего сервера и соединений всех сообществ.

Добавить соединение

В Системная консоль › ИИ › Соединения с моделями нажмите Добавить соединение, затем заполните форму:

ПолеЧто указать
ПресетыЗаполняет провайдера и адрес хорошо известной службы: OpenAI, Mistral, Gemini, OpenRouter или Ollama и LiteLLM на самом сервере. Необязательно.
ИмяИмя, которое администраторы видят при выборе, например «OpenAI компании».
ПровайдерСовместимый с OpenAI (большинство провайдеров, шлюзов и серверов моделей, которые вы запускаете сами) или Anthropic. Облачные службы с собственной системой входа, такие как AWS Bedrock, Google Vertex AI или Azure с Entra ID, подключаются через их конечную точку, совместимую с 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.

При удалении подключения его ключ стирается. Функции, которые его использовали, перестанут использовать ИИ, пока вы не выберете другое подключение.

Лимиты и бюджеты

Для каждого подключения заданы четыре лимита. Пустое значение или 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. Добавьте службу

Перейдите в Системная консоль › Плагины › Агенты и, в разделе Сервисы ИИ, нажмите Добавить сервис ИИ. Выберите Тип сервиса:

  • 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: также URL API).

Затем задайте Модель по умолчанию (список, если провайдер сообщает о доступных моделях, иначе введите название вручную), а также, если провайдер не предоставляет эти данные, Лимит входных токенов и Лимит выходных токенов. Резервный сервис может взять на себя работу, если этот сервис не отвечает. Сохраните изменения.

Сервер выполняет эти запросы самостоятельно, поэтому он должен иметь доступ к API: к серверу моделей в том же compose-проекте, в вашей сети или в интернете. Исходящие запросы учитывают переменные HTTP_PROXY и HTTPS_PROXY.

2. Создание агентов

Агенты создаются на странице Агенты веб-приложения: откройте её через Управление в селекторе агентов на панели Агентов (в классическом интерфейсе — также из меню продукта). Адрес страницы: https://chat.example.com/plug/mattermost-ai/agents. У каждого агента есть Отображаемое имя, Agent Username (имя, по которому его упоминают), Service и, при необходимости, модель, Custom Instructions, а также переключатели Enable Vision (изображения) и Enable Tools. Вкладка Доступ ограничивает, в каких каналах и какими пользователями агент может использоваться. В Системной консоли, в разделе AI Functions, параметр Default bot определяет, какой агент используется по умолчанию, когда агент не выбран явно, например, для создания кратких итогов звонков.

По умолчанию каждый пользователь может создавать собственных агентов с использованием настроенных вами сервисов. Чтобы ограничить эту возможность администраторами, удалите разрешение Собственные ИИ-агенты из роли участников в Системная консоль › Управление пользователями › Разрешения.

Дополнительные возможности приложения «Агенты»

  • Поиск на основе векторных представлений (экспериментальная функция, отключена): семантический поиск по сообщениям. Для её работы требуется PostgreSQL с расширением pgvector и моделью векторных представлений (OpenAI или совместимая с OpenAI). Каждое сообщение, включая сообщения в закрытых каналах и личных сообщениях, отправляется в модель векторных представлений.
  • Веб-поиск (выключен): позволяет агентам искать информацию в интернете через Google, Brave или собственный сервер SearXNG.
  • Встроенные инструменты: при наличии поддержки у провайдера агенты могут использовать собственный веб-поиск провайдера (включён по умолчанию для новых агентов, если поддерживается), загрузку веб-страниц и выполнение кода. Эти инструменты выполняются на стороне провайдера. Их можно отключить для каждого агента отдельно.
  • Протокол контекста модели (MCP): подключение агентов к доверенным MCP-серверам для получения дополнительных инструментов.
  • Debug: 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Отправляется как bearer-токен. Оставьте пустым, если API не требует ключа.

Чтобы использовать подключение к модели вместо адреса и ключа, указанных выше, выберите его для Синтез речи в разделе ИИ › Встроенные функции. На этой странице будет указано, что сообщения озвучиваются с помощью этого подключения: Базовый URL API и Ключ API не используются, Голос по-прежнему применяется, а также Модель, если подключение не указывает конкретную модель. Параметр Озвучивать сообщения должен оставаться включённым.

Перед отправкой сервер удаляет блоки кода, ссылки, коды эмодзи и разметку, сохраняя не более 4000 символов. Он запрашивает аудио в формате MP3 и хранит последние 64 результата в памяти, поэтому сообщение, озвученное дважды, отправляется только один раз.

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

Автотрансляция отображает сообщения канала на языке каждого читателя. Настройте её в Системная консоль › Настройки сайта › Локализация, в разделе Автотрансляция:

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

У каждого провайдера есть свои поля:

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

После включения этой функции администраторы каналов активируют перевод в настройках канала (Автотрансляция), а каждый участник может отключить его через меню канала (Перевести сообщения). В личных и групповых сообщениях любой участник может включить перевод; если ограничение включено, перевод в них недоступен. Переведённые сообщения отображают надпись «Переведено с …» со ссылкой на оригинал.

Код, ссылки, упоминания и эмодзи заменяются на плейсхолдеры перед отправкой текста и восстанавливаются после.

Куда передаются данные

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

Чтобы все данные оставались в вашей сети, направьте каждую функцию на серверы, которые вы управляете самостоятельно. При использовании облачного провайдера проверьте условия хранения данных и сообщите пользователям, какие функции отправляют их сообщения наружу.

Отключение ИИ

Единого переключателя нет: у каждой функции есть свой.

  • Переписывание и краткие изложения: установите значение Выкл в Системная консоль › ИИ › Встроенные функции. Пользователи продолжают читать уже созданные краткие изложения.
  • Подключения к моделям: удалите подключение, чтобы прекратить любое его использование. Если подключений нет, ни встроенные функции, ни приложения не могут использовать ИИ через сервер.
  • Агенты: отключите приложение «Агенты» в Системная консоль › Плагины › Управление плагинами. Это также удалит краткие изложения звонков.
  • Транскрипция и субтитры: AM_CALLS_ENABLE_TRANSCRIPTIONS=false и AM_CALLS_ENABLE_LIVE_CAPTIONS=false (значения по умолчанию).
  • Озвучить: отключите Озвучивать сообщения (AM_TEXTTOSPEECHSETTINGS_ENABLE=false, значение по умолчанию), независимо от того, используется ли подключение.
  • Перевод: отключите автоперевод (AM_AUTOTRANSLATIONSETTINGS_ENABLE=false, значение по умолчанию).

Отключение приложения «Агенты» не отключает другие функции: они используют подключения к моделям или собственные API.