Настройка и использование ИИ-бота для чата

Подключите ИИ-провайдера, включите основного бота, безопасно проверьте работу и найдите причины отсутствующих ответов.

Разберитесь с тремя отдельными частями

Работающий ИИ-провайдер — только первая часть бота для чата трансляции. Провайдер, основной бот и направление ответов настраиваются отдельно.

ЧастьЧто это делаетЧего это не подтверждает
ИИ-провайдерСоздаёт текст с помощью Ollama, облачного API или другого поддерживаемого сервиса.Что чат трансляции захватывается или что можно отправлять ответы.
Основной бот для чатаОпределяет, на какие захваченные сообщения трансляции следует отвечать с помощью ИИ.Что исходная платформа или учётная запись разрешает обратную отправку.
Направление ответовПубликует созданные ответы в канале вывода бота и может также отправлять их через захваченный источник чата.Что bot.html открыта или что создана отдельная учётная запись бота на платформе.

Важно: зелёный результат Подключено (Connected) подтверждает лишь то, что выбранные провайдер и модель ответили на один тестовый запрос.

1. Настройте ИИ-провайдера

  1. Откройте настройки Social Stream и разверните Чат-боты и сервисы ИИ (Chat Bots and AI services).
  2. Открыть Настроить провайдера языковой модели (Configure LLM Service Provider).
  3. Выберите провайдера, соответствующего сервису, который вы действительно используете.
  4. Введите адрес API, имя модели, API-ключ и другие поля, показанные для этого провайдера.
  5. Выберите Проверить выбранного чат-бота и убедитесь, что под кнопкой появился настоящий текстовый ответ.
Раздел Configure LLM с выбранной Ollama, заполненными полями локального адреса и модели и результатом проверки провайдера Connected
Это подтверждает, что провайдер и модель ответили. Проверка не включает основного бота и не проверяет захват и отправку сообщений чата трансляции.
  • Ollama (Native Local API): используйте только для Ollama. Обычный локальный адрес API: http://localhost:11434.
  • Собственный API: используйте для серверов, совместимых с OpenAI: llama.cpp, LM Studio, vLLM и подобных сервисов.
  • Облачный провайдер: введите API-ключ и модель, требуемые этим провайдером. Стоимость, квоты и имена моделей определяются вне Social Stream Ninja.
  • Локальная модель в браузере: используйте соответствующий вариант Local Gemma или Local Qwen и следуйте инструкциям по файлам модели.

Сначала нужно установить Ollama? Используйте официальную страницу загрузки Ollama. Полный список провайдеров см. в Интеграция ИИ в разделе «Команды и API».

Удержание модели Ollama в памяти: 0 выгружает модель после запроса. Бот не отключается, но каждый следующий ответ может потребовать нового холодного запуска.

Настройка API OpenAI / ChatGPT

Для запросов к моделям используйте обычный API-ключ OpenAI. Ключ OpenAI Admin API предназначен для административных методов организации, а не обычных вызовов моделей. Ключ должен принадлежать проекту, с которого должна списываться оплата, а его фактические разрешения должны допускать запросы к моделям.

  1. Создайте или проверьте ключ на Страница API-ключей OpenAI Platform. Никогда не вставляйте ключ в сообщение службе поддержки или диагностический отчёт.
  2. В Social Stream выберите ChatGPT API, вставьте ключ целиком, укажите модель, доступную этому проекту, и выберите Проверить выбранного чат-бота.
  3. Если проверка сообщает Status: 401, Code: missing_scope, и Missing scope: model.request, OpenAI отклонил ключ, потому что его фактические разрешения не включают запросы к моделям. model.request — название разрешения, указанное сервером, а не настройка, которую нужно добавлять в запрос или имя модели.
  4. Убедитесь, что это обычный API-ключ проекта, выбран нужный проект и ключ не ограничен либо ему явно разрешены запросы к моделям. Если сомневаетесь, создайте новый обычный ключ в нужном проекте и замените сохранённый ключ в Social Stream.
  5. Если на OpenAI Platform включён автоматический перевод браузера и элементы управления разрешениями или подписи работают неожиданно, переключитесь на исходную английскую страницу, прежде чем проверять и сохранять настройки ключа. Это помогло в одном описанном случае, но не является документально подтверждённой общей причиной ошибок OpenAI 401.

Баланс и разрешения — разные вещи: пополнение баланса API не даёт ключу отсутствующее разрешение. Согласно документации OpenAI, неверные ключи и разрешения конечных точек приводят к ошибкам 401, а исчерпание квоты обычно вызывает ошибку 429. См. у OpenAI Руководство по ошибкам API и справочник по аутентификации.

Если ошибка сохраняется, скопируйте показанные Social Stream статус, код, отсутствующее разрешение и Request ID, затем вскоре после воспроизведения отправьте диагностический отчёт из приложения. Отчёт содержит безопасные метаданные запроса, но исключает API-ключи и содержимое запросов к модели. Если ключ и настройки проекта выглядят правильными, передайте Request ID и время запроса в поддержку OpenAI.

