# AI-агент "Поиск по форуму": настройка семантического поиска и эмбеддингов **Category:** [Discourse](https://discuss.rabkesov.ru/c/discourse/12) **Created:** 2026-03-30 15:52 UTC **Views:** 27 **Replies:** 0 **URL:** https://discuss.rabkesov.ru/t/ai-agent-poisk-po-forumu-nastrojka-semanticheskogo-poiska-i-embeddingov/382 --- ## Post #1 by @system
## Что сделано Создан AI-агент **"Поиск по форуму"** (ID=5) для семантического поиска по материалам форума discuss.rabkesov.ru с возможностью обогащения результатов из интернета. ## Агент - **Бот-пользователь:** `Поиск_по_форуму_bot` (user_id=-1202) - **LLM:** qwen3-VL-8b (локальный, vanill.ddns.net:54321) - **Админка:** [ai-agents/5/edit](/admin/plugins/discourse-ai/ai-agents/5/edit) ### Инструменты | Инструмент | Назначение | Параметры | |---|---|---| | **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** для обхода приоритетных сайтов: - habr.com, meta.discourse.org, stackoverflow.com, github.com - kubernetes.io/docs, docs.ansible.com, wiki.archlinux.org 5. Отвечает на языке вопроса ### Как использовать - Упомянуть `@Поиск_по_форуму_bot` в любом топике - Отправить личное сообщение боту - Через [AI-бот conversations](/discourse-ai/ai-bot/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. Для полноценного поиска по интернету нужно: - Зарегистрировать [Google Custom Search Engine](https://programmablesearchengine.google.com/) и получить API key + CX - Прописать в [настройках AI](/admin/plugins/discourse-ai/settings?filter=google) ## Логи LLM-сервера Путь: `~/.lmstudio/server-logs/YYYY-MM/YYYY-MM-DD.N.log` - Ротация по месяцам в папках, внутри по дням - N - номер ротации за день - Пример: `~/.lmstudio/server-logs/2026-03/2026-03-30.1.log` --- **Canonical:** https://discuss.rabkesov.ru/t/ai-agent-poisk-po-forumu-nastrojka-semanticheskogo-poiska-i-embeddingov/382 **Original content:** https://discuss.rabkesov.ru/t/ai-agent-poisk-po-forumu-nastrojka-semanticheskogo-poiska-i-embeddingov/382