vanna.AI 接口文档(二)
vanna.AI 接口文档(二)
generate_sql函数
函数概述:generate_sql
,用于将自然语言问题转换为相应的 SQL 查询。
参数:
question
(str): 需要生成 SQL 查询的问题。allow_llm_to_see_data
(bool): 是否允许大型语言模型(LLM)查看数据,以便深入了解数据生成最终的 SQL。默认为False
。
返回值:
str
: 回答所提出问题的 SQL 查询。
方法流程:
初始提示获取: 从配置中获取初始提示(
initial_prompt
),如果配置不存在,则设置为None
。检索相关信息: 调用以下方法获取与问题相关的信息:
get_similar_question_sql
: 获取相似问题及其对应的 SQL。get_related_ddl
: 获取相关的数据定义语言(DDL)语句。get_related_documentation
: 获取相关文档。
生成 SQL 提示: 使用上述信息调用
get_sql_prompt
方法生成用于 LLM 的提示(prompt)。提交提示并获取响应: 将生成的提示提交给 LLM,获取其响应。
处理中间 SQL(如果存在): 如果 LLM 的响应中包含
intermediate_sql
,则:如果
allow_llm_to_see_data
为False
,返回提示信息,表示需要允许 LLM 查看数据以生成必要的 SQL。如果
allow_llm_to_see_data
为True
,则:提取中间 SQL 并执行,获取结果数据框(DataFrame)。
将结果数据框添加到文档列表中,重新生成 SQL 提示。
再次提交提示给 LLM,获取最终的 SQL 响应。
返回最终 SQL: 从 LLM 的响应中提取并返回最终的 SQL 查询。