上下文集概览

上下文集是特定于数据库的信息集合,可让 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-central1us-east1europe-west4asia-southeast1 区域中创建上下文集。

查询模板

查询模板是一组精选的代表性自然语言问题,其中包含相应的 SQL 查询。它们还包含说明,以便为自然语言到 SQL 的生成提供声明性依据。

查询模板对象类似于以下内容:

{
  "templates": [
    {
      "nl_query"