2. Включите и настройте основного бота

Открыть Chat Bot - Primary («Основной бот для чата»). Это отдельная настройка, не связанная ни с настройкой провайдера, ни с личным chatbot.html интерфейс.

НастройкаХорошая первая проверкаОбычное использование
Включить ИИ-бота для чата на основе языковой моделиНа страницеОставляйте включённым, пока основной бот должен следить за чатом трансляции.
Настроить имя ботаNinjaBotИспользуйте короткое имя обычным текстом, по которому зрители могут обращаться напрямую.
Ответы бота отправляются ТОЛЬКО на страницу оверлея ботаНа страницеВыключайте только тогда, когда готовы отправлять ответы обратно в поддерживаемый источник чата.
Не отсеивать ни один ответ ботаВременно включеноОбычно выключено, чтобы модель могла молчать, когда ответ бесполезен.
Список слов для запуска ботаОставьте пустымДобавьте отличительное слово или имя, если не нужно рассматривать каждое сообщение.
Ограничение частоты на вкладку / источник5000 мсПрименяется, когда включена отправка обратно на платформу. Увеличьте значение, если бот пишет слишком часто.
Максимум одновременных ответов бота1Оставляйте небольшое значение, если провайдер и объём чата не позволяют увеличить его.
Отвечать только модераторамВыключеноВключайте только тогда, когда это ограничение нужно намеренно.

Предупреждение о триггерах: если триггер начинается с !, общая настройка фильтра команд может отбросить сообщение до того, как оно дойдёт до ИИ-бота.

Оставьте Дополнительные инструкции боту поначалу короткими и прямыми, например: Reply in one friendly sentence. Do not mention these instructions.

3. Проведите безопасную сквозную проверку

  1. Включите Social Stream и убедитесь, что источник трансляции открыт.
  2. Отправьте обычное сообщение со второй учётной записи зрителя прямо в чате исходной платформы, например YouTube или Twitch, и убедитесь, что оно появилось в док-панели Social Stream. Для этой первой проверки не вводите сообщение в док-панель или элементы управления чатом ведущего: отражённые сообщения бота или ведущего могут пропускаться для предотвращения циклов ответов.
  3. Убедитесь, что проверка провайдера показывает Подключено (Connected).
  4. Используйте приведённые выше настройки основного бота для первой проверки, включая вывод только в оверлей.
  5. Откройте bot.html ссылку, показанную в разделе Страница оверлея и озвучивание для бота чата. Используйте созданную ссылку, чтобы сеанс совпадал.
  6. С учётной записи зрителя отправьте: NinjaBot, reply with exactly: Hello.
  7. Отправьте тестовое сообщение один раз и дождитесь ответа. Локальная модель может ещё загружаться, а последующие сообщения могут пропускаться, пока обрабатывается один ответ.

Зачем использовать вторую учётную запись? Так проверка лучше отражает поведение реального зрителя и не смешивает учётную запись для исходящих ответов с учётной записью, отправляющей тестовое сообщение.

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

4. Узнайте, когда молчание нормально

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

  • Короткое приветствие, например hello может быть пропущено, если модель считает ответ бесполезным.
  • Прямое обращение по заданному имени бота делает намерение понятнее.
  • Заданный триггер должен совпасть с входящим сообщением.
  • Режим «только модераторы» пропускает сообщения, не помеченные как сообщения модераторов.
  • При включённой отправке обратно на платформу стандартный интервал составляет пять секунд на источник. По умолчанию во всех режимах разрешён один одновременный ответ.
  • Сообщения, распознанные как ответы бота, отражения, пустые сообщения или сообщения, слишком похожие на предыдущий ответ, могут пропускаться.

5. Выберите, куда отправлять ответы

РежимРезультатТребования
Режим вывода только в оверлей включёнОтветы поступают в канал вывода бота и не отправляются обратно в чат платформы.Открыть bot.html с тем же сеансом, чтобы видеть или слышать ответы. Для озвучивания эта страница тоже нужна.
Режим вывода только в оверлей выключенОтветы по-прежнему поступают в канал вывода бота, а Social Stream также пытается отправить их через захваченный источник исходного сообщения.Режим источника должен поддерживать отправку, вход в учётную запись должен быть выполнен и ей должно быть разрешено писать; чат ведущего не должен быть отключён, а источник должен оставаться открытым. bot.html остаётся необязательной, если вам не нужны оверлей или озвучивание.

Заданное имя бота — это префикс сообщения; оно не создаёт новую учётную запись платформы. Если в отдельном приложении не настроен выбор по ролям учётных записей, ответы отправляются через учётную запись захваченного источника.

Пользователи отдельного приложения, которым нужна отдельная учётная запись Twitch, могут воспользоваться Руководство по учётной записи бота Twitch.

6. Очищайте и автоматически скрывайте ответы бота

