Aller au contenu

Recherche

À quoi ça sert. La recherche a deux métiers. La requête de la barre supérieure trouve des hits sur le tableau, la mémoire, les documents et le code. Sources de recherche est où vous enregistrez ces arbres (un checkout Odoo par source) et les réindexez. Les épingles de conversation et de projet décident quel arbre un agent peut chercher, pour que les versions ne se mélangent pas en silence.

  • Un fichier, une note de mémoire ou un document, sans savoir quel module le tient.
  • Ajouter un checkout Odoo (ou n’importe quelle base de code) pour que les agents citent au lieu de deviner.
  • Plusieurs versions Odoo sont indexées et il faut épingler 18c vs 18e sur une conversation ou un projet.
  • Un agent a renvoyé needsPin — choisir des sources avant qu’il cherche.
  • Réindexer après un changement de l’arbre sur disque.
  1. Tapez dans la barre de recherche du shell (Search across all indexed sources…) ou ouvrez les résultats — c’est la recherche globale.
  2. Pour ajouter un arbre : Paramètres → Sources de recherche (barre latérale Paramètres, groupe Modules) — route /search-sources.
  3. Add Source (une racine absolue, Label p. ex. 18c, Family : odoo) → Create Source → Reindex jusqu’à ready.
  4. Sur le projet, cochez Default code sources ; ouvrez une conversation et confirmez l’onglet Sources. Les hits et citations doivent rester dans ces arbres.

Recherche globale (barre supérieure / page de résultats)

Section intitulée « Recherche globale (barre supérieure / page de résultats) »
CommandeSignification
Rechercher dans toutes les sources indexées…Zone de requête (aussi dans la barre de recherche du shell)
Liste de résultatsOccurrences sur le tableau, la mémoire, les documents, le code, …
Aucun résultat pour « … »Ensemble de résultats vide
Saisissez pour rechercher…Indication de requête vide
Pied de page N résultats dans M fichiersCompteurs agrégés
Sélectionnez un résultat pour afficher le fichierÉtat vide du volet d’aperçu
N lignesTaille de l’aperçu d’un fichier trouvé

Recherche hybride (comment fonctionne la recherche)

Section intitulée « Recherche hybride (comment fonctionne la recherche) »

EYAS fusionne le plein texte (FTS / Orama) avec un index vectoriel en mémoire (cosinus) via RRF (fusion de rangs réciproques) et des poids adaptatifs à la requête. Lorsque les plongements sont indisponibles, la recherche se dégrade en FTS uniquement (repli honnête — pas de résultats vides silencieux).

FonctionSignification
Plongement à l’indexationLes segments stockent des plongements lorsqu’un fournisseur d’embedding (Ollama / OpenAI, …) est configuré ; les vecteurs se rechargent au démarrage
Réutilisation par empreinte de contenuLa réindexation réutilise les plongements lorsque le contenu du segment est inchangé
CitationsLes résultats search_indexed destinés aux agents incluent un citationId / cite stables ([source:…]) afin que les réponses puissent citer les sources
list_search_sourcesOutil permettant aux agents de lister les sources configurées avant d’inventer des faits
AncrageLe critique de complétude attend des preuves de recherche pour les objectifs de recherche / implémentation à partir des sources — les agents doivent rechercher avant d’affirmer des faits

Ajoutez des bases de code et des documents sous Sources de recherche afin que les agents ancrent le travail dans votre matière plutôt que de deviner.


Route : /search-sources (Paramètres → Sources de recherche).
Sous-titre : Gérer les sources indexées pour la recherche sémantique et en plein texte.

Bonne pratique pour Odoo multi-version : enregistrez une source par dépôt (p. ex. Community 18, Enterprise 18, modules personnalisés). Ne versez pas plusieurs versions d’Odoo dans une seule liste de chemins.

