Ce document explique comment tester QueryData et mettre à jour le fichier d'ensemble de contextes. 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 précise, vous pouvez mettre à jour le fichier d'ensemble de contextes.
Pour en savoir plus sur les ensembles de contextes, consultez la présentation des ensembles de contextes.Avant de commencer
Assurez-vous qu'un ensemble de contextes est déjà créé et que le fichier d'ensemble de contextes est importé dans l'agent QueryData. Pour en savoir plus, consultez Gérer les ensembles de contextes dans Cloud SQL Studio.
Tester QueryData
Pour tester un QueryData, procédez comme suit :
Dans la Google Cloud console, accédez à la page Cloud SQL.
Sélectionnez une instance dans la liste.
Dans le menu de navigation, cliquez sur Cloud SQL Studio.
Connectez-vous à Studio à l'aide de l'authentification Identity and Access Management.
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 pour ouvrir le panneau Aidez-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.
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 contextes existant. Vous pouvez ensuite examiner et mettre à jour le modèle de requête, puis importer à nouveau 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.
- Cliquez sur Télécharger le fichier de contexte.
- Suivez les étapes décrites dans Créer des contextes à l'aide de Gemini CLI 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 le fichier d'ensemble de contextes, puis sélectionnez le fichier d'ensemble de contextes mis à jour.
- Cliquez sur Enregistrer pour mettre à jour l'ensemble de contextes.
Une fois que vous êtes satisfait de l'exactitude de vos réponses, vous pouvez utiliser le point de terminaison QueryData pour connecter votre application à l'ensemble de contextes.
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 Google Cloud console, accédez à la page Cloud SQL.
Sélectionnez une instance dans la liste.
Dans le menu de navigation, cliquez sur Cloud SQL Studio.
Connectez-vous à Studio à l'aide de l'authentification Identity and Access Management.
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 contextes. Le format de l'ID de l'ensemble de contextes est semblable à
projects/data-agents-project/locations/us-east1/contextSets/bdf_pg_all_templates.
Connecter QueryData à l'application
Définissez l'ID de l'ensemble de contextes 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 et Cloud SQL pour PostgreSQL. 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 contextes, vous pouvez référencer la source de données de 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 la source de données de base de données cloud_sql_reference. Le champ agent_context_reference.context_set_id est utilisé pour établir un lien vers le contexte pré-créé stocké dans la base de données.
{ "parent": "projects/context-set-project/locations/us-central1", "prompt": "How many accounts in the Prague region are eligible for loans?? A3 contains the data of region.", "context": { "datasource_references": [ { "cloud_sql_reference": { "database_reference": { "engine": "POSTGRESQL" "project_id": "context-set-project", "region": "us-central1", "instance_id": "context-set-primary", "database_id": "financial" }, "agent_context_reference": { "context_set_id": "projects/context-set-project/locations/us-east1/contextSets/bdf_pg_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.cloud_sql_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 de base de données.engine: moteur de base de données. Définissez la valeur surPOSTGRESQLpour les instances Cloud SQL.project_id: ID de projet de l'instance de base de données.region: région de l'instance Cloud SQL.instance_id: ID d'instance de l'instance Cloud SQL.database_id: ID de la base de données.
agent_context_reference: établit un lien vers le contexte créé dans la base de données.context_set_id: ID complet de l'ensemble de contextes du contexte stocké dans la base de données. Exemple :projects/context-set-project/locations/us-east1/contextSets/bdf_gsql_gemini_all_templates.
generationOptions: configure le type de sortie à générer.generate_query_result: défini 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 "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 levée d'ambiguïté si la requête est ambiguë.
Exemple de réponse QueryData
Voici un exemple de réponse réussie d'un appel QueryData :
{
"generated_query": "-- Count the number of accounts in Prague that are eligible for loans\nSELECT\n COUNT(DISTINCT \"loans\".\"account_id\")\nFROM \"loans\"\nJOIN \"district\" -- Join based on district ID\n ON \"loans\".\"district_id\" = \"district\".\"district_id\"\nWHERE\n \"district\".\"A3\" = 'Prague'; -- Filter for the Prague region",
"intent_explanation": "The question asks for the number of accounts eligible for loans in the Prague region. I need to join the `district` table with the `loans` table to filter by region and count the distinct accounts. The `A3` column in the `district` table contains the region information, and I'll filter for 'Prague'. The `loans` table contains information about loans, including the `account_id` and `district_id`. I will join these two tables on their respective district IDs.",
"query_result": {
"columns": [
{
"name": "count"
}
],
"rows": [
{
"values": [
{
"value": "2"
}
]
}
],
"total_row_count": 1
},
"natural_language_answer": "There are 2 accounts in Prague that are eligible for loans."
}
Étape suivante
- En savoir plus sur les ensembles de contextes.
- Découvrez comment créer des contextes à l'aide de Gemini CLI.
- Découvrez comment gérer les ensembles de contextes dans Cloud SQL Studio.