ИИ
Функции ИИ 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) с использованием одного ключа шифрования. Резервная копия базы данных сама по себе не раскрывает их. Сервер ищет ключ в следующем порядке:
- Переменная
AM_AI_ENCRYPTION_KEY: 32 случайных байта в base64. Создайте её с помощьюopenssl rand -base64 32. - Иначе — файл
ai-encryption.keyв корне каталога данных сервера (FileSettings.Directory, по умолчанию./data/). Сервер создаёт его при первом подключении, которое в нём нуждается, с правами на чтение только для себя. Приложения, экспорты и архивы файлов не могут его прочитать.
Когда нужно задать переменную:
- В 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) включено по умолчанию. Его настройка состоит из двух шагов: добавьте сервис (подключение к поставщику моделей), а затем создайте агентов (ботов, использующих сервис).

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_ENABLE | true (по умолчанию выключено) |
| Базовый URL API | TextToSpeechSettings.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 | Один из голосов модели или пустое значение для использования голоса по умолчанию. |
| Ключ API | TextToSpeechSettings.APIKey, AM_TEXTTOSPEECHSETTINGS_APIKEY | Отправляется как bearer-токен. Оставьте пустым, если API не требует ключа. |
Чтобы использовать подключение к модели вместо адреса и ключа, указанных выше, выберите его для Синтез речи в разделе ИИ › Встроенные функции. На этой странице будет указано, что сообщения озвучиваются с помощью этого подключения: Базовый URL API и Ключ API не используются, Голос по-прежнему применяется, а также Модель, если подключение не указывает конкретную модель. Параметр Озвучивать сообщения должен оставаться включённым.
Перед отправкой сервер удаляет блоки кода, ссылки, коды эмодзи и разметку, сохраняя не более 4000 символов. Он запрашивает аудио в формате MP3 и хранит последние 64 результата в памяти, поэтому сообщение, озвученное дважды, отправляется только один раз.
Автоматический перевод
Автотрансляция отображает сообщения канала на языке каждого читателя. Настройте её в Системная консоль › Настройки сайта › Локализация, в разделе Автотрансляция:
| Параметр | Ключ | Значение по умолчанию |
|---|---|---|
| Включить | AutoTranslationSettings.Enable | выключено |
| Поставщик перевода | AutoTranslationSettings.Provider | connection (отображается как «Подключение к модели (рекомендуется)», выбирается по умолчанию, если ничего не задано), libretranslate, openai («Совместимый с OpenAI API, настраивается здесь») или agents («Служба приложения ИИ-чата (устаревшее)») |
| Допустимые языки | AutoTranslationSettings.TargetLanguages | en: языки, на которые можно переводить сообщения |
| Тайм-аут перевода (мс) | AutoTranslationSettings.TimeoutMs | 5000 |
| Restrict auto-translation on direct messages and group messages | AutoTranslationSettings.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.