Champ / commandeSignification
Compteurs sources / segments / collectionsStatistiques d’index
Ajouter une source / Nouvelle sourceFormulaire de création
NomNom affiché (p. ex. Odoo 18 Community)
TypeNature de la source (code, système de fichiers, …)
IndexeurPipeline (code pour les arborescences sources)
Chemins / URL (un par ligne)Préférez une racine absolue par source
LibelléCourt identifiant d’épingle multi-version (p. ex. 18c, 18e, eyssen-erp)
VersionChaîne de version libre (p. ex. 18, 19)
ÉditionÉdition libre (p. ex. community, enterprise)
FamilleUtilisez odoo pour les dépôts Odoo afin que la sécurité d’épinglage multi-version s’applique
Répertoires / motifs exclusIgnorer le bruit (i18n, static, node_modules, …). La famille odoo reçoit des défauts raisonnables si vide
Créer la sourcePersister (statut inactif jusqu’à réindexation)
Dernière indexationHorodatage de la dernière indexation réussie
RéindexerParcourir par lots de fichiers (le serveur reste réactif). Les fichiers inchangés sont ignorés selon mtime ; les plongements réutilisent les empreintes de contenu. Le nombre de segments se met à jour en direct tant que le statut est indexation. Les exécutions interrompues reprennent au prochain Réindexer.
Supprimer la sourceRetirer la source et ses segments

Les badges de la liste affichent libellé, version, édition, famille et le statut.

StatutSignification
inactifPas en cours / pas encore indexé
indexationParcours / plongement en cours — le nombre de segments augmente à mesure que les lots persistent
prêtInterrogeable
erreurLa dernière indexation a échoué — vérifier les journaux / chemins

Amorçage par variables d’environnement (facultatif)

Section intitulée « Amorçage par variables d’environnement (facultatif) »
EnvSignification
EYAS_ODOO_SOURCES_JSONPréféré : tableau JSON de { path, label?, version?, edition?, family?, name?, tags? } — crée des sources nommées inactives au démarrage si elles manquent
EYAS_ODOO_SOURCE_PATHSRacines séparées par deux-points ou points-virgules ; utilisées pour odoo_search_* léger et pour l’amorçage lorsqu’aucune source étiquetée n’existe encore

Après l’amorçage, ouvrez Sources de recherche et Réindexer chaque source.


Épinglage multi-version (quelle arborescence l’agent peut-il utiliser ?)

Section intitulée « Épinglage multi-version (quelle arborescence l’agent peut-il utiliser ?) »

Lorsque plusieurs sources de famille odoo sont prêtes, EYAS ne mélange pas silencieusement les versions. Ordre de résolution :

  1. Arguments d’outil explicites (sourceIds, labels, version, edition sur search_indexed / odoo_search_*)
  2. Épingle de conversation — Rail de contexte → onglet Sources (cases)
  3. Défaut du projet — Projets → Sources de code par défaut
  4. Type de projet indexed_sources (si défini)
  5. Repli — si un conflit multi-version demeure, les outils renvoient needsPin et listent les libellés disponibles

Sur une conversation ouverte, rail de contexte à droite :

Historique | Sources | Suite | Fichiers

CommandeSignification
Liste des sourcesToutes les sources de recherche (nom, libellé, version, statut, chemin, nombre de segments)
CasesSélection multiple des sources que cette conversation peut utiliser
Tout sélectionner / Effacer (auto)Épinglage / effacement en masse
Badge AutoPas d’épingle — défaut du projet / logique needsPin
N épinglée(s)Nombre d’épingles actives
Gérer les sources de recherche →Lien vers /search-sources

L’enregistrement met à jour searchContext: { sourceIds: […] } sur la conversation. Les agents appellent get_search_context / set_search_context pour la même épingle.

Sous Projets → modifier le projet → Sources de code par défaut :

CommandeSignification
CasesSources de recherche à épingler par défaut pour ce projet
N sélectionnée(s) / EffacerRésumé et réinitialisation

Appliqué automatiquement lorsque :

  • Vous créez une conversation dans ce projet (Tableau ou nouveau chat avec projet)
  • Vous changez le champ Projet d’une conversation (sauf si vous envoyez un searchContext explicite dans la même mise à jour)

Vous pouvez toujours surcharger par conversation dans l’onglet Sources.

OutilRôle
list_search_sourcesLister les sources (libellé, version, famille, chemins, statut)
get_search_contextÉpingle active pour cette conversation
set_search_contextÉpingler / effacer (labels, sourceIds, version, edition, ou clear: true)
search_indexedRecherche hybride — respecte l’épingle ; les filtres facultatifs surchargent
odoo_search_model / field / xml_idBalayage Odoo local sur les racines épinglées uniquement ; cite [source:odoo-src:label:file:line]