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
- Utilisateur bot :
Recherche_sur_le_forum_bot(user_id=-1202) - LLM : qwen3-VL-8b (local, vanill.ddns.net:54321)
- Interface d’administration : ai-agents/5/edit
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
- Pour chaque requête, recherche uniquement à l’intérieur du forum (Search + Read + Researcher)
- Chaque fait est cité avec un lien vers le sujet/post
- À la fin de la réponse, demande : « Désirez-vous enrichir les résultats avec des informations provenant d’Internet ? »
- En cas d’approbation, utilise WebBrowser pour visiter les sites prioritaires :
- Répond en langue de la question
Comment utiliser
- Mentionner
@Recherche_sur_le_forum_botdans 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 :
- Créer un Google Custom Search Engine et obtenir la clé API + CX
- Configurer dans les paramètres AI
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