修复枚举对应错误,增加问答示例,优化提示词
This commit is contained in:
@@ -244,7 +244,10 @@ class OpenAICompatibleLLM(VannaBase):
|
|||||||
[{'role': 'system', 'content': sys_temp}, {'role': 'user', 'content': user_temp}], **kwargs)
|
[{'role': 'system', 'content': sys_temp}, {'role': 'user', 'content': user_temp}], **kwargs)
|
||||||
llm_response = str(llm_response.strip())
|
llm_response = str(llm_response.strip())
|
||||||
logger.info(f"llm_response:{llm_response}")
|
logger.info(f"llm_response:{llm_response}")
|
||||||
result = {"resp": orjson.loads(extract_nested_json(llm_response))}
|
#优化中.......
|
||||||
|
result = extract_nested_json(llm_response)
|
||||||
|
logger.info(f"result:{result}")
|
||||||
|
result = {"resp": orjson.loads(result)}
|
||||||
logger.info(f"llm_response:{llm_response}")
|
logger.info(f"llm_response:{llm_response}")
|
||||||
sql = check_and_get_sql(llm_response)
|
sql = check_and_get_sql(llm_response)
|
||||||
logger.info(f"sql:{sql}")
|
logger.info(f"sql:{sql}")
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
question_and_answer = [
|
question_and_answer = [
|
||||||
|
|
||||||
{"question": "综合处有多少员工,男女员工分别有多少",
|
{"question": "XX部有多少员工,男女员工分别有多少",
|
||||||
"answer": '''
|
"answer": '''
|
||||||
SELECT COUNT(*) AS "总人数",
|
SELECT COUNT(*) AS "总人数",
|
||||||
SUM(CASE WHEN gender = '1' THEN 1 ELSE 0 END) AS "男员工数",
|
SUM(CASE WHEN gender = '1' THEN 1 ELSE 0 END) AS "男员工数",
|
||||||
@@ -8,7 +8,7 @@ question_and_answer = [
|
|||||||
FROM YJOA_APPSERVICE_DB.t_pr3rl2oj_yj_person_database p
|
FROM YJOA_APPSERVICE_DB.t_pr3rl2oj_yj_person_database p
|
||||||
WHERE p.internal_dept IN (SELECT "id"
|
WHERE p.internal_dept IN (SELECT "id"
|
||||||
FROM "IUAP_APDOC_BASEDOC"."org_orgs" START
|
FROM "IUAP_APDOC_BASEDOC"."org_orgs" START
|
||||||
WITH "name"||"shortname" LIKE '%综合处%'
|
WITH "name"||"shortname" LIKE '%XX部%'
|
||||||
CONNECT BY PRIOR "id" = "parentid"
|
CONNECT BY PRIOR "id" = "parentid"
|
||||||
)
|
)
|
||||||
AND p.dr = 0
|
AND p.dr = 0
|
||||||
@@ -192,13 +192,13 @@ question_and_answer = [
|
|||||||
END LIMIT 1000
|
END LIMIT 1000
|
||||||
'''
|
'''
|
||||||
}, {
|
}, {
|
||||||
"question": "数信中心下有多少员工",
|
"question": "XX中心下有多少员工",
|
||||||
"answer": '''
|
"answer": '''
|
||||||
select count(*)
|
select count(*)
|
||||||
from YJOA_APPSERVICE_DB.t_pr3rl2oj_yj_person_database
|
from YJOA_APPSERVICE_DB.t_pr3rl2oj_yj_person_database
|
||||||
where internal_dept in (SELECT "id"
|
where internal_dept in (SELECT "id"
|
||||||
FROM "IUAP_APDOC_BASEDOC"."org_orgs" START
|
FROM "IUAP_APDOC_BASEDOC"."org_orgs" START
|
||||||
WITH "name"||"shortname" LIKE '%数信中心%' AND "dr"=0 AND "enable"=1 AND "code" LIKE '%CYJ%'
|
WITH "name"||"shortname" LIKE '%XX中心%' AND "dr"=0 AND "enable"=1 AND "code" LIKE '%CYJ%'
|
||||||
CONNECT BY PRIOR "id" = "parentid"
|
CONNECT BY PRIOR "id" = "parentid"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -217,14 +217,14 @@ question_and_answer = [
|
|||||||
'''
|
'''
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"question": "数信中心下各个处室分别有多少人",
|
"question": "XX中心下各个处室分别有多少人",
|
||||||
"answer": '''
|
"answer": '''
|
||||||
SELECT o.name AS "处室名称", COUNT(p.id) AS "人数"
|
SELECT o.name AS "处室名称", COUNT(p.id) AS "人数"
|
||||||
FROM YJOA_APPSERVICE_DB.t_pr3rl2oj_yj_person_database p
|
FROM YJOA_APPSERVICE_DB.t_pr3rl2oj_yj_person_database p
|
||||||
JOIN IUAP_APDOC_BASEDOC.org_orgs o ON p.internal_dept = o.id
|
JOIN IUAP_APDOC_BASEDOC.org_orgs o ON p.internal_dept = o.id
|
||||||
WHERE p.internal_dept IN (
|
WHERE p.internal_dept IN (
|
||||||
SELECT "id" FROM "IUAP_APDOC_BASEDOC"."org_orgs"
|
SELECT "id" FROM "IUAP_APDOC_BASEDOC"."org_orgs"
|
||||||
START WITH "name"||"shortname" LIKE '%数信中心%' AND "dr"=0 AND "enable"=1 AND "code" LIKE '%CYJ%'
|
START WITH "name"||"shortname" LIKE '%XX中心%' AND "dr"=0 AND "enable"=1 AND "code" LIKE '%CYJ%'
|
||||||
CONNECT BY PRIOR "id" = "parentid"
|
CONNECT BY PRIOR "id" = "parentid"
|
||||||
)
|
)
|
||||||
AND p.dr = 0
|
AND p.dr = 0
|
||||||
@@ -248,7 +248,7 @@ question_and_answer = [
|
|||||||
'''
|
'''
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"question": "10月数信中心有哪些有员工请假",
|
"question": "10月XX中心有哪些有员工请假",
|
||||||
"answer": '''
|
"answer": '''
|
||||||
SELECT p."id" AS "id",
|
SELECT p."id" AS "id",
|
||||||
p."code" AS "工号",
|
p."code" AS "工号",
|
||||||
@@ -262,7 +262,7 @@ question_and_answer = [
|
|||||||
AND ps."date_value" LIKE '2025-10%'
|
AND ps."date_value" LIKE '2025-10%'
|
||||||
and p.internal_dept in (SELECT "id"
|
and p.internal_dept in (SELECT "id"
|
||||||
FROM "IUAP_APDOC_BASEDOC"."org_orgs" START
|
FROM "IUAP_APDOC_BASEDOC"."org_orgs" START
|
||||||
WITH "name" || "shortname" LIKE '%数信中心%' AND "dr"=0 AND "enable"=1 AND "code" LIKE '%CYJ%'
|
WITH "name" || "shortname" LIKE '%XX中心%' AND "dr"=0 AND "enable"=1 AND "code" LIKE '%CYJ%'
|
||||||
CONNECT BY PRIOR "id" = "parentid"
|
CONNECT BY PRIOR "id" = "parentid"
|
||||||
)
|
)
|
||||||
AND p."dr" = 0
|
AND p."dr" = 0
|
||||||
@@ -279,7 +279,7 @@ question_and_answer = [
|
|||||||
'''
|
'''
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"question": "数信中心员工年龄段分布图",
|
"question": "XX中心员工年龄段分布图",
|
||||||
"answer": '''
|
"answer": '''
|
||||||
SELECT
|
SELECT
|
||||||
CASE
|
CASE
|
||||||
@@ -301,10 +301,10 @@ question_and_answer = [
|
|||||||
WHERE "parentid" IN (
|
WHERE "parentid" IN (
|
||||||
SELECT "id"
|
SELECT "id"
|
||||||
FROM "IUAP_APDOC_BASEDOC"."org_orgs"
|
FROM "IUAP_APDOC_BASEDOC"."org_orgs"
|
||||||
WHERE name || shortname LIKE '%数信中心%' AND "dr"=0 AND "enable"=1 AND "code" LIKE '%CYJ%'
|
WHERE name || shortname LIKE '%XX中心%' AND "dr"=0 AND "enable"=1 AND "code" LIKE '%CYJ%'
|
||||||
) OR id IN (SELECT "id"
|
) OR id IN (SELECT "id"
|
||||||
FROM "IUAP_APDOC_BASEDOC"."org_orgs"
|
FROM "IUAP_APDOC_BASEDOC"."org_orgs"
|
||||||
WHERE name || shortname LIKE '%数信中心%' AND "dr"=0 AND "enable"=1 AND "code" LIKE '%CYJ%')
|
WHERE name || shortname LIKE '%XX中心%' AND "dr"=0 AND "enable"=1 AND "code" LIKE '%CYJ%')
|
||||||
)
|
)
|
||||||
GROUP BY
|
GROUP BY
|
||||||
CASE
|
CASE
|
||||||
@@ -318,7 +318,7 @@ question_and_answer = [
|
|||||||
ORDER BY "age_group" ASC LIMIT 1000
|
ORDER BY "age_group" ASC LIMIT 1000
|
||||||
'''
|
'''
|
||||||
},{
|
},{
|
||||||
"question": "查询综合处下面的员工以及他们的年龄",
|
"question": "查询XX部下面的员工以及他们的年龄",
|
||||||
"answer": '''
|
"answer": '''
|
||||||
SELECT p."id" AS "员工ID",
|
SELECT p."id" AS "员工ID",
|
||||||
p."name" AS "姓名",
|
p."name" AS "姓名",
|
||||||
@@ -331,7 +331,7 @@ question_and_answer = [
|
|||||||
WHERE p."dr" = 0
|
WHERE p."dr" = 0
|
||||||
AND o."id" IN (SELECT "id"
|
AND o."id" IN (SELECT "id"
|
||||||
FROM "IUAP_APDOC_BASEDOC"."org_orgs" START
|
FROM "IUAP_APDOC_BASEDOC"."org_orgs" START
|
||||||
WITH "name"||"shortname" LIKE '%综合处%' AND "dr"=0 AND "enable"=1 AND "code" LIKE '%CYJ%'
|
WITH "name"||"shortname" LIKE '%XX部%' AND "dr"=0 AND "enable"=1 AND "code" LIKE '%CYJ%'
|
||||||
CONNECT BY PRIOR "id" = "parentid")
|
CONNECT BY PRIOR "id" = "parentid")
|
||||||
AND p."birthday" IS NOT NULL
|
AND p."birthday" IS NOT NULL
|
||||||
AND p."birthday" != ''
|
AND p."birthday" != ''
|
||||||
@@ -340,7 +340,7 @@ question_and_answer = [
|
|||||||
'''
|
'''
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"question": "查询综合处下面的员工的平均年龄",
|
"question": "查询XX部下面的员工的平均年龄",
|
||||||
"answer": '''
|
"answer": '''
|
||||||
SELECT ROUND(AVG(2025 - CAST(SUBSTR(p."birthday", 1, 4) AS INT)), 2) AS "平均年龄"
|
SELECT ROUND(AVG(2025 - CAST(SUBSTR(p."birthday", 1, 4) AS INT)), 2) AS "平均年龄"
|
||||||
FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p
|
FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p
|
||||||
@@ -348,7 +348,7 @@ question_and_answer = [
|
|||||||
WHERE p."dr" = 0
|
WHERE p."dr" = 0
|
||||||
AND o."id" IN (SELECT "id"
|
AND o."id" IN (SELECT "id"
|
||||||
FROM "IUAP_APDOC_BASEDOC"."org_orgs" START
|
FROM "IUAP_APDOC_BASEDOC"."org_orgs" START
|
||||||
WITH "name"||"shortname" LIKE '%综合处%' AND "dr"=0 AND "enable"=1 AND "code" LIKE '%CYJ%'
|
WITH "name"||"shortname" LIKE '%XX部%' AND "dr"=0 AND "enable"=1 AND "code" LIKE '%CYJ%'
|
||||||
CONNECT BY PRIOR "id" = "parentid")
|
CONNECT BY PRIOR "id" = "parentid")
|
||||||
AND p."birthday" IS NOT NULL
|
AND p."birthday" IS NOT NULL
|
||||||
AND p."birthday" != ''
|
AND p."birthday" != ''
|
||||||
@@ -356,7 +356,7 @@ question_and_answer = [
|
|||||||
'''
|
'''
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"question": "综合处有几个人,男员工,女员工分别有多少",
|
"question": "XX部有几个人,男员工,女员工分别有多少",
|
||||||
"answer": '''
|
"answer": '''
|
||||||
SELECT COUNT(*) AS "总人数",
|
SELECT COUNT(*) AS "总人数",
|
||||||
SUM(CASE WHEN p."gender" = '1' THEN 1 ELSE 0 END) AS "男员工数",
|
SUM(CASE WHEN p."gender" = '1' THEN 1 ELSE 0 END) AS "男员工数",
|
||||||
@@ -365,7 +365,7 @@ question_and_answer = [
|
|||||||
WHERE p."internal_dept" IN (
|
WHERE p."internal_dept" IN (
|
||||||
SELECT "id"
|
SELECT "id"
|
||||||
FROM "IUAP_APDOC_BASEDOC"."org_orgs"
|
FROM "IUAP_APDOC_BASEDOC"."org_orgs"
|
||||||
START WITH "name" LIKE '%综合处%' AND "dr"=0 AND "enable"=1 AND "code" LIKE '%CYJ%'
|
START WITH "name" LIKE '%XX部%' AND "dr"=0 AND "enable"=1 AND "code" LIKE '%CYJ%'
|
||||||
CONNECT BY PRIOR "id" = "parentid"
|
CONNECT BY PRIOR "id" = "parentid"
|
||||||
)
|
)
|
||||||
AND p."dr" = 0
|
AND p."dr" = 0
|
||||||
@@ -373,13 +373,13 @@ question_and_answer = [
|
|||||||
'''
|
'''
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"question": "综合处女员工有多少",
|
"question": "XX综合部女员工有多少",
|
||||||
"answer": '''
|
"answer": '''
|
||||||
SELECT (SELECT COUNT(*)
|
SELECT (SELECT COUNT(*)
|
||||||
FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p
|
FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p
|
||||||
WHERE p."internal_dept" IN (SELECT "id"
|
WHERE p."internal_dept" IN (SELECT "id"
|
||||||
FROM "IUAP_APDOC_BASEDOC"."org_orgs"
|
FROM "IUAP_APDOC_BASEDOC"."org_orgs"
|
||||||
START WITH "name"||"shortname" LIKE '%综合处%' AND "dr"=0 AND "enable"=1 AND "code" LIKE '%CYJ%'
|
START WITH "name"||"shortname" LIKE '%XX综合部%' AND "dr"=0 AND "enable"=1 AND "code" LIKE '%CYJ%'
|
||||||
CONNECT BY PRIOR "id" = "parentid"
|
CONNECT BY PRIOR "id" = "parentid"
|
||||||
)
|
)
|
||||||
AND p."gender" = '2'
|
AND p."gender" = '2'
|
||||||
@@ -388,14 +388,14 @@ question_and_answer = [
|
|||||||
'''
|
'''
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"question": "数信中心今天各个处室在岗人员数量",
|
"question": "XX中心今天各个处室在岗人员数量",
|
||||||
"answer": '''
|
"answer": '''
|
||||||
SELECT o.name AS "处室名称", COUNT(p.id) AS "人数"
|
SELECT o.name AS "处室名称", COUNT(p.id) AS "人数"
|
||||||
FROM YJOA_APPSERVICE_DB.t_pr3rl2oj_yj_person_database p
|
FROM YJOA_APPSERVICE_DB.t_pr3rl2oj_yj_person_database p
|
||||||
JOIN IUAP_APDOC_BASEDOC.org_orgs o ON p.internal_dept = o.id
|
JOIN IUAP_APDOC_BASEDOC.org_orgs o ON p.internal_dept = o.id
|
||||||
WHERE p.internal_dept IN (
|
WHERE p.internal_dept IN (
|
||||||
SELECT "id" FROM "IUAP_APDOC_BASEDOC"."org_orgs"
|
SELECT "id" FROM "IUAP_APDOC_BASEDOC"."org_orgs"
|
||||||
START WITH "name"||"shortname" LIKE '%数信中心%' AND "dr"=0 AND "enable"=1 AND "code" LIKE '%CYJ%'
|
START WITH "name"||"shortname" LIKE '%XX中心%' AND "dr"=0 AND "enable"=1 AND "code" LIKE '%CYJ%'
|
||||||
CONNECT BY PRIOR "id" = "parentid"
|
CONNECT BY PRIOR "id" = "parentid"
|
||||||
)
|
)
|
||||||
AND p.id IN (SELECT person_id FROM "YJOA_APPSERVICE_DB"."t_yj_person_status" WHERE status = '1001' AND date_value = TO_CHAR(SYSDATE, 'yyyy-MM-dd') AND dr = 0)
|
AND p.id IN (SELECT person_id FROM "YJOA_APPSERVICE_DB"."t_yj_person_status" WHERE status = '1001' AND date_value = TO_CHAR(SYSDATE, 'yyyy-MM-dd') AND dr = 0)
|
||||||
@@ -406,17 +406,17 @@ question_and_answer = [
|
|||||||
'''
|
'''
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"question": "数信中心下的综合管理处有多少人",
|
"question": "XX中心下的XX管理处有多少人",
|
||||||
"answer": '''
|
"answer": '''
|
||||||
SELECT o.name AS "处室名称", COUNT(p.id) AS "人数"
|
SELECT o.name AS "处室名称", COUNT(p.id) AS "人数"
|
||||||
FROM YJOA_APPSERVICE_DB.t_pr3rl2oj_yj_person_database p
|
FROM YJOA_APPSERVICE_DB.t_pr3rl2oj_yj_person_database p
|
||||||
JOIN IUAP_APDOC_BASEDOC.org_orgs o ON p.internal_dept = o.id
|
JOIN IUAP_APDOC_BASEDOC.org_orgs o ON p.internal_dept = o.id
|
||||||
WHERE p.internal_dept IN (
|
WHERE p.internal_dept IN (
|
||||||
SELECT "id" FROM "IUAP_APDOC_BASEDOC"."org_orgs"
|
SELECT "id" FROM "IUAP_APDOC_BASEDOC"."org_orgs"
|
||||||
START WITH "name"||"shortname" LIKE '%数信中心%' AND "dr"=0 AND "enable"=1 AND "code" LIKE '%CYJ%'
|
START WITH "name"||"shortname" LIKE '%XX中心%' AND "dr"=0 AND "enable"=1 AND "code" LIKE '%CYJ%'
|
||||||
CONNECT BY PRIOR "id" = "parentid"
|
CONNECT BY PRIOR "id" = "parentid"
|
||||||
)
|
)
|
||||||
AND p.dr = 0 AND o.name LIKE '%综合管理处%'
|
AND p.dr = 0 AND o.name LIKE '%XX管理处%'
|
||||||
GROUP BY o.name
|
GROUP BY o.name
|
||||||
ORDER BY "人数" DESC
|
ORDER BY "人数" DESC
|
||||||
LIMIT 1000
|
LIMIT 1000
|
||||||
|
|||||||
Reference in New Issue
Block a user