Skip to main content
L’outil rag_search est la pierre angulaire de la récupération d’information au sein de la plateforme UBIK. Il permet aux agents d’effectuer des recherches en Génération Augmentée par Récupération (RAG) à travers vos documents téléchargés. Contrairement à une recherche par mot-clé standard, cet outil utilise la compréhension sémantique pour trouver les “morceaux” (chunks) de texte les plus pertinents de votre base de connaissances et utilise un Grand Modèle de Langage (LLM) pour synthétiser une réponse précise basée sur ces faits.

Quand Utiliser Cet Outil

Utilisez rag_search lorsque vous avez besoin de :
  • Répondre à des questions spécifiques basées sur vos données privées (par ex., “Quelle est la politique de congés ?”).
  • Trouver des faits précis enfouis dans de grands documents.
  • Vérifier des informations par rapport à une source fiable.
  • Récupérer du contexte pour soutenir une conversation.
Cet outil est optimisé pour la précision de récupération et la génération ancrée. Il n’est pas destiné au traitement de documents entiers ou à la génération de résumés longs (utilisez information_analysis pour cela).

Paramètres d’Entrée

L’outil accepte les paramètres suivants :

Portée & Permissions

L’outil rag_search respecte automatiquement le contexte de sécurité de l’exécution :
  • Accès Utilisateur : Recherche les documents appartenant à l’utilisateur ou partagés avec lui via des espaces de travail.
  • Contexte de Session : Si exécuté au sein d’une session de chat, il inclut les documents attachés à cette session spécifique.
  • ID Externe : Pour les applications multi-tenants, il applique strictement les frontières external_user_id, garantissant que les utilisateurs ne voient jamais les données d’autres sous-utilisateurs.

Structure de Sortie

L’outil renvoie un objet structuré contenant la réponse, les preuves utilisées pour la générer et des métadonnées sur l’exécution.

Récupération des Détails des Chunks

La réponse de rag_search fournit des chunk_ids dans le tableau contexts. Vous pouvez utiliser ces identifiants pour récupérer des données de localisation précises pour le surlignage ou la navigation dans le document original via l’endpoint GET /chunks/{chunk_id}. La structure de la réponse s’adapte à la modalité du contenu (Texte/PDF vs Audio/Vidéo) :

Événements de Streaming

Lorsqu’il est utilisé en mode streaming, l’outil rag_search émet des événements en temps réel via SSE (Server-Sent Events). Cela permet de suivre la progression du pipeline RAG et d’afficher la réponse au fur et à mesure de sa génération.

Types d’Événements

Phases du Pipeline (tool_update)

L’événement tool_update contient un champ data avec une phase et un status. Voici les phases possibles :
  1. SEARCH_PREPARATION
    • status: started
    • Indique que le pipeline a commencé et prépare la recherche.
  2. RETRIEVAL (Récupération)
    • status: completed
    • data: { "retrieved_count": <int> }
    • Indique que la recherche vectorielle initiale est terminée et combien de documents ont été trouvés.
  3. RERANKING (Réordonnancement)
    • status: completed
    • data: { "initial_count": <int>, "reranked_count": <int>, "kept_count": <int> }
    • Indique que les résultats ont été réordonnés par pertinence. kept_count est le nombre de documents retenus pour la génération.
  4. COMPILING_RESULTS (Génération)
    • status: started
    • Indique que la génération de la réponse par le LLM commence.

Streaming de Contenu (tool_partial_update)

Pendant la phase de génération, des événements tool_partial_update sont émis pour chaque fragment de texte généré.
  • content: <string> (Le fragment de texte)
  • output_key: "response"
Ces fragments doivent être concaténés pour former la réponse complète.
Gestion des Événements Volumineux (Chunking)Si la charge utile d’un événement dépasse la limite de taille SSE, elle sera divisée en plusieurs événements _delta_sse. Pour des instructions détaillées et des exemples de code sur la façon de mettre en mémoire tampon et de reconstruire ces événements fragmentés, veuillez consulter le Guide des Résultats en Streaming ou le Guide des Événements de Session d’Agent.

Exemple de Flux d’Événements

Exemple d’Utilisation

1. Recherche Large

Recherche à travers toutes les connaissances disponibles. Entrée :

2. Recherche Ciblée

Recherche uniquement au sein d’un manuel technique spécifique. Entrée :

Capacités Multimodales

Le pipeline rag_search est entièrement compatible avec le multimodal. Si vous avez indexé des documents contenant des images (comme des PDF avec des graphiques ou des diapositives), la recherche peut récupérer le contexte visuel pertinent.
  • Récupération Texte-vers-Image : Votre requête textuelle peut correspondre à des descriptions d’images.
  • Compréhension d’Image : Le modèle de génération peut “voir” les images récupérées pour répondre à des questions sur des graphiques, des diagrammes ou des photos.
Activation RequiseLe RAG multimodal n’est pas activé par défaut. Pour activer cette fonctionnalité pour votre espace de travail, veuillez contacter l’équipe UBIK à contact@ubik-agent.com.
Pour une plongée plus profonde dans la façon dont le pipeline gère les embeddings, le re-ranking et la recherche hybride, voir l’Approfondissement du Pipeline RAG.