Ce document explique comment tester QueryData et mettre à jour le fichier d'ensemble de contexte. Vous pouvez tester la capacité de QueryData à générer des requêtes SQL à partir de questions en langage naturel. Si une requête générée n'est pas exacte, vous pouvez mettre à jour le fichier d'ensemble de contexte.
Pour en savoir plus sur les ensembles de contextes, consultez Présentation des ensembles de contextes.Avant de commencer
Assurez-vous qu'un ensemble de contextes a déjà été créé et que le fichier de l'ensemble de contextes a été importé dans l'agent QueryData. Pour en savoir plus, consultez Gérer les ensembles de contexte dans Bigtable Studio.
Pour télécharger, mettre à jour et importer des fichiers d'ensemble de contexte, assurez-vous que l'utilisateur IAM dispose du rôle Éditeur de catalogue Dataplex (roles/dataplex.catalogEditor) ou Administrateur de catalogue Dataplex (roles/dataplex.catalogAdmin) sur le projet. Pour en savoir plus, consultez Autorisations des ensembles de contextes.
Tester QueryData
Pour tester un QueryData, procédez comme suit :
Dans la console Google Cloud , accédez à la page "Bigtable".
Sélectionnez une instance dans la liste.
Dans le menu de navigation, cliquez sur Bigtable Studio.
Dans le volet Explorateur, cliquez sur Afficher les actions à côté de l'ensemble de contextes que vous utilisez.
Cliquez sur Tester l'ensemble de contextes.
Dans l'éditeur de requête, cliquez sur Générer du code SQL à l'aide de QueryData avec : CONTEXT_SET_NAME pour ouvrir le panneau Aide-moi à coder.
Saisissez une question en langage naturel dans l'éditeur pour générer une requête SQL, puis cliquez sur Générer.
Vérifiez l'exactitude de la requête SQL. Cliquez sur Insérer pour ajouter la requête à l'éditeur.
Télécharger et mettre à jour un ensemble de contextes
Si vous n'êtes pas satisfait de la requête SQL générée pour une question en langage naturel, téléchargez le fichier d'ensemble de contexte existant. Vous pouvez ensuite examiner et mettre à jour le modèle de requête, puis réimporter le fichier de contexte mis à jour dans l'agent.
Pour télécharger et mettre à jour un ensemble de contextes, procédez comme suit :
- Dans le volet Explorateur, cliquez sur Afficher les actions à côté de l'ensemble de contextes que vous utilisez.
- Cliquez sur Télécharger le fichier de contexte.
- Suivez la procédure décrite dans Créer des ensembles de contextes à l'aide de l'agent d'ingénierie contextuelle pour mettre à jour le contexte avec des paires de requêtes supplémentaires.
- Dans le volet Explorateur, cliquez sur Afficher les actions à côté de l'ensemble de contextes que vous utilisez.
- Cliquez sur Modifier l'ensemble de contextes.
- Cliquez sur Parcourir dans la section Importer un fichier de contexte, puis sélectionnez le fichier d'ensemble de contexte mis à jour.
- Cliquez sur Enregistrer pour mettre à jour l'ensemble de contextes.
Une fois que vous êtes satisfait de la précision de vos réponses, vous pouvez utiliser le point de terminaison QueryData pour connecter votre application à l'ensemble de contexte.
Trouver l'ID de l'ensemble de contextes
Pour connecter une application de données à l'agent QueryData, vous avez besoin de l'ID de l'ensemble de contextes.
Dans la console Google Cloud , accédez à la page "Bigtable".
Sélectionnez une instance dans la liste.
Dans le menu de navigation, cliquez sur Bigtable Studio.
Dans le volet Explorateur, cliquez sur Afficher les actions à côté de l'ensemble de contextes que vous utilisez.
Cliquez sur Modifier l'ensemble de contextes.
Notez l'ID de contexte dans ID de l'ensemble de contexte. Le format de l'ID de l'ensemble de contextes est semblable à
projects/PROJECT_ID/locations/LOCATION/contextSetGroups/GROUP_ID/contextSets/CONTEXT_SET_ID@v1.
Connecter QueryData à l'application
Définissez l'ID de l'ensemble de contexte dans l'appel de méthode QueryData pour fournir un contexte créé pour les sources de données de base de données telles qu'AlloyDB, Spanner, Cloud SQL, Cloud SQL pour PostgreSQL, Firestore et Bigtable. Pour en savoir plus, consultez Définir le contexte de l'agent de données pour les sources de données de base de données.
Après avoir testé l'ensemble de contexte, vous pouvez référencer la source de données de la base de données dans votre appel QueryData.
Exemple de requête QueryData avec un contexte créé
L'exemple suivant montre une requête QueryData utilisant une source de données de base de données bigtable_reference. Le champ agent_context_reference.context_set_id permet d'associer l'ensemble de contextes contenant le contexte que vous avez créé.
POST https://geminidataanalytics.googleapis.com/v1beta/projects/context-set-project/locations/us-central1:queryData
{ "parent": "projects/context-set-project/locations/us-central1", "prompt": "List the names and ratings of all hotels located in London.", "context": { "datasource_references": { "bigtable_reference": { "database_reference": { "project_id": "context-set-project", "instance_id": "evalbench" }, "agent_context_reference": { "context_set_id": "projects/context-set-project/locations/us-central1/contextSets/hotels_bigtable_all_templates" } } } }, "generation_options": { "generate_query_result": true, "generate_natural_language_answer": true, "generate_disambiguation_question": true, "generate_explanation": true } }
Le corps de la requête contient les champs suivants :
prompt: question en langage naturel de l'utilisateur final.context: contient des informations sur les sources de données.datasource_references: spécifie le type de source de données.bigtable_reference: obligatoire lors de l'interrogation de la base de données. Ce champ change en fonction de la base de données que vous interrogez.database_reference: spécifie les informations liées à votre instance Bigtable.project_id: ID du projet auquel appartient l'instance Bigtable.instance_id: ID de l'instance Bigtable.table_ids: facultatif. ID des tables auxquelles l'agent doit être limité. Si ce paramètre n'est pas défini, toutes les tables de l'instance sont incluses.
agent_context_reference: liens vers le contexte créé.context_set_id: ID complet de l'ensemble de contextes contenant votre contexte créé. Exemple :projects/PROJECT_ID/locations/LOCATION/contextSetGroups/GROUP_ID/contextSets/CONTEXT_SET_ID@v1
generation_options: configure le type de sortie à générer.generate_query_result: définissez cette option sur "true" pour générer et renvoyer les résultats de la requête.generate_natural_language_answer: facultatif. Si la valeur est "true", génère une réponse en langage naturel.generate_explanation: facultatif. Si la valeur est définie sur "true", génère une explication de la requête SQL.generate_disambiguation_question: facultatif. Si la valeur est "true", génère des questions de désambiguïsation si la requête est ambiguë.
Exemple de réponse QueryData
Voici un exemple de réponse réussie à un appel QueryData :
{
"generatedQuery": "SELECT COUNT(*) FROM `hotels` WHERE CAST(cf['location'] AS STRING) = 'London'",
"intentExplanation": "count of hotels in London",
"queryResult": {
"columns": [
{
"name": "$col1",
"type": "int64_type:{}"
}
],
"rows": [
{
"values": [
{
"value": "2"
}
]
}
],
"totalRowCount": "1"
},
"naturalLanguageAnswer": "Based on the data, there are 2 hotels located in London."
}
Étapes suivantes
- En savoir plus sur les ensembles de contextes
- Découvrez comment créer des ensembles de contextes à l'aide de l'agent d'ingénierie contextuelle.
- Découvrez comment gérer les ensembles de contexte dans Bigtable Studio.