Discourse AI - Связанные темы

:bookmark: Это руководство объясняет, как включить и настроить функцию «Связанные темы» для плагина Discourse AI.

:person_raising_hand: Требуемый уровень доступа пользователя: Администратор

Функция «Связанные темы» помогает пользователям находить релевантный контент, предлагая семантически схожие темы на основе той, которую они читают в данный момент. Это улучшает навигацию по контенту и повышает вовлечённость пользователей.

Возможности

  • Семантическое сходство текстов: Поиск действительно связанных материалов выходит за рамки простого совпадения ключевых слов.
  • Переключение между темами в разделах «Предложенные» и «Связанные».
  • Доступно как для анонимных, так и для авторизованных пользователей.

Включение функции «Связанные темы»

:information_source: Функция «Связанные темы» включена по умолчанию для всех клиентов Discourse с хостингом, у которых активирован плагин Discourse AI.

Предварительные требования

Для работы функции «Связанные темы» необходимы Embeddings.

Если вы используете наш хостинг, Embeddings предоставляются с использованием модели с открытым исходным кодом. Дополнительная настройка не требуется.

Для самостоятельно размещённых (self-hosted)实例 необходимо настроить модель embeddings через поддерживаемого провайдера.

Конфигурация

  1. Перейдите в раздел Администрирование → Плагины → Discourse AI → Возможности ИИ.
  2. Найдите модуль Embeddings и настройте его:
    • Установите ai_embeddings_selected_model в значение определения модели embeddings, которое вы настроили.
    • Включите параметр ai_embeddings_enabled, чтобы активировать Embeddings.
  3. Включите параметр ai_embeddings_semantic_related_topics_enabled, чтобы активировать функцию «Связанные темы».

Настройка модели embeddings

Перед включением embeddings необходимо настроить модель. Перейдите в раздел Администрирование → Плагины → Discourse AI → Embeddings, чтобы создать новое определение модели. Вы можете выбрать из нескольких предустановок:

  • Open AI: text-embedding-3-small или text-embedding-3-large (рекомендуется для большинства сайтов).
  • Google: gemini-embedding-001.
  • Hugging Face (собственный инференс): multilingual-e5-large (рекомендуется для сайтов на других языках или многоязычных сайтов), bge-large-en или bge-m3.

Вам потребуется предоставить API-ключ (или связать его с AI Secret) и URL-адрес конечной точки для выбранного провайдера.

Дополнительные настройки

Следующие настройки позволяют тонко настроить функцию «Связанные темы»:

  • ai_embeddings_semantic_related_topics: Максимальное количество тем, отображаемых в разделе «Связанные темы» (по умолчанию: 5).
  • ai_embeddings_semantic_related_include_closed_topics: Включать ли закрытые темы в результаты (по умолчанию: true).
  • ai_embeddings_semantic_related_age_penalty: Применять ли штраф к более старым темам, чтобы отдавать предпочтение новому контенту (по умолчанию: 0.0, диапазон: 0.0–2.0).
  • ai_embeddings_semantic_related_age_time_scale: Временной масштаб в днях для штрафа за возраст (по умолчанию: 365).

Технический FAQ

Развернуть, чтобы просмотреть схему архитектуры функции «Связанные темы»

Общий процесс выглядит следующим образом: при создании или обновлении темы происходит следующее:

sequenceDiagram
    User->>Discourse: Создаёт тему
    Discourse-->>Embedding Microservice: Генерирует embeddings
    Embedding Microservice-->>Discourse: 
    Discourse-->>PostgreSQL: Сохраняет embeddings 

А при посещении темы:

sequenceDiagram
    User->>Discourse: Посещает тему
    Discourse-->>PostgreSQL: Запрашивает ближайшие темы
    PostgreSQL-->>Discourse: 
    Discourse->>User: Отображает связанные темы 

Как работает функция «Связанные темы»?

  • Когда пользователь посещает тему, Discourse запрашивает базу данных на предмет наиболее семантически похожих тем на основе их векторных представлений (embeddings). Затем эти связанные темы отображаются пользователю, побуждая его к дальнейшему изучению контента сообщества.

Как обрабатываются данные тем/сообщений?

  • Для сайтов на хостинге Discourse данные обрабатываются в нашем защищённом частном дата-центре. Для самостоятельно размещённых сайтов обработка данных зависит от выбранного вами стороннего провайдера.

Где хранятся данные embeddings?

  • Данные embeddings хранятся в вашей базе данных Discourse наряду с другими данными форума, такими как темы, сообщения и пользователи.

Какие модели embeddings доступны?

  • Discourse AI поддерживает модели от OpenAI (text-embedding-3-small, text-embedding-3-large), Google (gemini-embedding-001), совместимые с Hugging Face конечные точки (bge-large-en, bge-m3, multilingual-e5-large) и Cloudflare Workers AI. Вы также можете настроить пользовательские модели embeddings через интерфейс администратора.
14 лайков