vanna.AI 接口文档(二)

28
0
0
2025-02-20

vanna.AI 接口文档(二)

generate_sql函数

函数概述:generate_sql ,用于将自然语言问题转换为相应的 SQL 查询。

参数:

  • question (str): 需要生成 SQL 查询的问题。

  • allow_llm_to_see_data (bool): 是否允许大型语言模型(LLM)查看数据,以便深入了解数据生成最终的 SQL。默认为 False

返回值:

  • str: 回答所提出问题的 SQL 查询。

方法流程:

  1. 初始提示获取: 从配置中获取初始提示(initial_prompt),如果配置不存在,则设置为 None

  2. 检索相关信息: 调用以下方法获取与问题相关的信息:

    • get_similar_question_sql: 获取相似问题及其对应的 SQL。

    • get_related_ddl: 获取相关的数据定义语言(DDL)语句。

    • get_related_documentation: 获取相关文档。

  3. 生成 SQL 提示: 使用上述信息调用 get_sql_prompt 方法生成用于 LLM 的提示(prompt)。

  4. 提交提示并获取响应: 将生成的提示提交给 LLM,获取其响应。

  5. 处理中间 SQL(如果存在): 如果 LLM 的响应中包含 intermediate_sql,则:

    • 如果 allow_llm_to_see_dataFalse,返回提示信息,表示需要允许 LLM 查看数据以生成必要的 SQL。

    • 如果 allow_llm_to_see_dataTrue,则:

      • 提取中间 SQL 并执行,获取结果数据框(DataFrame)。

      • 将结果数据框添加到文档列表中,重新生成 SQL 提示。

      • 再次提交提示给 LLM,获取最终的 SQL 响应。

  6. 返回最终 SQL: 从 LLM 的响应中提取并返回最终的 SQL 查询。