Discourse AI — AI-поиск

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

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

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

Возможности

  • Семантическое сходство текстов: выход за рамки простого совпадения ключевых слов и использование семантического анализа для поиска текстового сходства
  • Быстрый поиск с ИИ: автоматически добавляет результаты ИИ во всплывающее меню поиска, когда найдено мало обычных результатов (включается параметром ai_embeddings_semantic_quick_search_enabled)
  • Возможность включения/выключения поиска на базе ИИ в полном поиске по странице
  • Опциональная поддержка HyDE (Hypothetical Document Embeddings): использует большую языковую модель (LLM) для расширения запросов с целью улучшения результатов
  • Результаты обозначаются значком :sparkles:
  • Применяется как для анонимных, так и для авторизованных пользователей

Включение поиска на базе ИИ

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

Для использования поиска на базе ИИ необходимо настроить векторные представления (Embeddings). Большая языковая модель (LLM) требуется опционально, если вы включаете HyDE (Hypothetical Document Embeddings) для повышения качества поиска.

Векторные представления (Embeddings)

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

Большая языковая модель (LLM) (опционально — для HyDE)

LLM требуется только в том случае, если вы включаете параметр ai_embeddings_semantic_search_use_hyde, который использует LLM для создания гипотетического документа на основе поискового запроса перед его векторизацией. Это может улучшить качество результатов, но добавит задержку и затраты.

Для начала вы можете настроить их на странице настроек большой языковой модели (LLM) в Discourse AI.

Настройка

  1. Перейдите в АдминистрированиеПлагиныDiscourse AIВозможностиВекторные представления (Embeddings), чтобы найти все настройки поиска на базе ИИ.
  2. Включите ai_embeddings_enabled для векторных представлений.
  3. Включите ai_embeddings_semantic_search_enabled, чтобы активировать поиск на базе ИИ в полном поиске по странице.
  4. Опционально включите ai_embeddings_semantic_quick_search_enabled, чтобы добавить результаты ИИ во всплывающее меню поиска.
  5. Опционально включите ai_embeddings_semantic_search_use_hyde, чтобы использовать HyDE для улучшения результатов (требуется LLM).

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

Развернуть схему логики поиска на базе ИИ (с включённым HyDE)
mermaid height=255,auto
sequenceDiagram
    User->>+Discourse: Поиск "геймификация" 
    Discourse->>+LLM: Создать статью о "геймификации" на форуме о<br>  "Discourse, системе открытых интернет-форумов с открытым исходным кодом."
    LLM->>+Discourse: Геймификация включает применение элементов игрового дизайна, таких как<br> очки, значки, уровни и таблицы лидеров, в неигровых контекстах...
    Discourse->>+EmbeddingsAPI: Сгенерировать векторные представления для "Геймификация включает применение элементов игрового дизайна..."
    EmbeddingsAPI->>+Discourse: [0.123, -0.321...]
    Discourse->>+PostgreSQL: Дайте мне ближайшие темы для [0.123, -0.321...]
    PostgreSQL->>+Discourse: Темы: [1, 5, 10, 50]
    Discourse->>+User: Темы: [1, 5, 10, 50]

Как работает поиск на базе ИИ?

  • Когда HyDE включён (ai_embeddings_semantic_search_use_hyde), поисковый запрос обрабатывается LLM, которая создаёт гипотетическую тему/пост. Затем из этого гипотетического поста генерируются векторные представления, которые используются для поиска похожих совпадений на вашем сайте. Когда HyDE отключён (по умолчанию), поисковый запрос векторизируется напрямую и используется для поиска сходства. В обоих случаях результаты объединяются с обычными результатами поиска с помощью метода Reciprocal Rank Fusion (RRF) для повторного ранжирования лучших результатов.

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

  • Когда HyDE включён, данные, обработанные LLM, обрабатываются сторонним провайдером; пожалуйста, обратитесь к вашему конкретному провайдеру за подробностями. По умолчанию микросервис Embeddings работает на тех же серверах, что и серверы, размещающие ваши существующие форумы. Здесь не задействованы третьи стороны, и эта конкретная информация никогда не покидает вашу внутреннюю сеть в нашем виртуальном частном дата-центре.

Куда уходят данные?

  • Когда HyDE включён, гипотетическая тема/пост, созданная провайдером LLM, временно кэшируется вместе с векторными представлениями для этого документа. Данные векторных представлений хранятся в той же базе данных, где мы храним ваши темы, посты и пользователей; это просто ещё одна таблица данных там.

Как выглядит «семантическая модель» векторных представлений? Как она «обучалась», и можно ли проверить, что она точно применима к темам в наших «специализированных» сообществах?

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

Я заметил незначительную ошибку в интерфейсе для ai embeddings semantic search hyde model. Шаги для воспроизведения:

  1. Установите плагин AI Discourse.
  2. Откройте настройки → Настройка ключа Gemini.
  3. Включите i embeddings semantic search enabled.
  4. Для ai embeddings semantic search hyde model отображается Google - gemini-pro (не настроено).

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

2 лайка

Думаю, это ограничение страницы настроек нашего сайта, поэтому приношу извинения за это. Рад, что вам удалось это исправить.

1 лайк

Вопрос о семантике. В некоторых модулях ИИ я вижу упоминание использования Gemini, а в других — Gemini-Pro. Означают ли они разные модели (Gemini Nano, Pro и Ultra) или же речь идет об одной и той же большой языковой модели? Если это так, то что именно обозначает сам термин Gemini и имеет ли значение, есть ли у вас платная или бесплатная подписка на Gemini?

1 лайк

Существуют различные модели Gemini, включая те, на которые вы указали. В зависимости от той, что у вас есть (скорее всего, Pro, так как сейчас она бесплатна), вам нужно просто вставить ключ API в соответствующий параметр. Этот параметр предназначен для любой модели Gemini, которая у вас есть.

Это зависит от вас и от того, как вы планируете использовать Gemini, но в любом случае всё должно работать.

Подробнее об этом здесь:

1 лайк

Можно ли каким-то образом внедрить что-то в начальный промпт для LLM или манипулировать эмбеддингами до их передачи в обычный поиск?

Я пытаюсь повысить приоритет (или, возможно, отделить) ответы сотрудников (более авторитетные) от ответов сообщества.

2 лайка

В настоящее время мы не поддерживаем пользовательское внедрение запросов в LLM в рамках AI Search, хотя это может быть добавлено в будущем.

Рекомендую создать запрос на добавление функции (#feature request)!

2 лайка

Только начал пользоваться AI-поиском, и пока мне нравится. Не могу найти причин не использовать его всегда. Есть ли способ показывать только результаты AI (кроме использования CSS для скрытия .fps-result, но не .ai-result)?

Также, пожалуйста, расскажите подробнее, где найти быстрый поиск?

1 лайк

Привет! Это временно было доступно исключительно в Meta в рамках эксперимента. Я удалил эту информацию из первого сообщения — спасибо, что обратили на это внимание.

Мы используем Discourse Algolia Search для автодополнения поиска в заголовке. Можем ли мы продолжить использование Discourse AI — AI search?

Пост был разделён на новую тему: Не вижу панель настроек пользователя для Discourse AI