From de705f04fd6d5826745c62bc50554908f6b0785d Mon Sep 17 00:00:00 2001 From: yujj128 Date: Thu, 16 Oct 2025 17:42:06 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=9E=9A=E4=B8=BE=E5=AF=B9?= =?UTF-8?q?=E5=BA=94=E9=94=99=E8=AF=AF=EF=BC=8C=E5=A2=9E=E5=8A=A0=E9=97=AE?= =?UTF-8?q?=E7=AD=94=E7=A4=BA=E4=BE=8B=EF=BC=8C=E4=BC=98=E5=8C=96=E6=8F=90?= =?UTF-8?q?=E7=A4=BA=E8=AF=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- service/cus_vanna_srevice.py | 5 +++- util/q_and_a_dict.py | 48 ++++++++++++++++++------------------ 2 files changed, 28 insertions(+), 25 deletions(-) diff --git a/service/cus_vanna_srevice.py b/service/cus_vanna_srevice.py index 0de0f99..a87bfe7 100644 --- a/service/cus_vanna_srevice.py +++ b/service/cus_vanna_srevice.py @@ -244,7 +244,10 @@ class OpenAICompatibleLLM(VannaBase): [{'role': 'system', 'content': sys_temp}, {'role': 'user', 'content': user_temp}], **kwargs) llm_response = str(llm_response.strip()) 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}") sql = check_and_get_sql(llm_response) logger.info(f"sql:{sql}") diff --git a/util/q_and_a_dict.py b/util/q_and_a_dict.py index 9e7e729..c10e7d4 100644 --- a/util/q_and_a_dict.py +++ b/util/q_and_a_dict.py @@ -1,6 +1,6 @@ question_and_answer = [ - {"question": "综合处有多少员工,男女员工分别有多少", + {"question": "XX部有多少员工,男女员工分别有多少", "answer": ''' SELECT COUNT(*) 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 WHERE p.internal_dept IN (SELECT "id" FROM "IUAP_APDOC_BASEDOC"."org_orgs" START - WITH "name"||"shortname" LIKE '%综合处%' + WITH "name"||"shortname" LIKE '%XX部%' CONNECT BY PRIOR "id" = "parentid" ) AND p.dr = 0 @@ -192,13 +192,13 @@ question_and_answer = [ END LIMIT 1000 ''' }, { - "question": "数信中心下有多少员工", + "question": "XX中心下有多少员工", "answer": ''' select count(*) from YJOA_APPSERVICE_DB.t_pr3rl2oj_yj_person_database where internal_dept in (SELECT "id" 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" ) @@ -217,14 +217,14 @@ question_and_answer = [ ''' }, { - "question": "数信中心下各个处室分别有多少人", + "question": "XX中心下各个处室分别有多少人", "answer": ''' SELECT o.name AS "处室名称", COUNT(p.id) AS "人数" FROM YJOA_APPSERVICE_DB.t_pr3rl2oj_yj_person_database p JOIN IUAP_APDOC_BASEDOC.org_orgs o ON p.internal_dept = o.id WHERE p.internal_dept IN ( 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" ) AND p.dr = 0 @@ -248,7 +248,7 @@ question_and_answer = [ ''' }, { - "question": "10月数信中心有哪些有员工请假", + "question": "10月XX中心有哪些有员工请假", "answer": ''' SELECT p."id" AS "id", p."code" AS "工号", @@ -262,7 +262,7 @@ question_and_answer = [ AND ps."date_value" LIKE '2025-10%' and p.internal_dept in (SELECT "id" 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" ) AND p."dr" = 0 @@ -279,7 +279,7 @@ question_and_answer = [ ''' }, { - "question": "数信中心员工年龄段分布图", + "question": "XX中心员工年龄段分布图", "answer": ''' SELECT CASE @@ -301,10 +301,10 @@ question_and_answer = [ WHERE "parentid" IN ( SELECT "id" 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" 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 CASE @@ -318,7 +318,7 @@ question_and_answer = [ ORDER BY "age_group" ASC LIMIT 1000 ''' },{ - "question": "查询综合处下面的员工以及他们的年龄", + "question": "查询XX部下面的员工以及他们的年龄", "answer": ''' SELECT p."id" AS "员工ID", p."name" AS "姓名", @@ -331,7 +331,7 @@ question_and_answer = [ WHERE p."dr" = 0 AND o."id" IN (SELECT "id" 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") AND p."birthday" IS NOT NULL AND p."birthday" != '' @@ -340,7 +340,7 @@ question_and_answer = [ ''' }, { - "question": "查询综合处下面的员工的平均年龄", + "question": "查询XX部下面的员工的平均年龄", "answer": ''' SELECT ROUND(AVG(2025 - CAST(SUBSTR(p."birthday", 1, 4) AS INT)), 2) AS "平均年龄" FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p @@ -348,7 +348,7 @@ question_and_answer = [ WHERE p."dr" = 0 AND o."id" IN (SELECT "id" 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") AND p."birthday" IS NOT NULL AND p."birthday" != '' @@ -356,7 +356,7 @@ question_and_answer = [ ''' }, { - "question": "综合处有几个人,男员工,女员工分别有多少", + "question": "XX部有几个人,男员工,女员工分别有多少", "answer": ''' SELECT COUNT(*) 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 ( SELECT "id" 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" ) AND p."dr" = 0 @@ -373,13 +373,13 @@ question_and_answer = [ ''' }, { - "question": "综合处女员工有多少", + "question": "XX综合部女员工有多少", "answer": ''' SELECT (SELECT COUNT(*) FROM "YJOA_APPSERVICE_DB"."t_pr3rl2oj_yj_person_database" p WHERE p."internal_dept" IN (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" ) AND p."gender" = '2' @@ -388,14 +388,14 @@ question_and_answer = [ ''' }, { - "question": "数信中心今天各个处室在岗人员数量", + "question": "XX中心今天各个处室在岗人员数量", "answer": ''' SELECT o.name AS "处室名称", COUNT(p.id) AS "人数" FROM YJOA_APPSERVICE_DB.t_pr3rl2oj_yj_person_database p JOIN IUAP_APDOC_BASEDOC.org_orgs o ON p.internal_dept = o.id WHERE p.internal_dept IN ( 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" ) 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": ''' SELECT o.name AS "处室名称", COUNT(p.id) AS "人数" FROM YJOA_APPSERVICE_DB.t_pr3rl2oj_yj_person_database p JOIN IUAP_APDOC_BASEDOC.org_orgs o ON p.internal_dept = o.id WHERE p.internal_dept IN ( 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" ) - AND p.dr = 0 AND o.name LIKE '%综合管理处%' + AND p.dr = 0 AND o.name LIKE '%XX管理处%' GROUP BY o.name ORDER BY "人数" DESC LIMIT 1000