Connexion à un référentiel de contenu Astra DB

Connectez un référentiel de contenu Astra DB pour prendre en charge la recherche vectorielle et hybride haute performance. Au moment de l'exécution, l'agent interroge Astra DB pour récupérer le contenu pertinent et obtenir des résultats précis et contextuels.

Astra DB est une base de données vectorielle qui améliore la précision de la recherche pour les données structurées et non structurées. La connaissance des agents prend en charge les types de recherche Astra DB suivants : recherche vectorielle, recherche lexicale ou par mot-clé, recherche hybride, qui combine la recherche vectorielle et la recherche lexicale en une seule étape pour une meilleure précision. Pour la recherche vectorielle, l'agent knowledge prend en charge l'intégration du client Astra DB, ainsi que l'intégration du serveur. L'intégration au serveur ne nécessite pas d'appel supplémentaire vers un modèle d'intégration pour intégrer la requête provenant de watsonx Orchestrate. La connaissance des agents soutient la recherche sur les données non structurées et les données structurées qui sont stockées dans les collections et les tables de la base de données Astra.

Utilisez les produits ou outils suivants pour vous connecter à un référentiel Astra DB :

Respectez les conditions préalables à la connexion à Astra DB avant de commencer la procédure.

Conditions préalables à la connexion à Astra DB

  • Vous devez avoir un compte Astra DB actif.

  • Provisionnez une instance Astra DB dans votre compte.

  • Créer une clé API pour authentifier la connexion.

  • Assurez-vous de disposer du rôle d'accès requis pour créer une source de connaissances.

Connexion à l'instance Astra DB

Utilisez les données de votre instance Astra DB pour connecter votre agent :

  1. Sur la page de configuration de l'agent, allez dans la section Connaissances.

  2. Cliquez sur Choisir les connaissances +.

  3. Sous Ajouter une source, cliquez sur Nouvelle connaissance.

  4. Sélectionnez Astra DB > Next.

  5. A partir de Connect Astra DB, fournissez les données de connexion.

    • URL : Saisissez le point de terminaison URL de l'instance Astra DB.

    • Port (optionnel) : Par défaut, Astra DB écoute sur le port 443. Entrez un port personnalisé uniquement si votre instance utilise une configuration non standard.

  6. Complétez le champ clé API.

  7. Cliquez sur Suivant pour continuer.

    Astra DB organise les données en espaces-clés, similaires aux bases de données des systèmes relationnels. Par défaut, un espace-clé est créé automatiquement, mais vous pouvez choisir n'importe quel espace-clé existant dans votre instance Astra DB.

  8. Sélectionnez le type de données que l'agent interroge :

    • Collecte : Pour les données structurées et non structurées.

    • Tableau : Pour les données structurées stockées en lignes et en colonnes.

  9. Sélectionnez une option parmi les types Collections ou Tableaux, en fonction du type de données que vous avez choisi.

  10. Sélectionnez le mode d'intégration. Pour plus d'informations, voir Configurer l'intégration et le mode de recherche.

  11. Sélectionnez le mode de recherche. Pour plus d'informations, voir Configurer l'intégration et le mode de recherche.

  12. Mettez en correspondance les champs de la base de données Astra avec les champs de réponse correspondants de l'agent. Pour plus d'informations, voir Résultats de la cartographie

    Facultatif : Pour configurer les paramètres de l'Astra DB avancée, voir Paramètres de l'Astra DB avancée.

  13. Cliquez sur Suivant pour continuer.

  14. Dans la section Détails des connaissances,

  15. Sauvegardez vos paramètres.

Vous revenez à la page Agent Builder. Le référentiel Astra DB est désormais connecté Prend en charge. Pour vérifier la configuration, lancez une requête dans votre agent.

Mettre à jour les paramètres de la base de données Astra

Pour mettre à jour votre configuration :

  1. Allez dans la section " Connaissances".

  2. Cliquez sur l'ellipse verticale ( ) à côté de la source de connaissances sélectionnée.

  3. Sélectionnez Modifier les détails et mettez à jour la configuration.

  4. Sauvegardez vos paramètres.

Supprimer le référentiel Astra DB

Pour supprimer le référentiel :

  1. Allez dans la section " Connaissances".

  2. Cliquez sur l'ellipse verticale ( ) à côté de la source de connaissances sélectionnée.

  3. Cliquez sur Suppression.

Configurer l'intégration et le mode de recherche

Astra DB prend en charge plusieurs options d'intégration et de recherche afin d'équilibrer la précision et la performance :

Option

Description

Utilisation

Recherche vectorielle

