上下文集是特定于数据库的信息集合,可让 QueryData 等工具生成准确率高的查询。上下文集包含模板、分面和值搜索,可帮助 QueryData 了解您的数据库架构和应用的业务逻辑。
支持以下数据库:
- AlloyDB for PostgreSQL
- Cloud SQL for MySQL
- Cloud SQL for PostgreSQL
- Spanner
什么是上下文集
如需构建有效的代理应用,QueryData 等工具必须了解您的数据组织和业务逻辑。您需要以上下文集的形式提供此信息。
您可以在文件中定义上下文,这些文件包含每种上下文类型的 JSON 对象。您可以在上下文工程代理的帮助下编写这些上下文文件。然后,您可以将上下文的描述文件上传到您在控制台中创建的上下文集。 Google Cloud通过此过程,QueryData 等工具可以了解数据库的特定架构和应用的业务逻辑。
上下文的描述文件类似于以下内容:
{
"templates": [
{
"nl_query": "Count Prague loan accounts",
"sql": "SELECT COUNT(T1.account_id) FROM bird_dev_financial.account AS T1 INNER JOIN bird_dev_financial.loan AS T2 ON T1.account_id = T2.account_id INNER JOIN bird_dev_financial.district AS T3 ON T1.district_id = T3.district_id WHERE T3.\"A3\" ='Prague'",
"intent": "How many accounts associated with loans are located in the Prague region?",
"manifest": "How many accounts associated with loans are located in a given city?",
"parameterized": {
"parameterized_intent": "How many accounts associated with loans are located in $1",
"parameterized_sql": "SELECT COUNT(T1.account_id) FROM bird_dev_financial.account AS T1 INNER JOIN bird_dev_financial.loan AS T2 ON T1.account_id = T2.account_id INNER JOIN bird_dev_financial.district AS T3 ON T1.district_id = T3.district_id WHERE T3.\"A3\" = $1"
}
}
],
"facets": [
{
"sql_snippet": "employee.\"A11\" BETWEEN 6000 AND 10000",
"intent": "Average salary between 6000 and 10000",
"manifest": "Average salary between a given number and a given number",
"parameterized": {
"parameterized_intent": "Average salary between $1 and $2",
"parameterized_sql_snippet": "employee.\"A11\" BETWEEN $1 AND $2"
}
}
],
"value_searches": [
{
"query": "SELECT $value as value, 'accounts.account_type' as columns, 'Account Type' as concept_type, 0 as distance, '{}'::text as context FROM \"accounts\" T WHERE T.\"account_type\" = $value",
"concept_type": "Account Type",
"description": "Exact match for account types"
}
]
}
上下文集文件格式
上下文集文件包含一组精选的 JSON 格式的模板和分面,可指导 QueryData 等工具将自然语言问题转换为特定数据库的查询。定义上下文可确保针对常见查询模式生成准确率高的 SQL。
请确保上下文集准确无误,并全面涵盖预期的应用查询,以最大限度地提高准确性。
您可以在 us-central1、us-east1、europe-west4 和 asia-southeast1 区域中创建上下文集。
查询模板
查询模板是一组精选的代表性自然语言问题,其中包含相应的 SQL 查询。它们还包含说明,以便为自然语言到 SQL 的生成提供声明性依据。
查询模板对象类似于以下内容:
{
"templates": [
{
"nl_query"