1.增加了开关 REWRITE_QUESTION_ENABLED = False,用于控制是否启用问题重写功能,也就是上下文问题合并。 "I interpreted your question as"
2.增加了开关 ENABLE_RESULT_VECTOR_SCORE_THRESHOLD = True,用于控制是否启用向量查询结果得分阈值过滤。
ENABLE_RESULT_VECTOR_SCORE_THRESHOLD = True
RESULT_VECTOR_SQL_SCORE_THRESHOLD = 0.65 RESULT_VECTOR_DDL_SCORE_THRESHOLD = 0.5 RESULT_VECTOR_DOC_SCORE_THRESHOLD = 0.5
3.增加了错误SQL负面示例提示功能,用于提高SQL生成质量。
通过向LLM提供相关的错误SQL示例作为负面示例,帮助LLM避免生成类似的错误SQL,从而提高SQL生成的准确性和质量。
# 是否启用错误SQL提示功能
ENABLE_ERROR_SQL_PROMPT = True
# 错误SQL相似度阈值(仅返回相似度高于此阈值的错误SQL示例)
RESULT_VECTOR_ERROR_SQL_SCORE_THRESHOLD = 0.5
error_sql
集合,用于存储错误的question-sql对{"question": "用户问题", "sql": "错误的SQL", "type": "error_sql"}
get_related_error_sql()
方法,基于问题相似度查找相关的错误SQL示例负面示例采用与现有提示词一致的格式结构,位于Response Guidelines之前:
===Tables
[DDL信息]
===Additional Context
[文档信息]
===Negative Examples
下面是错误的SQL示例,请分析这些错误SQL的问题所在,并在生成新SQL时避免类似错误:
问题: [用户问题]
错误的SQL: [错误SQL]
问题: [用户问题]
错误的SQL: [错误SQL]
===Response Guidelines
[响应指南和中文别名要求]
ENABLE_ERROR_SQL_PROMPT = True
且找到相关错误SQL示例时,才会添加负面提示词# 通过API接口添加错误SQL示例
POST /api/v0/training_error_question_sql
{
"question": "查询所有用户信息",
"sql": "SELECT * FROM users WHERE id = 'all'" // 错误的SQL
}