Génération d’une requête pour des données structurées - Amazon Bedrock

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Génération d’une requête pour des données structurées

Lorsque vous connectez un magasin de données structuré à votre base de connaissances, celle-ci peut l’interroger en convertissant la requête en langage naturel fournie par l’utilisateur en requête SQL, en fonction de la structure de la source de données interrogée. Lorsque vous utilisez :

  • Retrieve : la réponse renvoie le résultat de l’exécution de la requête SQL.

  • RetrieveAndGenerate : la réponse générée est basée sur le résultat de l’exécution de la requête SQL.

  • GenerateQuery: Amazon Bedrock Knowledge Bases dissocie la conversion de la requête du processus de récupération. Cette opération d’API vous permet de transformer une requête en code SQL.

Utilisation de l’API GenerateQuery

Vous pouvez utiliser la réponse de l’opération d’API GenerateQuery avec une action Retrieve ou RetrieveAndGenerate ultérieure, ou l’insérer dans d’autres flux de travail. GenerateQuery vous permet de transformer efficacement les requêtes en requêtes SQL en tenant compte de la structure de la source de données de votre base de connaissances.

Pour transformer une requête en langage naturel en requête SQL, soumettez une GenerateQuerydemande avec un point de terminaison Agents for Amazon Bedrock Runtime. La demande GenerateQuery contient les champs suivants :

  • queryGenerationInput — Spécifiez TEXT en tant que type et incluez la requête dans le text champ.

    Note

    Les requêtes doivent être écrites en anglais.

  • transformationConfiguration : spécifiez TEXT_TO_SQL comme mode. Dans le champ textToSqlConfiguration, spécifiez KNOWLEDGE_BASE comme type. Spécifiez ensuite l’ARN de la base de connaissances.

La réponse renvoie un tableau contenant un GeneratedQueryobjet dans le queries champ. L’objet contient une requête SQL pour la requête dans le champ sql.

Considérations clés

Voici quelques points essentiels à prendre en compte lors de la génération d’une requête à l’aide de données structurées :

  • Inférence interrégionale et récupération de données structurées

    La récupération de données structurées utilise l'inférence interrégionale pour sélectionner la solution optimale au Région AWS sein de votre zone géographique afin de traiter votre demande d'inférence. Cela n’engendre aucuns frais supplémentaires et améliore l’expérience client en optimisant les ressources disponibles et la disponibilité des modèles.

    Les demandes d'inférence croisée sont conservées dans les Régions AWS limites de la zone géographique dans laquelle les données se trouvent à l'origine. Vos données restent stockées dans la région source, mais les invites d’entrée et les résultats de sortie peuvent être déplacés en dehors de cette région. Toutes les données sont transmises chiffrées sur l’ensemble du réseau sécurisé d’Amazon.

    Pour de plus amples informations, veuillez consulter Augmentez le débit grâce à l’inférence entre régions.

  • Précision des requêtes SQL générées

    La précision d’une requête SQL générée peut varier en fonction du contexte, des schémas de table et de l’intention de la requête utilisateur. Évaluez les requêtes générées pour vous assurer qu’elles correspondent à votre cas d’utilisation avant de les utiliser dans votre charge de travail.

  • Nombre de résultats récupérés

    Les restrictions suivantes s’appliquent lors de la génération de la réponse :

    • Lors de l’utilisation des opérations d’API InvokeAgent, RetrieveAndGenerate et RetrieveAndGenerateStream, seuls 10 résultats récupérés sont utilisés lors de la génération de la réponse.

    • Lors de l’utilisation de l’API InvokeAgent, s’il y a plus de 10 lignes de résultats récupérés, le nombre total de lignes récupérées n’est pas transmis à l’agent pour générer la réponse. Si vous utilisez plutôt l’API RetrieveAndGenerate, le nombre total de lignes est inclus dans l’invite de génération de la réponse finale.

  • Quota de l’API GenerateQuery

    L’API GenerateQuery dispose d’un quota de 2 demandes par seconde.

Octroi à un rôle des autorisations nécessaires pour accéder aux requêtes générées

Pour votre base de connaissances connectée à une source de données structurée, si vous souhaitez effectuer des opérations supplémentaires sur les requêtes générées, vous devez accorder les autorisations nécessaires pour effectuer l’action d’API GenerateQuery. Pour permettre à votre rôle IAM d’interroger une base de connaissances connectée à un magasin de données structuré, attachez la politique suivante au rôle :

JSON
{ "Version":"2012-10-17", "Statement": [ { "Sid": "GetKB", "Effect": "Allow", "Action": [ "bedrock:GetKnowledgeBase" ], "Resource": [ "arn:aws:bedrock:us-east-1:123456789012:knowledge-base/KnowledgeBaseId" ] }, { "Sid": "GenerateQueryAccess", "Effect": "Allow", "Action": [ "bedrock:GenerateQuery", "sqlworkbench:GetSqlRecommendations" ], "Resource": "*" }, { "Sid": "Retrieve", "Effect": "Allow", "Action": [ "bedrock:Retrieve" ], "Resource": [ "arn:aws:bedrock:us-east-1:123456789012:knowledge-base/KnowledgeBaseId" ] }, { "Sid": "RetrieveAndGenerate", "Effect": "Allow", "Action": [ "bedrock:RetrieveAndGenerate" ], "Resource": [ "*" ] } ] }

Vous pouvez supprimer les instructions dont vous n’avez pas besoin, selon votre cas d’utilisation :

  • Les GenerateQuery instructions GetKB and doivent être appelées GenerateQuerypour générer des requêtes SQL qui prennent en compte les requêtes des utilisateurs et votre source de données connectée.

  • L’instruction Retrieve est requise pour appeler Retrieve afin de récupérer les données de votre magasin de données structuré.

  • L’instruction RetrieveAndGenerate est requise pour appeler RetrieveAndGenerate afin de récupérer les données de votre magasin de données structuré et générer des réponses basées sur ces données.