AI-агент "Поиск по форуму": настройка семантического поиска и эмбеддингов

Что сделано

Создан AI-агент “Поиск по форуму” (ID=5) для семантического поиска по материалам форума discuss.rabkesov.ru с возможностью обогащения результатов из интернета.

Агент

Инструменты

Инструмент Назначение Параметры
Search Семантический + keyword поиск max_results=20, search_private=true
Read Чтение полного содержимого топиков read_private=true
Researcher Глубокий анализ/синтез по нескольким топикам max_results=10, LLM=qwen3-VL-8b
WebBrowser Просмотр веб-страниц (для web enrichment) -

Поведение

  1. На каждый запрос ищет только внутри форума (Search + Read + Researcher)
  2. Каждый факт цитирует ссылкой на топик/пост
  3. В конце ответа спрашивает: “Желаете обогатить результаты информацией из интернета?”
  4. При подтверждении использует WebBrowser для обхода приоритетных сайтов:
  5. Отвечает на языке вопроса

Как использовать

  • Упомянуть @Поиск_по_форуму_bot в любом топике
  • Отправить личное сообщение боту
  • Через AI-бот conversations

Замена эмбеддинг-модели: nomic v1.5 → v2-moe

Проблема

Модель nomic-embed-text-v1.5 группирует тексты по языку, а не по смыслу. Тест:

Пара Cosine similarity
RU “vLLM настройка” ↔ EN “vLLM config” (одна тема) 0.634
RU “vLLM настройка” ↔ RU “рецепт борща” (разные темы) 0.650
Gap (разделение по смыслу) -0.016

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

Решение

Заменена на nomic-embed-text-v2-moe (MoE, 8x277M, 512 MB Q8_0, 100+ языков). Результат:

Пара v1.5 v2-moe
RU “vLLM” ↔ EN “vLLM” (одна тема) 0.634 0.924
RU “vLLM” ↔ RU “борщ” (разные темы) 0.650 0.163
Gap -0.016 +0.761

Настройки эмбеддингов (итоговые)

Параметр Значение
ai_embeddings_enabled true
ai_embeddings_selected_model 12 (nomic-embed-text-v2-moe)
ai_embeddings_semantic_search_enabled true
ai_embeddings_semantic_search_use_hyde true
ai_embeddings_semantic_search_hyde_agent -32 (“Автор контента”)
ai_embeddings_semantic_quick_search_enabled true

Модель nomic-embed-text-v2-moe должна быть загружена в LM Studio постоянно (~488 MB VRAM). Backfill эмбеддингов запускается Sidekiq автоматически после смены модели.

Ограничение: web search

Инструмент Google (полноценный web search) недоступен - ai_google_custom_search_api_key не настроен. Агент использует WebBrowser для обхода конкретных URL. Для полноценного поиска по интернету нужно:

Логи LLM-сервера

Путь: ~/.lmstudio/server-logs/YYYY-MM/YYYY-MM-DD.N.log

  • Ротация по месяцам в папках, внутри по дням
  • N - номер ротации за день
  • Пример: ~/.lmstudio/server-logs/2026-03/2026-03-30.1.log