Agent IA «Recherche sur le forum» : configuration de la recherche sémantique et des embeddings

Ce qui a été fait

Un agent IA « Recherche sur le forum » (ID=5) a été créé pour la recherche sémantique dans les contenus du forum discuss.rabkesov.ru, avec la possibilité d’enrichir les résultats à partir d’Internet.

L’agent

Outils

Outil Fonction Paramètres
Search Recherche sémantique + mots-clés max_results=20, search_private=true
Read Lecture du contenu complet des sujets read_private=true
Researcher Analyse approfondie/synthèse sur plusieurs sujets max_results=10, LLM=qwen3-VL-8b
WebBrowser Navigation sur des pages web (pour l’enrichissement web) -

Comportement

  1. Pour chaque requête, recherche uniquement à l’intérieur du forum (Search + Read + Researcher)
  2. Chaque fait est cité avec un lien vers le sujet/post
  3. À la fin de la réponse, demande : « Désirez-vous enrichir les résultats avec des informations provenant d’Internet ? »
  4. En cas d’approbation, utilise WebBrowser pour visiter les sites prioritaires :
  5. Répond en langue de la question

Comment utiliser

  • Mentionner @Recherche_sur_le_forum_bot dans n’importe quel sujet
  • Envoyer un message privé au bot
  • Via AI-bot conversations

Remplacement du modèle d’embedding : nomic v1.5 → v2-moe

Problème

Le modèle nomic-embed-text-v1.5 regroupe les textes par langue, et non par sens. Test :

Paire Similarité cosinus
RU « vLLM configuration » ←→ EN « vLLM config » (même sujet) 0.634
RU « vLLM configuration » ←→ RU « recette de bortsch » (sujets différents) 0.650
Écart (séparation par sens) -0.016

Le texte russe sur vLLM est plus proche du texte russe sur la recette de bortsch que du texte anglais sur vLLM. La recherche sémantique sur un forum en russe avec ce modèle fonctionnait incorrectement.

Solution

Remplacement par nomic-embed-text-v2-moe (MoE, 8x277M, 512 MB Q8_0, 100+ langues). Résultat :

Paire v1.5 v2-moe
RU « vLLM » ←→ EN « vLLM » (même sujet) 0.634 0.924
RU « vLLM » ←→ RU « bortsch » (sujets différents) 0.650 0.163
Écart -0.016 +0.761

Paramètres d’embedding (finalisés)

Paramètre Valeur
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 (« Auteur du contenu »)
ai_embeddings_semantic_quick_search_enabled true

Le modèle nomic-embed-text-v2-moe doit être chargé en permanence dans LM Studio (~488 MB VRAM). Le backfill des embeddings est lancé automatiquement via Sidekiq après le changement de modèle.

Limite : recherche web

L’outil Google (recherche web complète) n’est pas disponible — ai_google_custom_search_api_key n’est pas configuré. L’agent utilise WebBrowser pour visiter des URL spécifiques. Pour une recherche web complète, il faut :

Logs du serveur LLM

Chemin : ~/.lmstudio/server-logs/YYYY-MM/YYYY-MM-DD.N.log

  • Rotation mensuelle dans des dossiers, puis par jour
  • N = numéro de rotation au sein du jour
  • Exemple : ~/.lmstudio/server-logs/2026-03/2026-03-30.1.log