Convertit les requêtes en vecteurs pour la correspondance sémantique.

Idéal pour les requêtes longues ou complexes.

Recherche lexicale

Effectue une recherche traditionnelle par mot-clé.

Meilleur pour les correspondances exactes et les termes structurés.

Recherche hybride

Combine la recherche vectorielle et la recherche lexicale, puis réorganise les résultats.

A utiliser pour obtenir la plus grande précision de recherche.

Intégration du client

La requête est d'abord intégrée dans watsonx.ai ou dans un autre service d'intégration, puis envoyée à Astra DB.

A utiliser lorsque vous souhaitez gérer les embeddings en dehors d'Astra DB.

Intégration du serveur

Astra DB intègre automatiquement la requête lors de la recherche.

À utiliser pour des requêtes plus simples en une seule étape sans appels d'intégration externes.

Remarque :

Le mode de recherche doit correspondre à la configuration de la collection ou de la table dans Astra DB.

Résultats de la cartographie

Mettez en correspondance les champs de la base de données Astra avec la réponse de l'agent dans « _Configurer le contenu du résultat_ » :

  • Titre : Sélectionnez le champ pour le titre du résultat.

  • Corps : sélectionnez le champ pour le texte du résultat.

  • URL (facultatif) : Sélectionnez le champ du lien source.

Paramètres avancés d'Astra DB

Configurez des filtres avancés pour affiner les résultats. Par exemple :

Renvoie les résultats lorsque les articles de la commande n'ont pas été retirés :

{"is_checked_out": False}

Retourner les résultats lorsque les livres commandés ne sont pas empruntés et que les livres ont moins de 300 pages :

    {
        "$and": [
            {"is_checked_out": False},
            {"number_of_pages": {"$lt": 300}},
        ]
    }

La syntaxe du filtre suit les règles de requête d'Astra DB. Pour plus d'informations sur les opérateurs de filtrage pour les collections, consultez la section Opérateurs de filtrage pour les collections. Pour plus d'informations sur les opérateurs de filtrage pour les tables, consultez la section Opérateurs de filtrage pour les tables.

Transmettre les variables de contexte

Vous pouvez rendre vos filtres dynamiques en référençant des variables de contexte dans vos modèles de filtres Astra DB. Cela permet de substituer des valeurs en fonction du contexte de l'utilisateur ou de la session, ce qui rend vos requêtes plus souples et plus personnalisées.

Fonctionnement

  • Dans votre référentiel de contenu, mettez en place des filtres et référencez les variables contextuelles dans le format : {context_var}

  • Lorsque l'agent s'exécute, il récupère le contexte à partir de :

    • La charge utile du point de terminaison des exécutions, ou

    • Le jeton JWT associé à la session

  • Le moteur d'exécution des connaissances remplace les variables de contexte de votre modèle de filtre par les valeurs réelles du contexte

Exemple de remplacement du filtre Astra DB

Par exemple :

  • filter: Un modèle contenant des références à des variables contextuelles, saisies dans le champ du filtre pour la substitution dynamique.

  • final_filter: Le modèle après avoir remplacé les variables de contexte par des valeurs réelles. La requête est envoyée à Astra DB pour la récupération des données.

  • context_variable: Un ensemble de paires clé-valeur définissant les variables de contexte utilisées dans la substitution.

Exemple :

    filter = '{"product_partNumber": "{part}"}'
    context_variable = {"part": "PS-SL-KIT"}
    final_filter = {"product_partNumber": "PS-SL-KIT"}

    filter = '{"number_of_pages": {"$eq": "{count}"}}'
    context_variable = {"count": 400}
    final_filter  = {"number_of_pages": {"$eq": 400}}

    filter = '{"genres": {"$in": "{genres}"}}'
    context_variable = {"genres": ["ABC", "DEF"]}
    final_filter  = {"genres": {"$in": ["ABC", "DEF"]}}

    filter = '{"borrower": {"$exists": "{borrower}"}}'
    context_variable = {"borrower": False}
    final_filter  = {"borrower": {"$exists": False}}

    filter='{"value": {"$in": [82500, {value}]}}'
    context_variable = {"value": [82400, 165000]}
    final_filter  = {"value": {"$in": [82500, 82400, 165000]}}
    
    filter = '{"product_partNumber": "{part}-SL-KIT"}'
    context_variable = {"part": "PS"}
    final_filter  = {"product_partNumber": "PS-SL-KIT"}

Etape suivante

Après vous être connecté à Astra DB, vous pouvez modifier les données de connexion au référentiel ou les paramètres que vous avez fournis pour récupérer les documents.