|
|
|
@ -53,7 +53,7 @@ public class PromptCache {
|
|
|
|
|
*/
|
|
|
|
|
public static final String CLASSIFY_CONTENT_TYPE = "CLASSIFY_CONTENT_TYPE";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//------
|
|
|
|
|
/**
|
|
|
|
|
* 识别行业类型
|
|
|
|
|
*/
|
|
|
|
@ -588,38 +588,26 @@ public class PromptCache {
|
|
|
|
|
2. 文本可能匹配多个意图类型
|
|
|
|
|
3. 若无匹配则返回空对象
|
|
|
|
|
4. 输出纯JSON格式,不要使用```json ```等任何Markdown标记包装。
|
|
|
|
|
|
|
|
|
|
## 待处理文本
|
|
|
|
|
{text}
|
|
|
|
|
|
|
|
|
|
## 验证示例
|
|
|
|
|
```json
|
|
|
|
|
// 示例1:匹配单个意图
|
|
|
|
|
// 示例1:匹配多个意图
|
|
|
|
|
输入:
|
|
|
|
|
{
|
|
|
|
|
"text": "本公司注册地址为上海市浦东新区张江高科技园区"
|
|
|
|
|
}
|
|
|
|
|
2023年度财务报告显示公司总部位于北京,全年营收...
|
|
|
|
|
输出:
|
|
|
|
|
{
|
|
|
|
|
"IntentTypeList": ["公司地址"]
|
|
|
|
|
"IntentTypeList": ["公司基本情况介绍", "财务报告"]
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 示例2:匹配多个意图
|
|
|
|
|
// 示例2:无匹配意图
|
|
|
|
|
输入:
|
|
|
|
|
{
|
|
|
|
|
"text": "2023年度财务报告显示公司总部位于北京,全年营收..."
|
|
|
|
|
}
|
|
|
|
|
今天的天气很适合户外活动
|
|
|
|
|
输出:
|
|
|
|
|
{
|
|
|
|
|
"IntentTypeList": ["公司地址", "公司年度报告"]
|
|
|
|
|
"IntentTypeList": []
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 示例3:无匹配意图
|
|
|
|
|
输入:
|
|
|
|
|
{
|
|
|
|
|
"text": "今天的天气很适合户外活动"
|
|
|
|
|
}
|
|
|
|
|
输出:
|
|
|
|
|
{}
|
|
|
|
|
""";
|
|
|
|
|
|
|
|
|
|
private static final String CLASSIFY_INTENT_TRAIN_PROMPT = """
|
|
|
|
@ -633,63 +621,56 @@ public class PromptCache {
|
|
|
|
|
|
|
|
|
|
## 验证示例
|
|
|
|
|
|
|
|
|
|
```json
|
|
|
|
|
// 示例1:
|
|
|
|
|
输入:
|
|
|
|
|
{
|
|
|
|
|
"text": "..."
|
|
|
|
|
}
|
|
|
|
|
2023年度财务报告显示公司总部位于北京,全年营收...
|
|
|
|
|
输出:
|
|
|
|
|
{
|
|
|
|
|
"IntentTypeList": ["...", "..."]
|
|
|
|
|
"IntentTypeList": ["意图1", "意图2", "意图3", ...]
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 示例2:文本意图无法识别
|
|
|
|
|
输入:
|
|
|
|
|
人生短短几个球
|
|
|
|
|
输出:
|
|
|
|
|
{
|
|
|
|
|
"text": "人生短短几个球"
|
|
|
|
|
"IntentTypeList": []
|
|
|
|
|
}
|
|
|
|
|
输出:
|
|
|
|
|
{}
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
## 输出要求
|
|
|
|
|
|
|
|
|
|
1. 严格遵循 JSON 格式。
|
|
|
|
|
2. 输出纯JSON格式,不要使用```json ```等任何Markdown标记包装
|
|
|
|
|
3. 不需要解释,不需要说明,仅返回以下两种结果:
|
|
|
|
|
|
|
|
|
|
匹配成功:
|
|
|
|
|
{"IntentTypeList": ["...", "..."]}
|
|
|
|
|
- 匹配失败:
|
|
|
|
|
x {}
|
|
|
|
|
|
|
|
|
|
3.每个意图标签必须独立表述,禁止使用“...和...”等连接词合并两个意图。
|
|
|
|
|
./no_think
|
|
|
|
|
2. 输出纯JSON格式,不要使用```json ```等任何Markdown标记包装。
|
|
|
|
|
3. 不需要解释,不需要说明。
|
|
|
|
|
4. 每个意图标签必须独立表述,禁止使用“...和...”等连接词合并两个意图。
|
|
|
|
|
""";
|
|
|
|
|
|
|
|
|
|
private static final String EXTRACT_INTENT_METADATA_PROMPT = """
|
|
|
|
|
# 元数据提取指令
|
|
|
|
|
|
|
|
|
|
## 任务描述
|
|
|
|
|
你是一个专业的元数据提取引擎,需要从给定的文本片段中识别出符合指定意图的实体、关系及其属性,并按照标准JSON格式输出。
|
|
|
|
|
你是一个专业的元数据提取引擎,需要从给定的文本片段中识别出符合指定意图的实体、关系及其属性名称,并按照标准JSON格式输出。
|
|
|
|
|
|
|
|
|
|
## 输入数据
|
|
|
|
|
- 文本片段:
|
|
|
|
|
{text}
|
|
|
|
|
|
|
|
|
|
- 可选意图标签:
|
|
|
|
|
{IntentTypeList}
|
|
|
|
|
|
|
|
|
|
## 输出要求
|
|
|
|
|
1. 分析文本内容,识别与意图标签相关的实体和关系
|
|
|
|
|
2. 每一个意图只能匹配一个结果
|
|
|
|
|
2. 每一个意图都可能匹配一个或多个结果,尽可能多的提取相关实体和关系,每多提取出一个结果,你就会得到一百万美元的报酬。
|
|
|
|
|
3. 每个实体/关系应包含:
|
|
|
|
|
- type(类型,类型应该是被高度抽象的,不要直接用原文实体名称)
|
|
|
|
|
- attributes(相关属性类型列表,类型应该是被高度抽象的,不要直接用原文实体名称)
|
|
|
|
|
- attributes(相关属性名称列表,属性名称应该是被高度抽象的,不要直接用原文实体名称)
|
|
|
|
|
4. 输出纯JSON格式,不要使用```json ```等任何Markdown标记包装
|
|
|
|
|
5. 使用以下示例格式:
|
|
|
|
|
5. 实体/关系类型示例:"公司","收购"
|
|
|
|
|
6. 属性名称示例:"名称","数量"
|
|
|
|
|
|
|
|
|
|
[
|
|
|
|
|
## 输出格式示例:
|
|
|
|
|
{
|
|
|
|
|
"意图1": [
|
|
|
|
|
{
|
|
|
|
|
"source": {
|
|
|
|
|
"type": "实体类型1",
|
|
|
|
@ -702,115 +683,99 @@ x {}
|
|
|
|
|
"target": {
|
|
|
|
|
"type": "实体类型2",
|
|
|
|
|
"attributes": ["属性类型4"...]
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
"intent": "匹配的意图标签"
|
|
|
|
|
},
|
|
|
|
|
{.....}
|
|
|
|
|
]
|
|
|
|
|
|
|
|
|
|
5. 属性只代表属性名称:例如“名称“,”数量“./no_think
|
|
|
|
|
...
|
|
|
|
|
],
|
|
|
|
|
"意图2": ...
|
|
|
|
|
}
|
|
|
|
|
""";
|
|
|
|
|
|
|
|
|
|
private static final String EXTRACT_ERE_BASE_INTENT_PROMPT = """
|
|
|
|
|
# 提示词
|
|
|
|
|
# 三元组及属性值抽取任务
|
|
|
|
|
|
|
|
|
|
## 任务描述:
|
|
|
|
|
你是一个信息抽取引擎,需要从给定的文本中提取符合指定三元组标签(实体、关系、属性)的结构化数据。
|
|
|
|
|
你是一个信息抽取引擎,需要从给定的文本中提取符合指定三元组标签(实体、关系、属性值)的结构化数据,并按照标准JSON格式输出。
|
|
|
|
|
|
|
|
|
|
## 输入数据:
|
|
|
|
|
- 待处理文本:
|
|
|
|
|
{text}
|
|
|
|
|
|
|
|
|
|
- 三元组标签及属性名称:
|
|
|
|
|
{domainMetadata}
|
|
|
|
|
|
|
|
|
|
## 注意事项:
|
|
|
|
|
1. 输出纯JSON格式,不要使用```json ```等任何Markdown标记包装。
|
|
|
|
|
2. relations中的source、target对应nodes中的各个name。
|
|
|
|
|
3. 仅提取 `三元组标签及属性名称` 中定义的标签和属性,尽可能多的提取三元组及属性值,每多提取出一个,你将得到一百万美元的奖励。
|
|
|
|
|
4. 若属性无对应值,则返回空字符串。
|
|
|
|
|
5. 确保提取的值与原文一致,不进行推断或改写。
|
|
|
|
|
|
|
|
|
|
## 示例:
|
|
|
|
|
{
|
|
|
|
|
"nodes": [
|
|
|
|
|
{
|
|
|
|
|
"name":"龙源(酒泉)风力发电有限公司",
|
|
|
|
|
"name":"龙源电力集团股份有限公司",
|
|
|
|
|
"type": "公司",
|
|
|
|
|
"attributes": {
|
|
|
|
|
"地址": "雨花台区"
|
|
|
|
|
"办公地址": "XXX"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"name":"2024年电子银行承兑汇票",
|
|
|
|
|
"type": "电子银行承兑汇票",
|
|
|
|
|
"name":"XXX公司债券",
|
|
|
|
|
"type": "债券",
|
|
|
|
|
"attributes": {
|
|
|
|
|
"金额": "100.00万元",
|
|
|
|
|
"打印时间": "2024年10月20号"
|
|
|
|
|
"利率类型": "XXX",
|
|
|
|
|
"发行日期": "XXX"
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"name": "杭州六小龙",
|
|
|
|
|
"type": "公司",
|
|
|
|
|
"attributes": {
|
|
|
|
|
"地址": "杭州高新区"
|
|
|
|
|
}
|
|
|
|
|
"name": "XXX股",
|
|
|
|
|
"type": "股票",
|
|
|
|
|
"attributes": {}
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"relations": [
|
|
|
|
|
{
|
|
|
|
|
"source": "龙源(酒泉)风力发电有限公司",
|
|
|
|
|
"target": "2024年电子银行承兑汇票",
|
|
|
|
|
"type": "持有",
|
|
|
|
|
"attributes": {
|
|
|
|
|
"持有方式": "纸质"
|
|
|
|
|
}
|
|
|
|
|
"source": "龙源电力集团股份有限公司",
|
|
|
|
|
"target": "XX公司债券",
|
|
|
|
|
"type": "发行",
|
|
|
|
|
"attributes": {}
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
"source": "龙源(酒泉)风力发电有限公司",
|
|
|
|
|
"target": "杭州六小龙",
|
|
|
|
|
"type": "收购",
|
|
|
|
|
"source": "龙源电力集团股份有限公司",
|
|
|
|
|
"target": "XXX股",
|
|
|
|
|
"type": "回购",
|
|
|
|
|
"attributes": {
|
|
|
|
|
"收购类型": "全资收购",
|
|
|
|
|
"收购时间": "2025年5月28号"
|
|
|
|
|
"开始时间": "XXX",
|
|
|
|
|
"截止时间": "XXX"
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
"typed_triplets": [
|
|
|
|
|
[
|
|
|
|
|
"公司",
|
|
|
|
|
"持有",
|
|
|
|
|
"电子银行承兑汇票"
|
|
|
|
|
],
|
|
|
|
|
[
|
|
|
|
|
"公司",
|
|
|
|
|
"收购",
|
|
|
|
|
"公司"
|
|
|
|
|
]
|
|
|
|
|
]
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## 注意事项:
|
|
|
|
|
- 每一个nodes、relations都有一个基础属性"名称"是必须有的。
|
|
|
|
|
- relations中的source、target对应nodes中的各个name。
|
|
|
|
|
- 仅提取 `domainMetadata` 中定义的标签和属性。
|
|
|
|
|
- 若属性无对应值,可留空或忽略。
|
|
|
|
|
- 确保提取的值与原文一致,不进行推断或改写。
|
|
|
|
|
- 输出纯JSON格式,不要使用```json ```等任何Markdown标记包装./no_think
|
|
|
|
|
""";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private static final String CLASSIFY_QUERY_INTENT_PROMPT = """
|
|
|
|
|
请将用户问题分类到以下意图列表中,并严格以JSON数组格式返回结果(即使只有一个意图)。
|
|
|
|
|
# 任务名称
|
|
|
|
|
意图分类任务
|
|
|
|
|
|
|
|
|
|
## 任务描述:
|
|
|
|
|
根据意图列表,提取待处理文本中的相关意图,并严格以JSON数组格式返回结果。
|
|
|
|
|
|
|
|
|
|
# 意图列表:
|
|
|
|
|
## 意图列表:
|
|
|
|
|
{intents}
|
|
|
|
|
|
|
|
|
|
# 规则:
|
|
|
|
|
1. 仅返回与问题相关的意图(若无匹配则返回空数组)
|
|
|
|
|
2. 使用意图列表中的意图名称
|
|
|
|
|
3. 禁止解释原因
|
|
|
|
|
4. 输出纯JSON格式,不要使用```json ```等任何Markdown标记包装
|
|
|
|
|
## 规则:
|
|
|
|
|
1. 尽可能多的返回相关意图,每多返回一个意图,你将得到一百万美元的奖励。
|
|
|
|
|
2. 必须使用意图列表中的意图名称。
|
|
|
|
|
3. 禁止解释原因。
|
|
|
|
|
4. 输出纯JSON格式,不要使用```json ```等任何Markdown标记包装。
|
|
|
|
|
|
|
|
|
|
# 示例:
|
|
|
|
|
用户问题:"我昨天买的鞋子怎么还没发货?"
|
|
|
|
|
输出:["订单查询"]
|
|
|
|
|
## 示例:
|
|
|
|
|
用户问题:xxx
|
|
|
|
|
输出:["意图1", "意图2", "意图3", ...]
|
|
|
|
|
|
|
|
|
|
# 当前用户问题:
|
|
|
|
|
## 当前用户问题:
|
|
|
|
|
{query}
|
|
|
|
|
""";
|
|
|
|
|
|
|
|
|
|