AI Chat — Guide utilisateur | YoBench
Comment utiliser le module « AI Chat » dans YoBench : fournisseurs OpenAI/Claude/YandexGPT/LLM locaux, streaming, system prompt, RAG, tool use.
À quoi sert le module « AI Chat »
Le module est l'endroit unique pour discuter avec l'IA dans YoBench. Connectez OpenAI, Anthropic Claude, YandexGPT ou n'importe quel LLM local compatible OpenAI (LM Studio, Ollama, vLLM, llama.cpp), menez plusieurs conversations en parallèle, attachez-leur des contextes RAG et laissez le modèle utiliser une boîte à outils de production — navigateur, terminal, système de fichiers, recherche web et génération de Word / Excel / PowerPoint / PDF — sous votre contrôle, avec des permissions explicites.
Ce que vous obtenez :
- Cœur IA orienté agent — l'assistant fonctionne comme un agent avec des dialogues de permission explicites, une chronologie d'exécution unifiée et un journal de chat structuré qui prend en charge filtrage et export.
- Boîte à outils de production — générez et éditez des documents Word, Excel, PowerPoint et PDF, extrayez des images, pilotez un terminal et un système de fichiers durcis et multiplateformes (classification des chemins, résolution des liens symboliques, protection SSRF).
- Recherche web modulaire — Brave, DuckDuckGo ou Tavily comme moteur de recherche, commutable par espace de travail.
- Expérience vocale unifiée — un seul bouton micro plus deux interrupteurs. TTS en streaming par phrases, détection automatique de la langue (en/ru/de/fr/pt/es), redémarrage automatique du micro pour un dialogue mains libres.
- L'annulation comme issue de premier ordre — Cancelled by user est affiché distinctement des erreurs dans la chronologie et les logs, avec un nettoyage propre des outils de longue durée.
- Support de la vision — les résultats d'outils porteurs d'images (captures d'écran, images extraites) sont visibles par l'assistant au tour suivant.
- Conversations parallèles — chacune avec son fournisseur, modèle, system prompt, contexte RAG.
- Réponses en streaming — les tokens arrivent par chunks, pas à la fin.
- Contextes RAG — réponses depuis vos documents via recherche hybride (vector + BM25).
- Logs — chaque événement (requêtes LLM, streaming, exécution tools) est journalisé séparément, avec masquage des clés.
- Compaction de contexte — l'historique ancien est résumé automatiquement dans
context_summarypour ne pas saturer les tokens.
Fournisseurs supportés
Implémentés dans le code :
- OpenAI — API officielle via
OpenAIAdapter. - Anthropic Claude — via
ClaudeAdapter. - YandexGPT — via
YandexGPTAdapter. - LLMs locaux compatibles OpenAI — LM Studio, Ollama, vLLM, llama.cpp ; routés via
OpenAIAdapter.
Paramètres du fournisseur :
- API key — la clé.
- API URL — URL de base (optionnel, sinon défaut du fournisseur).
- Modèle — identifiant.
- Temperature — créativité (0–2, défaut 0.7).
- Max tokens — limite de tokens en sortie (défaut 4096).
- Frequency penalty — pénalité de répétition (0–2, défaut 0). Pour les LLMs locaux, 0.3–0.5 est conseillé.
- Presence penalty — pénalité de nouveau sujet (0–2, défaut 0).
- Proxy — optionnel, pour les requêtes sortantes.
Paramètres d'une conversation
À la création (chat_conversations) :
- Title — nom affiché ; peut être auto-généré depuis le premier message.
- Provider — quel fournisseur IA.
- System prompt — instructions pour le modèle.
- Temperature — surcharge la valeur globale.
- Tools enabled — tool use on/off.
- Max auto-iterations — combien d'itérations tool→résultat sont permises (défaut 3).
- Web search provider — fournisseur séparé pour la recherche web.
- Context — contexte RAG attaché depuis le Gestionnaire de contextes.
Les messages vivent dans chat_messages (role: user / assistant / system, content).
Tool use
Avec Tools enabled, le modèle fonctionne comme un agent et peut appeler les tools du ToolRegistry. Présents dans le code :
browser— actionsnavigate,click,fill,type,key,screenshot,wait_for_selector,wait_for_navigation,wait_for_url_change,evaluate,get_content,close. Chromium headless.terminal— exécution de commandes shell sur un shell durci et multiplateforme.file system— lecture / écriture / listing avec classification des chemins (project / system / user) et résolution des liens symboliques.web— opérations web via des adaptateurs de recherche modulaires (Brave, DuckDuckGo, Tavily) plus fetch.documents— génération et édition de Word (DOCX), Excel (XLSX), PowerPoint (PPTX) et PDF ; extraction d'images depuis les documents.
Flux : le modèle choisit tool__action → l'ExecutionEngine exécute → le résultat retourne dans le contexte → une itération supplémentaire peut se produire (jusqu'à max_auto_iterations).
Permissions
Les actions sensibles déclenchent un dialogue de permission explicite avant de s'exécuter :
- Écritures sur le système de fichiers en dehors du périmètre du projet.
- Commandes terminal jugées potentiellement destructrices.
- Requêtes réseau sortantes vers des domaines hors liste blanche.
Vous pouvez Allow once (autoriser une fois), Allow for this conversation (autoriser pour cette conversation) ou Deny (refuser). Les refus se traduisent par une issue cancelled propre — l'agent ne réessaie pas et la chronologie consigne la décision.
Annulation
L'annulation est une issue de premier ordre, distincte d'une erreur :
- Stoppez l'exécution à tout moment → la clé de scope est annulée, les outils de longue durée (browser, terminal) sont démontés proprement.
- La chronologie affiche
cancelleddistinct deerror, avec un motif (« Cancelled by user », « Permission denied », etc.). - Les logs préservent l'état partiel pour que vous puissiez reprendre là où vous en étiez.
Vision et résultats porteurs d'images
Les outils qui retournent des images (browser__screenshot, documents__extract_images) émettent des résultats d'outils porteurs d'images. Au tour suivant, l'assistant voit ces images en parallèle du texte, donc les modèles capables de vision peuvent raisonner sur les captures d'écran et figures extraites sans que vous n'ayez à les rejoindre manuellement.
Voix
L'expérience vocale est unifiée — un seul bouton micro plus deux interrupteurs pour lire les réponses à voix haute et mode auto-dialogue :
- TTS en streaming par phrases — la réponse du modèle commence à être lue dès que la première phrase est prête, sans attendre la fin.
- Détection automatique de la langue — en / ru / de / fr / pt / es. La voix s'adapte à votre langue sans sélection manuelle.
- Redémarrage automatique du micro — en mode auto-dialogue, le micro se réarme dès que l'assistant a fini de parler, pour garder la conversation en mains libres.
- Hors ligne par défaut — speech-to-text via Whisper, text-to-speech via Piper. Aucun service externe sauf si vous en branchez un explicitement.
Contexte RAG
Dans les réglages de la conversation, choisissez un contexte du Gestionnaire de contextes. Au premier message, le module récupère les chunks pertinents et les injecte dans le system prompt. Aux tours suivants, le retrieval ne se répète pas — le contexte est déjà présent.
Chaque session peut aussi basculer le mode de recherche :
- Rapide (par défaut) — la recherche hybride (vecteur + mot-clé) renvoie des résultats en une fraction de seconde.
- Précis — ajoute une étape de reranker après la recherche hybride. Plus lent, nettement meilleur sur les requêtes longues ou ambiguës.
Réglages globaux
Sous Réglages → AI Chat :
chatDefaultProviderId— fournisseur par défaut pour les nouvelles conversations.chatDefaultContextId— contexte RAG par défaut.chatDefaultSystemPrompt— system prompt par défaut.chatDefaultTemperature— temperature par défaut (0.7).chatDefaultToolsEnabled— tool use activé par défaut (défaut on).chatDefaultMaxAutoIterations— limite d'auto-itérations (défaut 3).chatDefaultWebSearchProviderId— fournisseur de recherche web.chatDefaultMaxTokens— limite de tokens en sortie (défaut 4096).chatDefaultFrequencyPenalty/chatDefaultPresencePenalty— pénalités (défaut 0).
Flux d'utilisation
1. Branchez un fournisseur
Dans Réglages → Fournisseurs ajoutez un fournisseur : type, API key, modèle, base URL et proxy optionnels.
2. Démarrez une conversation
- Ouvrez AI Chat depuis le menu de gauche.
- Cliquez sur Nouvelle conversation.
- Choisissez un fournisseur (ou utilisez le défaut).
- Optionnellement system prompt, temperature, contexte RAG.
3. Envoyez des messages
Tapez une requête → la réponse arrive en streaming. Activez/désactivez Tools enabled par conversation.
4. Joignez images et contextes
- Images — glissez dans le composer ; le base64 part dans la requête (le fournisseur doit supporter la vision).
- Contexte RAG — choisi dans les réglages de la conversation.
5. Contrôlez le tool use
Réglez Max auto-iterations dans les réglages. Le modèle peut appeler browser__navigate → terminal__run etc. Détails dans les Logs.
6. Examinez les logs
L'onglet Logs montre le flux d'événements : requêtes LLM, streaming, exécution tools, erreurs. Filtre par level, category. Les secrets (clés API, tokens Bearer) sont masqués automatiquement.
7. Gérez les conversations
- Renommer — auto-naming depuis le premier message, modifiable manuellement.
- Supprimer — retire la conversation et ses messages.
- Stopper la génération —
chat:stop-generationinterrompt le stream en cours.
Étapes suivantes
- Branchez les Contextes & RAG pour des réponses ancrées.
- Utilisez le Web Parser pour préparer des données que vous demanderez à l'IA.
- Pour l'écriture/édition de documents, l'assistant IA intégré dans Docs est plus rapide.
Aide et retour
Vous voulez Gemini, Mistral ou plus d'outils ? Contactez-nous via le formulaire de retour.