""" 知识点分析提示词模板 功能:从课程资料中提取知识点 """ # ==================== 元数据 ==================== 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 = "理论知识"