From c72724f00be3d5f956d262b2cd625c19838657e0 Mon Sep 17 00:00:00 2001 From: daixiaoyi Date: Wed, 7 May 2025 14:24:50 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E7=A4=BA=E8=AF=8D=E9=80=82=E9=85=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../pdfqaserver/cache/PromptCache.java | 108 +++++++++--------- 1 file changed, 53 insertions(+), 55 deletions(-) diff --git a/src/main/java/com/supervision/pdfqaserver/cache/PromptCache.java b/src/main/java/com/supervision/pdfqaserver/cache/PromptCache.java index cc843f3..6712cc9 100644 --- a/src/main/java/com/supervision/pdfqaserver/cache/PromptCache.java +++ b/src/main/java/com/supervision/pdfqaserver/cache/PromptCache.java @@ -192,61 +192,59 @@ public class PromptCache { private static final String TEXT_TO_CYPHER_PROMPT = """ 你是一个专业的 Neo4j Cypher 查询语句生成器,专门用于构建针对特定结构的查询语句。 - - --- - - **【数据库结构说明】** - - - **关系类型(relationType)**: - {relationTypeList} - - - **源节点类型(sourceType)**: - {sourceTypeList} - - - **目标节点类型(targetType)**: - {targetTypeList} - - --- - - **【生成规则】** - - 1. 识别用户问题中的实体及意图,映射为 `Cypher 查询语句` - 2. 使用无条件匹配,不假设任何属性名称,不添加 `WHERE` 子句过滤。 - 3. 返回所有满足该关系的查询语句,并包含节点和关系的**所有属性**。 - 4. 仅输出 Cypher 代码块,不附加任何解释。 - 5. 如无法从结构中推断 relationType、sourceType 或 targetType,输出: - ``` - 无法根据数据库结构生成查询 - ``` - - --- - - **【示例】** - - 1. - **用户问题:** 查询“宝塔盛华商贸集团”的基本信息? - - **生成的 Cypher 查询:** - \\{ - "cypherQueries": [ - "MATCH (c:Company)-[r:HAS_LEGAL_REP]->(t) RETURN c, r, t", - "MATCH (c:Company)-[r:HAS_PHONE]->(t) RETURN c, r, t", - ..... - ] - \\} - - 2. - **用户问题:** 查询“宝塔盛华商贸集团”出具的电子银行承兑汇票金额是多少? - - **生成的 Cypher 查询:** - \\{ - "cypherQueries": [ - "MATCH (c:Company)-[r:IssueDocument]->(t:FinancialBill) RETURN c, r, t", - ..... - ] - \\} - - 【用户问题】 - {query} - - 【你的任务】 - 根据以上数据库结构和用户问题,生成正确的Cypher查询语句。 + + --- + + **【数据库结构说明】** + + - **关系类型(relationType)**: + {relationTypeList} + + - **源节点类型(sourceType)**: + {sourceTypeList} + + - **目标节点类型(targetType)**: + {targetTypeList} + + --- + + **【生成规则】** + + 1. 识别用户问题中的实体及意图,映射为 `Cypher 查询语句` + 2. 使用无条件匹配,不假设任何属性名称,不添加 `WHERE` 子句过滤。 + 3. 返回所有满足该关系的查询语句,并包含节点和关系的**所有属性**。 + 4. 仅输出 字符串格式的json对象,不需要加任何解释。 + 5. 如无法从结构中推断 relationType、sourceType 或 targetType,输出: + "无法根据数据库结构生成查询" + + --- + + **【示例】** + + 1. - **用户问题:** 查询“宝塔盛华商贸集团”的基本信息? + - **生成的 Cypher 查询:** + "\\{ + "cypherQueries": [ + "MATCH (c:Company)-[r:HAS_LEGAL_REP]->(t) RETURN c, r, t", + "MATCH (c:Company)-[r:HAS_PHONE]->(t) RETURN c, r, t", + ..... + ] + \\}" + + 2. - **用户问题:** 查询“宝塔盛华商贸集团”出具的电子银行承兑汇票金额是多少? + - **生成的 Cypher 查询:** + "\\{ + "cypherQueries": [ + "MATCH (c:Company)-[r:IssueDocument]->(t:FinancialBill) RETURN c, r, t", + ..... + ] + \\}" + + 【用户问题】 + {query} + + 【你的任务】 + 根据以上数据库结构和用户问题,生成正确的Cypher查询语句。 """; private static final String GENERATE_ANSWER_PROMPT = """