Skip to content

Commit c2898e4

Browse files
authored
Merge pull request #16 from twj666/master
[dev] 3种基础问答的提示词集成
2 parents af09ae1 + 1cf6b91 commit c2898e4

3 files changed

Lines changed: 373 additions & 0 deletions

File tree

Lines changed: 150 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,150 @@
1+
package io.github.timemachinelab.core.constant;
2+
3+
public class QFormPrompt {
4+
5+
public final static String Q_FROM_PROMPT =
6+
"""
7+
## 表单形式提示词
8+
9+
### 描述
10+
11+
快速收集用户需求的核心要素,为后续深度挖掘提供基础信息框架。
12+
13+
### 触发条件判断逻辑
14+
15+
AI评估用户输入的信息完整度:
16+
17+
+ 缺少基本目标描述
18+
+ 缺少关键背景信息
19+
+ 总体描述过于简单
20+
+ **重要约束**:只有当存在多个相关性高的子问题且能一次性收集时才使用表单
21+
+ **避免滥用**:表单提问用户体验较差,能用其他形式解决的优先使用其他方式
22+
23+
### 输出格式规范
24+
25+
+ 你必须要按照标准的无误的 json 格式给我返回结果,其他的什么都不要给我
26+
27+
```json
28+
{
29+
"question": "表单引导语",
30+
"type": "form",
31+
"parentId": "对话ID",
32+
"fields": [
33+
{
34+
"id": "字段标识",
35+
"question": "字段问题描述",
36+
"type": "input|single|muti",
37+
"options": [
38+
{
39+
"id": "选项标识",
40+
"label": "选项显示文本"
41+
}
42+
], // 仅single/muti类型需要
43+
"desc": "字段的详细说明或引导", // 可选
44+
"weight": "权重分数"
45+
}
46+
],
47+
"desc": "表单的详细说明、填写引导或补充解释" // 可选
48+
}
49+
```
50+
51+
### 规则
52+
53+
**1. question字段生成规则**
54+
55+
+ AI根据用户当前描述情况生成合适的引导语
56+
+ 需体现对用户已有信息的理解和对补充信息的需求
57+
+ 保持简洁友好的表达方式
58+
59+
**2. fields数组生成规则**
60+
61+
+ **字段数量**:2-5个字段
62+
+ AI分析用户描述,识别缺失的关键信息维度并生成对应字段
63+
+ 按weight权重从高到低排序
64+
+ 优先使用选择类型,减少用户键盘输入
65+
66+
**3. 单个field对象规则**
67+
68+
+ **id**:使用英文标识,与question内容对应
69+
+ **question**:AI生成的简洁明确问题,不超过20字
70+
+ **type**:优先级顺序选择
71+
- single:是否类型或单选题
72+
- muti:多选题
73+
- **input**:预期一句话或简短描述
74+
+ **options**:仅single/muti类型需要的选项数组
75+
+ **desc**:可选字段,当字段需要补充说明时使用
76+
+ **weight**:权重分数1-10,最重要的信息为10分,依次递减
77+
78+
**4. options数组生成规则**
79+
80+
+ **适用类型**:仅当type为single或muti时需要
81+
+ **选项数量**:single类型2-4个选项,muti类型3-6个选项
82+
+ **选项内容**:
83+
- **id**:英文标识,用于程序处理
84+
- **label**:中文显示文本,简洁明确
85+
+ **是否类型**:single类型常用于是/否、有/无等二元选择
86+
+ **多选类型**:muti类型用于可选择多个答案的情况
87+
88+
**5. desc字段规则**
89+
90+
+ **表单级desc**:表单整体的说明引导
91+
+ **字段级desc**:单个字段的补充说明
92+
+ **长度限制**:不超过100字
93+
+ **作用**:帮助用户理解填写要求
94+
95+
**6. 权重评分规则**
96+
97+
+ AI评估每个字段信息对理解用户需求的重要程度
98+
+ 权重越高的字段排在fields数组越前面
99+
+ 权重相同时,优先考虑更基础的信息维度
100+
101+
**7. 表单使用约束**
102+
103+
+ **谨慎使用**:表单提问用户体验相对较差
104+
+ **使用条件**:必须是多个相关性高的问题能够一次性收集
105+
+ **替代优先**:单一问题或简单追问优先使用其他交互方式
106+
107+
**8. 信息收集原则**
108+
109+
+ 专注基础要素收集,避免深度细节
110+
+ 基于用户已提供信息,只询问缺失部分
111+
+ 为后续交互类型提供足够的上下文信息
112+
113+
**9. 字段去重逻辑**
114+
115+
+ AI分析用户输入中已明确表达的信息维度
116+
+ 已知信息对应的字段不再包含在fields中
117+
+ 确保每个字段都有收集价值
118+
119+
### 用户回答的JSON格式
120+
121+
+ other1,other2 代表用户自己的输入内容
122+
123+
**具体示例**
124+
125+
```json
126+
{
127+
"questionId": "question_001",
128+
"answer": [
129+
{
130+
"id": "urgency",
131+
"value": ["urgent"]
132+
},
133+
{
134+
"id": "required_features",
135+
"value": ["user_login", "payment_system", "other1"]
136+
},
137+
{
138+
"id": "project_type",
139+
"value": ["website"]
140+
},
141+
{
142+
"id": "description",
143+
"value": ["需要开发一个电商网站"]
144+
}
145+
]
146+
}
147+
```
148+
149+
""";
150+
}
Lines changed: 138 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,138 @@
1+
package io.github.timemachinelab.core.constant;
2+
3+
public class QSelectPrompt {
4+
5+
public final static String Q_SELECT_PROMPT =
6+
"""
7+
## 选项形式提示词
8+
9+
### 描述
10+
11+
针对单一维度问题提供多个预设选项,让用户快速选择而非自由输入。
12+
13+
### 触发条件判断逻辑
14+
15+
AI评估用户输入和对话情况:
16+
17+
+ 存在单一明确的选择性问题
18+
+ 可以预设3-6个合理选项覆盖主要情况
19+
+ 选项之间互斥或有明确优先级
20+
+ 用户自由回答可能过于宽泛或低效
21+
+ **优先级**:相比input类型和表单体验更好,应优先考虑使用
22+
23+
### 输出格式规范
24+
25+
+ 你必须要按照标准的无误的 json 格式给我返回结果,其他的什么都不要给我
26+
27+
**单选类型**
28+
29+
```json
30+
{
31+
"question": "选择问题描述",
32+
"type": "single",
33+
"parentId": "对话ID",
34+
"options": [
35+
{
36+
"id": "选项标识",
37+
"label": "选项显示文本"
38+
}
39+
],
40+
"desc": "问题的详细说明、引导提示或补充解释" // 可选
41+
}
42+
```
43+
44+
**多选类型**
45+
46+
```json
47+
{
48+
"question": "选择问题描述",
49+
"type": "muti",
50+
"parentId": "对话ID",
51+
"options": [
52+
{
53+
"id": "选项标识",
54+
"label": "选项显示文本"
55+
}
56+
],
57+
"desc": "问题的详细说明、引导提示或补充解释" // 可选
58+
}
59+
```
60+
61+
### 规则
62+
63+
**1. question字段生成规则**
64+
65+
+ AI生成清晰的选择性问题
66+
+ 问题表述要让用户明确知道需要选择什么
67+
+ 保持简洁,一般不超过20字
68+
69+
**2. type字段规则**
70+
71+
+ single:单选模式,用户只能选择一个选项
72+
+ muti:多选模式,用户可以选择多个选项
73+
+ **判断标准**:问题中包含"哪些"、"都有什么"等多选指向词汇时使用muti
74+
75+
**3. options数组生成规则**
76+
77+
+ 选项数量:3-6个选项
78+
+ 按weight权重从高到低排序
79+
+ 选项需要覆盖用户可能的主要情况
80+
+ 选项之间应相互独立且具有区分度
81+
82+
**4. 单个option对象规则**
83+
84+
+ **id**:使用英文标识,便于程序处理
85+
+ **label**:简洁的中文显示文本,不超过10字
86+
87+
**5. desc字段规则**
88+
89+
+ **可选字段**:当问题需要补充说明或引导时使用
90+
+ **内容包含**:问题背景解释、选择引导、注意事项等
91+
+ **长度限制**:不超过100字
92+
+ **作用**:帮助用户理解问题含义和选择标准
93+
94+
**6. 选项设计原则**
95+
96+
+ **全面性**:选项应覆盖80%以上的常见情况
97+
+ **互斥性**:单选时选项之间不应重叠
98+
+ **渐进性**:按重要程度或常见程度排序
99+
+ **简洁性**:选项文本清晰易懂
100+
101+
**7. 使用场景约束**
102+
103+
+ **优先使用**:相比input类型和表单,选项形式用户体验最佳
104+
+ **适用情况**:问题有明确的选择边界和有限的答案空间
105+
+ **避免滥用**:不适合开放性问题或需要详细描述的情况
106+
107+
**8. 权重评分逻辑**
108+
109+
+ 基于选项的常见程度和重要性评分
110+
+ 最符合用户可能需求的选项权重最高
111+
+ 权重相同时按逻辑顺序排列
112+
113+
### 用户回答的JSON格式
114+
115+
+ other1,other2 代表用户自己的输入内容
116+
117+
**具体示例**
118+
119+
单选示例:
120+
121+
```json
122+
{
123+
"questionId": "project_urgency_001",
124+
"answer": ["urgent", "other1"]
125+
}
126+
```
127+
128+
多选示例:
129+
130+
```json
131+
{
132+
"questionId": "required_features_002",
133+
"answer": ["user_login", "payment_system", "admin_panel", "other1", "other2"]
134+
}
135+
```
136+
137+
""";
138+
}
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
package io.github.timemachinelab.core.constant;
2+
3+
public class QuestionPrompt {
4+
5+
public final static String QUESTION_PROMPT =
6+
"""
7+
## 问答形式提示词
8+
9+
### 描述
10+
11+
针对开放性问题或需要详细回答的单一问题,引导用户进行自然语言回复。
12+
13+
### 触发条件判断逻辑
14+
15+
AI评估用户输入和对话情况:
16+
17+
+ 存在单一关键问题需要深入了解
18+
+ 问题具有开放性,无法用预设选项覆盖
19+
+ 需要用户提供具体描述、案例或详细信息
20+
+ 用户的回答对后续对话走向有重要影响
21+
+ **使用时机**:当单选类型和多选类型都不适用时的fallback方案
22+
23+
### 输出格式规范
24+
25+
+ 你必须要按照标准的无误的 json 格式给我返回结果,其他的什么都不要给我
26+
27+
```json
28+
{
29+
"question": "问题描述",
30+
"type": "input",
31+
"parentId": "对话ID",
32+
"desc": "问题的详细说明、引导提示或补充解释" // 可选
33+
}
34+
```
35+
36+
### 规则
37+
38+
**1. question字段生成规则**
39+
40+
+ AI生成具体明确的问题
41+
+ 问题应该有明确的指向性,避免过于宽泛
42+
+ 使用疑问句形式,让用户明确知道需要回答什么
43+
+ 长度控制在15-40字之间
44+
45+
**2. desc字段规则**
46+
47+
+ **可选字段**:当问题需要补充说明或引导时使用
48+
+ **内容包含**:问题背景解释、回答引导、示例说明、输入提示等
49+
+ **长度限制**:不超过100字
50+
+ **作用**:帮助用户理解问题含义和回答方向,提供回答示例
51+
52+
**3. 问题设计原则**
53+
54+
+ **具体性**:避免"你觉得怎么样"这类过于宽泛的问题
55+
+ **引导性**:问题本身要能引导用户提供有价值的信息
56+
+ **相关性**:与用户当前需求和对话上下文紧密相关
57+
+ **渐进性**:从核心问题开始,逐步深入细节
58+
59+
**4. 使用场景约束**
60+
61+
+ **慎重使用**:input类型对用户要求最高,容易造成对话中断
62+
+ **适用情况**:确实需要开放性回答且无法用其他类型替代
63+
+ **优化原则**:能用单选/多选解决的不用input类型
64+
65+
**5. 问题优化逻辑**
66+
67+
+ 避免连续多个input类型,容易让用户疲惫
68+
+ 基于用户已提供信息精准定位缺失部分
69+
+ 问题表述要让用户感觉有话可说,而非无从下手
70+
71+
### 用户回答的JSON格式
72+
73+
**具体示例**
74+
75+
回答示例:
76+
77+
```json
78+
{
79+
"questionId": "budget_range_001",
80+
"answer": "预算大概在10-20万之间"
81+
}
82+
```
83+
84+
""";
85+
}

0 commit comments

Comments
 (0)