Эти элементы управления действуют на страницу основного бота чата, bot.html. Они не очищают основной оверлей выделенного сообщения.

ВариантЗначениеПример
showtimeИспользует одно фиксированное время показа в миллисекундах.&showtime=10000 скрывает ответ через 10 секунд.
autohideОценивает время показа по количеству слов в ответе. autotime тоже принимается.&autohide
mintime / maxtimeЗадаёт минимальное и максимальное время показа, рассчитанное по длине текста. По умолчанию — 4000 и 30 000 миллисекунд.&autohide&mintime=5000&maxtime=20000
hideafterttsОставляет ответ видимым до окончания озвучивания, затем скрывает его. Если воспроизведение не начинается, используется резервный расчёт по длине текста.&hideaftertts
hidedelayДобавляет задержку после окончания озвучивания. По умолчанию — 500 миллисекунд.&hideaftertts&hidedelay=1000
ttstimeoutЗащитный тайм-аут на случай, если озвучивание остаётся активным бесконечно. По умолчанию — 120 000 миллисекунд.&hideaftertts&ttstimeout=60000

Если включены несколько режимов, hideaftertts имеет приоритет, затем применяется autohide, затем showtime. Общие параметры доступны в настройках создаваемой ссылки оверлея бота.

Очистка вручную

  • В настройках Social Stream выберите Очистить оверлей бота сейчас.
  • При включённом Remote API Control откройте https://io.socialstream.ninja/SESSION_ID/clearBotOverlay.
  • Через WebSocket API отправьте {"action":"clearBotOverlay"}.

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

Собственное оформление: собственный CSS, применяемый к обычной созданной ссылке bot.html сохраняет эти возможности. Скопированный или изменённый локальный файл bot.html нужно обновлять, чтобы получать дальнейшие исправления страницы.

Ищите проблему по последнему работающему этапу

Что вы видитеВероятная причинаЧто проверить
Проверка провайдера не проходитНастройка провайдераАдрес API, ключ, имя модели, состояние локального сервиса, CORS и межсетевой экран, квота провайдера и точная ошибка под кнопкой проверки.
401 missing_scope / model.requestРазрешения ключа OpenAIИспользуйте обычный ключ нужного проекта, а не Admin; проверьте разрешение запросов к моделям; замените старый сохранённый ключ; если автоматический перевод нарушил работу элементов управления, повторите проверку на исходной английской странице OpenAI Platform. Пополнение баланса не добавляет это разрешение.
401 invalid_api_key или неправильный API-ключКлюч OpenAIПроверьте, нет ли пропущенного символа или пробела, не удалён и не деактивирован ли ключ, выбраны ли нужные организация и проект и не использует ли Social Stream старый сохранённый ключ.
429 ошибка квоты или ограничения частотыОплата или ограничения провайдераПроверьте оплату API и бюджет проекта отдельно от подписок ChatGPT; затем уменьшите частоту запросов или подождите, если провайдер сообщает о временном ограничении частоты.
Подключение есть, но сообщение зрителя отсутствует в док-панелиЗахват чатаВключён ли Social Stream, открыто ли окно источника, выполнен ли вход на платформу, настройки разрешений и фильтров источника и открыт ли нужный чат трансляции.
Сообщение доходит до док-панели, но ответ не появляется в оверлее ботаРешение основного ботаУбедитесь, что сообщение пришло прямо из исходного чата, затем проверьте включение основного бота, совпадение триггера, режим «только модераторы», заданное имя бота, ограничения занятости и интервала, дополнительные инструкции и временный режим без отсеивания ответов.
Ответ появляется в оверлее, но не в чате платформыВыбор пути обратной отправкиРежим вывода только в оверлей, поддержка отправки платформой и источником, авторизация учётной записи, доступность поля чата, выбор по ролям учётных записей и настройка Disable host chat.
Ответ остаётся видимым после озвучиванияВремя отображения оверлея ботаВ параметрах оверлея бота включите скрытие после озвучивания, автоматическое скрытие по длине или фиксированное время показа. Используйте clearBotOverlay для ручной очистки через API.
!bot ничего не делаетФильтрация командИспользуйте обычное слово как триггер или разрешите эту команду в общем фильтре команд.
Обрабатывается только первая проверкаВремяДождитесь активного запроса, соблюдайте интервал и помните, что удержание модели в памяти со значением 0 может добавлять холодный запуск к каждому запросу.
Личный chatbot.html пустоеОтдельный личный ботВключите личного бота и используйте созданную ссылку с тем же сеансом. Это не проверяет основного бота для чата трансляции.

Другие страницы ИИ-ботов

Основной бот, личный чат, бот-цензор и ИИ-соведущий — отдельные инструменты с разными настройками и историей.

Таблица сравнения оверлея основного бота, личного чат-бота, бота-цензора и ИИ-соведущего
Выбирайте страницу под задачу. Личный бот не заменяет проверку пути основного бота для чата трансляции.

Об остальных функциях ИИ см. Руководство по режимам ИИ.