Some checks failed
continuous-integration/drone/push Build is failing
更新内容: - 后端 AI 服务优化(能力分析、知识点解析等) - 前端考试和陪练界面更新 - 修复多个 prompt 和 JSON 解析问题 - 更新 Coze 语音客户端
154 lines
4.6 KiB
Python
154 lines
4.6 KiB
Python
"""
|
||
知识点分析提示词模板
|
||
|
||
功能:从课程资料中提取知识点
|
||
"""
|
||
|
||
# ==================== 元数据 ====================
|
||
|
||
PROMPT_META = {
|
||
"name": "knowledge_analysis",
|
||
"display_name": "知识点分析",
|
||
"description": "从课程资料中提取和分析知识点,支持PDF/Word/文本等格式",
|
||
"module": "kaopeilian",
|
||
"variables": ["course_name", "content"],
|
||
"version": "2.0.0",
|
||
"author": "kaopeilian-team",
|
||
}
|
||
|
||
|
||
# ==================== 系统提示词 ====================
|
||
|
||
SYSTEM_PROMPT = """# 角色
|
||
你是一个文件拆解高手,擅长将用户提交的内容进行精准拆分,拆分后的内容做个简单的优化处理使其更具可读性,但要尽量使用原文的原词原句。
|
||
|
||
## 技能
|
||
### 技能 1: 内容拆分
|
||
1. 当用户提交内容后,拆分为多段。
|
||
2. 对拆分后的内容做简单优化,使其更具可读性,比如去掉奇怪符号(如换行符、乱码),若语句不通顺,或格式原因导致错位,则重新表达。用户可能会提交录音转文字的内容,因此可能是有错字的,注意修复这些小瑕疵。
|
||
3. 优化过程中,尽量使用原文的原词原句,特别是话术类,必须保持原有的句式、保持原词原句,而不是重构。
|
||
4. 注意是拆分而不是重写,不需要润色,尽量不做任何处理。
|
||
5. 输出到 content。
|
||
|
||
### 技能 2: 为每一个选段概括一个标题
|
||
1. 为每个拆分出来的选段概括一个标题,并输出到 title。
|
||
|
||
### 技能 3: 为每一个选段说明与主题的关联
|
||
1. 详细说明这一段与全文核心主题的关联,并输出到 topic_relation。
|
||
|
||
### 技能 4: 为每一个选段打上一个类型标签
|
||
1. 用户提交的内容很有可能是一个课程、一篇讲义、一个产品的说明书,通常是用户希望他公司的员工或高管学习的知识。
|
||
2. 用户通常是医疗美容机构或轻医美、生活美容连锁品牌。
|
||
3. 你要为每个选段打上一个知识类型的标签,最好是这几个类型中的一个:"理论知识", "诊断设计", "操作步骤", "沟通话术", "案例分析", "注意事项", "技巧方法", "客诉处理"。当然你也可以为这个选段匹配一个更适合的。
|
||
|
||
## 输出要求(严格按要求输出)
|
||
请直接输出一个纯净的 JSON 数组(Array),不要包含 Markdown 标记(如 ```json),也不要包含任何解释性文字。格式如下:
|
||
|
||
[
|
||
{
|
||
"title": "知识点标题",
|
||
"content": "知识点内容",
|
||
"topic_relation": "知识点与主题的关系",
|
||
"type": "知识点类型"
|
||
},
|
||
{
|
||
"title": "第二个知识点标题",
|
||
"content": "第二个知识点内容...",
|
||
"topic_relation": "...",
|
||
"type": "..."
|
||
}
|
||
]
|
||
|
||
## 限制
|
||
- 仅围绕用户提交的内容进行拆分和关联标注,不涉及其他无关内容。
|
||
- 拆分后的内容必须最大程度保持与原文一致。
|
||
- 关联说明需清晰合理。
|
||
- 不论如何,不要拆分超过 20 段!"""
|
||
|
||
|
||
# ==================== 用户提示词模板 ====================
|
||
|
||
USER_PROMPT = """课程主题:{course_name}
|
||
|
||
## 用户提交的内容:
|
||
|
||
{content}
|
||
|
||
## 注意
|
||
|
||
- 以json的格式输出
|
||
- 不论如何,不要拆分超过20 段!"""
|
||
|
||
|
||
# ==================== JSON Schema ====================
|
||
|
||
KNOWLEDGE_POINT_SCHEMA = {
|
||
"type": "array",
|
||
"items": {
|
||
"type": "object",
|
||
"required": ["title", "content", "type"],
|
||
"properties": {
|
||
"title": {
|
||
"type": "string",
|
||
"description": "知识点标题",
|
||
"maxLength": 200
|
||
},
|
||
"content": {
|
||
"type": "string",
|
||
"description": "知识点内容"
|
||
},
|
||
"topic_relation": {
|
||
"type": "string",
|
||
"description": "与主题的关系描述"
|
||
},
|
||
"type": {
|
||
"type": "string",
|
||
"description": "知识点类型",
|
||
"enum": [
|
||
"理论知识",
|
||
"诊断设计",
|
||
"操作步骤",
|
||
"沟通话术",
|
||
"案例分析",
|
||
"注意事项",
|
||
"技巧方法",
|
||
"客诉处理",
|
||
"其他"
|
||
]
|
||
}
|
||
}
|
||
},
|
||
"minItems": 1,
|
||
"maxItems": 20
|
||
}
|
||
|
||
|
||
# ==================== 知识点类型常量 ====================
|
||
|
||
KNOWLEDGE_POINT_TYPES = [
|
||
"理论知识",
|
||
"诊断设计",
|
||
"操作步骤",
|
||
"沟通话术",
|
||
"案例分析",
|
||
"注意事项",
|
||
"技巧方法",
|
||
"客诉处理",
|
||
]
|
||
|
||
DEFAULT_KNOWLEDGE_TYPE = "理论知识"
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|
||
|