q_a优化,提示词优化

This commit is contained in:
yujj128
2025-10-15 16:52:35 +08:00
parent 987db89d7d
commit 2b10826568
5 changed files with 108 additions and 16 deletions

View File

@@ -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" LIKE '%综合处%'
WITH "name"||"shortname" LIKE '%综合处%'
CONNECT BY PRIOR "id" = "parentid"
)
AND p.dr = 0
@@ -198,7 +198,7 @@ question_and_answer = [
from YJOA_APPSERVICE_DB.t_pr3rl2oj_yj_person_database
where internal_dept in (SELECT "id"
FROM "IUAP_APDOC_BASEDOC"."org_orgs" START
WITH "name" LIKE '%数信中心%'
WITH "name"||"shortname" LIKE '%数信中心%' AND "dr"=0 AND "enable"=1 AND "code" LIKE '%CYJ%'
CONNECT BY PRIOR "id" = "parentid"
)
@@ -224,7 +224,7 @@ question_and_answer = [
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" LIKE '%数信中心%'
START WITH "name"||"shortname" LIKE '%数信中心%' AND "dr"=0 AND "enable"=1 AND "code" LIKE '%CYJ%'
CONNECT BY PRIOR "id" = "parentid"
)
AND p.dr = 0
@@ -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" LIKE '%数信中心%'
WITH "name" || "shortname" LIKE '%数信中心%' 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": "数信中心员工年龄段分布图",
"answer": '''
SELECT
CASE
@@ -301,7 +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%'
) 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%')
)
GROUP BY
CASE
@@ -328,14 +331,15 @@ question_and_answer = [
WHERE p."dr" = 0
AND o."id" IN (SELECT "id"
FROM "IUAP_APDOC_BASEDOC"."org_orgs" START
WITH "name" LIKE '%综合处%'
WITH "name"||"shortname" LIKE '%综合处%' AND "dr"=0 AND "enable"=1 AND "code" LIKE '%CYJ%'
CONNECT BY PRIOR "id" = "parentid")
AND p."birthday" IS NOT NULL
AND p."birthday" != ''
ORDER BY o."name" ASC, p."birthday" DESC
LIMIT 1000;
'''
},{
},
{
"question": "查询综合处下面的员工的平均年龄",
"answer": '''
SELECT ROUND(AVG(2025 - CAST(SUBSTR(p."birthday", 1, 4) AS INT)), 2) AS "平均年龄"
@@ -344,12 +348,45 @@ question_and_answer = [
WHERE p."dr" = 0
AND o."id" IN (SELECT "id"
FROM "IUAP_APDOC_BASEDOC"."org_orgs" START
WITH "name" LIKE '%综合处%'
WITH "name"||"shortname" LIKE '%综合处%' AND "dr"=0 AND "enable"=1 AND "code" LIKE '%CYJ%'
CONNECT BY PRIOR "id" = "parentid")
AND p."birthday" IS NOT NULL
AND p."birthday" != ''
LIMIT 1000;
'''
},
{
"question": "综合处有几个人,男员工,女员工分别有多少",
"answer": '''
SELECT COUNT(*) AS "总人数",
SUM(CASE WHEN p."gender" = '1' THEN 1 ELSE 0 END) AS "男员工数",
SUM(CASE WHEN p."gender" = '2' THEN 1 ELSE 0 END) AS "女员工数"
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" LIKE '%综合处%' AND "dr"=0 AND "enable"=1 AND "code" LIKE '%CYJ%'
CONNECT BY PRIOR "id" = "parentid"
)
AND p."dr" = 0
LIMIT 1000;
'''
},
{
"question": "综合处女员工有多少",
"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%'
CONNECT BY PRIOR "id" = "parentid"
)
AND p."gender" = '2'
AND p."dr" = 0
) AS "女员工数"
'''
}
]

View File

@@ -963,6 +963,35 @@ org_orgs_ddl = '''
"role": "dimension",
"tags": ["部门名称","部门简称","部门缩写"]
},
{
"name": "enable",
"type": "INT",
"comment": "启用状态",
"value":{
"1":"启用"
"2":"未启用"
},
"role": "dimension",
"tags": ["部门启用","部门状态","是否启用"]
},
{
"name": "level",
"type": "INT",
"comment": "部门或单位层级",
"role": "dimension",
"tags": ["部门层级","级别"]
},
{
"name": "dr",
"type": "INT",
"comment": "删除标志",
"value": {
"0": "正常",
"1": "删除"
},
"role": "dimension",
"tags": ["状态标识", "软删除", "枚举"]
}
],
"tags": ["部门id","部门信息","部门名称"]

View File

@@ -1,7 +1,8 @@
import logging
from typing import Optional
from orjson import orjson
logger = logging.getLogger(__name__)
keywords = {
# "gender":{"1":"男","2":"女"},
"person_status":{"1":"草稿","2":"审批中","3":"制卡中","4":"已入库","5":"停用"},
@@ -43,7 +44,8 @@ def extract_nested_json(text):
stack = []
start_index = -1
results = []
if not text:
logger.warning("extract_nested_json: text is empty")
for i, char in enumerate(text):
if char in '{[':
if not stack: # 记录起始位置