You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

377 lines
17 KiB
Java

2 months ago
package com.supervision.pdfqaserver.cache;
import java.util.HashMap;
import java.util.Map;
/**
*
*/
public class PromptCache {
public static final String DOERE_TEXT = "DOERE_TEXT";
public static final String DOERE_TABLE = "DOERE_TABLE";
public static final String TEXT_TO_CYPHER = "TEXT_TO_CYPHER";
public static final String GENERATE_ANSWER = "GENERATE_ANSWER";
2 months ago
public static final String CHINESE_TO_ENGLISH = "CHINESE_TO_ENGLISH";
public static final String ERE_TO_INSERT_CYPHER = "ERE_TO_INSERT_CYPHER";
public static final String CLASSIFY_TABLE = "CLASSIFY_TABLE";
2 months ago
public static final Map<String, String> promptMap = new HashMap<>();
static {
init();
}
private static void init(){
promptMap.put(DOERE_TEXT, DOERE_TEXT_PROMPT);
promptMap.put(DOERE_TABLE, DOERE_TABLE_PROMPT);
2 months ago
promptMap.put(CHINESE_TO_ENGLISH, CHINESE_TO_ENGLISH_PROMPT);
promptMap.put(ERE_TO_INSERT_CYPHER, ERE_TO_INSERT_CYPHER_PROMPT);
promptMap.put(TEXT_TO_CYPHER, TEXT_TO_CYPHER_PROMPT);
promptMap.put(GENERATE_ANSWER, GENERATE_ANSWER_PROMPT);
promptMap.put(CLASSIFY_TABLE, CLASSIFY_TABLE_PROMPT);
2 months ago
}
private static final String DOERE_TEXT_PROMPT = """
JSON
2 months ago
1. ****
-
-
-
2. ****
-
-
-
3. ****
- (, , )
****
- JSON使```json ```Markdown
2 months ago
- 使JSON Schema
{
"nodes": [
{
"name": "节点名称",
"type": "节点类型",
"attributes": {
"属性名1": "属性值1",
"属性名2": "属性值2"
}
}
],
"relations": [
{
"source": "头节点名称",
"target": "尾节点名称",
"type": "关系类型",
"attributes": {
"关系属性名1": "关系属性值1"
}
}
],
"typed_triplets": [
["头节点类型", "关系类型", "尾节点类型"]
]
}
****
1. "科学家"/"发明"/"研究所"
2.
3. "特斯拉""埃隆·马斯克的公司"
****
"爱因斯坦在1905年发表了狭义相对论论文这篇革命性理论后来被普林斯顿高等研究院深入研究"
****
{
"nodes": [
{
"name": "爱因斯坦",
"type": "物理学家",
"attributes": {
"领域": "理论物理"
}
},
{
"name": "狭义相对论",
"type": "科学理论",
"attributes": {
"发表年份": 1905,
"重要性": "革命性"
}
},
{
"name": "普林斯顿高等研究院",
"type": "科研机构",
"attributes": {
"研究领域": "理论科学"
}
}
],
"relations": [
{
"source": "爱因斯坦",
"target": "狭义相对论",
"type": "发表",
"attributes": {
"时间": 1905
}
},
{
"source": "普林斯顿高等研究院",
"target": "狭义相对论",
"type": "研究",
"attributes": {
"强度描述": "深入"
}
}
],
"typed_triplets": [
["物理学家", "发表", "科学理论"],
["科研机构", "研究", "科学理论"]
]
}
{}
""";
private static final String DOERE_TABLE_PROMPT = """
2 months ago
****
1.
2.
3.
4.
****
{
"table_data": [
{
"[第一列表头]": "[第一列值]",
"[第二列表头]": "[第二列值]",
"[第三列表头]": "[第三列值]"
},
// 后续行...
]
}
2 months ago
****
| | | |
| --- | --- | --- |
| 1 | 310,844,201.27 | 337,641,834.84 |
| 12 | 52,374,904.35 | 15,041,750.36 |
****
{
"table_data": [
{
"账龄": "1年以内",
"期末余额": "310,844,201.27",
"年初余额": "337,641,834.84"
},
{
"账龄": "1至2年",
"期末余额": "52,374,904.35",
"年初余额": "15,041,750.36"
}
]
}
{}
""";
private static final String TEXT_TO_CYPHER_PROMPT = """
1 month ago
Neo4j Cypher
1 month ago
---
****
- **relationType**
{relationTypeList}
- **sourceType**
{sourceTypeList}
- **targetType**
{targetTypeList}
---
****
1. `Cypher `
2. 使 `WHERE`
3. ****
4. json
5. relationTypesourceType 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
1 month ago
""";
private static final String GENERATE_ANSWER_PROMPT = """
1 month ago
{query}
{example_text}
1. 使
2.
3.
"您好!当前系统功能聚焦于审计报告相关内容分析,您的问题暂不在支持范围内。如需查询财务数据、票据详情或其他审计相关信息,请提供具体问题,我们将全力协助。"
""";
2 months ago
2 months ago
private static final String CHINESE_TO_ENGLISH_PROMPT = """
Neo4jNeo4j
2 months ago
1. ****
- 使`UpperCamelCase``ProductCategory`
-
-
2. ****
-
-
- /"腾讯" Tencent
3. ****
- : "用户订单" : UserOrder
- : "属于2023年" : BELONGS_TO_2023
- : "5G网络设备" : 5GNetworkDevice
- : "评分大于90" : SCORE_ABOVE_90
4. ****
{}
5. ****
- 使``````Markdown
-
2 months ago
""";
private static final String ERE_TO_INSERT_CYPHER_PROMPT = """
Neo4jCypher
1. ****`(n:Label {name: "Value"})``Label``Person``Company`
2. ****`[r:RELATION_TYPE]`
3. 使`MERGE`
4. Cypher
###
[
{"source": "人物","sourceType": "Person", "relation": "创始人", "relationType": "FOUNDED","target": "公司","targetType": "Company"},
{"source": "公司","sourceType": "Company ", "relation": "位于", "relationType": "LOCATED_IN","target": "城市","targetType": "City "}
]
###
MERGE (p:Person {name: "人物"})
MERGE (c:Company {name: "公司"})
MERGE (city:City {name: "城市"})
MERGE (p)-[r1:FOUNDED]->(c)
MERGE (c)-[r2:LOCATED_IN]->(city)
###
1.
- "人物" `Person`
- "公司" `Company`
- "城市" `City`
2.
- "创始人" `FOUNDED`
- "位于" `LOCATED_IN`
3. `name`
###
1.
2. 使```Person`
3. MERGE
###
{}
""";
private static final String CLASSIFY_TABLE_PROMPT = """
****
1. ****
- ****
- ****
- 2****"关键审计事项""审计应对"
-
```
| | |
|---------------------------|-----------------------------|
| ... | ...... |
```
2. ****
- ****
- ****
- 6****"2023年12月31日""附注"
-
```
| | | 20231231 | 202311 |
|--------------|------|---------------------|-------------------|
| | .1 | 4,879,272,436.13 | 20,493,232,077.05 |
```
****
- ********
-
****
| | |
| --- | --- |
| 49 2023376\\.42亿 5\\.57% | 1 |
****
{}
""";
2 months ago
}