自定义提示词
Notemd 允许你为每种任务类型覆盖默认的 LLM 提示语。 自定义提示语让你能够控制模型的优先级:你可以将概念提取限制在特定领域,更改链接风格,或调整翻译的语气。像 {{content}} 和 {{concept}} 这样的提示变量会在运行时被替换。专注学习领域功能会自动在提取结果前加上你的研究领域名称,从而限定结果范围。
这是Obsidian AI知识管理指南的一部分。
概览
Notemd内置的提示词是为通用知识处理任务设计的。它们在多个领域都能良好运行,但仍有空间进行领域特定的优化。自定义提示词可以让您明确告知LLM针对您的具体需求应如何运作——无论是仅提取医学术语、仅关联命名实体,还是以正式语体进行翻译。
自定义提示词不会取代整个系统提示词。它们会覆盖或补充特定任务的操作指令部分,同时保留 Notemd 用于解析的结构化输出格式(如 CONCEPT: 行、维基链接语法)。
它是如何工作的?
提示词架构
每个 Notemd 任务都遵循相同的提示结构:
[System role: You are a helpful assistant...]
[Domain constraint: Relevant Fields: [{domain}]] <-- focused learning (optional)
[Custom task prompt] <-- your override (optional)
[Output format instructions] <-- always preserved
[Content: {{content}}] <-- runtime substitution
- 基础系统提示 -- 设定助手的角色。不可被覆盖。
- 专注学习领域 -- 通过添加
Relevant Fields: [medicine / law / computer science / ...]来限定范围。这是一个设置开关,而非原始提示语。 - 自定义任务提示 -- 用于替换默认的任务说明(例如需要提取哪些类型的概念、链接的强度如何控制)。
- 输出格式 -- 结构规则(
CONCEPT:行,wiki 链接格式)。始终以 Notemd 结尾以确保可解析性。 - 内容 -- 实际的笔记文本,运行时通过
{{content}}进行替换。
提示词变量
变量会在执行时被替换。可用变量因任务而异:
| 变量 | 任务 | 已替换为 |
|---|---|---|
{{content}} | 全部 | 备注或选中文本 |
{{concept}} | 概念说明模板 | 提取出的概念名称 |
{{description}} | 概念说明模板 | 由LLM生成的概念描述 |
{{backlinks}} | 概念说明模板 | 包含链接的源代码注释列表 |
{{date}} | 概念说明模板 | 当前日期(YYYY-MM-DD) |
{{language}} | 翻译 | 目标输出语言 |
{{source}} | 概念说明模板 | 源文件备注文件名 |
专注学习领域
聚焦学习功能是领域范围设定的快捷方式。无需编写提及您所在领域的自定义提示语,只需在设置中输入 focusedLearningDomain 即可:
Settings → Advanced → Focused Learning Domain
Example: "medicine" or "computer science" or "Chinese philosophy"
这会在提取提示的前面加上 Relevant Fields: [medicine],从而使 LLM 优先考虑与领域相关的概念,同时忽略通用概念。它的体积比完整的自定义提示更小,且适用于所有的提取任务。
配置
| 设置 | 默认值 | 效果 |
|---|---|---|
customAddLinksPrompt | '' | 覆盖默认的添加链接任务提示 |
customExtractConceptsPrompt | '' | 覆盖默认的概念提取提示词 |
customResearchPrompt | '' | 覆盖默认的调研+总结提示词 |
customTranslatePrompt | '' | 覆盖默认的翻译提示语 |
customDiagramPrompt | '' | 覆盖默认的图表生成提示语 |
focusedLearningDomain | '' | 在提取和链接提示语的前面加上领域背景信息 |
extractConceptsMinimalTemplate | true | 使用仅标题的概念说明模板(会影响 {{concept}} 模板的适用范围) |
customConceptNoteTemplate | '' | 用完整的变量支持覆盖概念说明文件模板 |
当自定义提示字段为空时,将使用内置的默认提示。
示例
你是一名医学研究员,负责从临床试验记录中提取概念。默认的提示词会同时提取普通名词和医学术语,这会让你的概念文件夹变得杂乱无章。
解决方案: 设定专注的学习领域以及自定义的提取提示。
- 将
focusedLearningDomain设置为medicine - 将
customExtractConceptsPrompt设置为:
Extract only clinically relevant concepts: diseases, drug names,
anatomical terms, measurement endpoints, and statistical methods.
Ignore generic English nouns, brand names, and institutional names.
Prioritize MeSH terminology where applicable.
现在,当你在临床笔记上运行“提取概念”功能时,LLM 会生成:
CONCEPT: Randomized Controlled Trial
CONCEPT: Double-Blind Method
CONCEPT: Myocardial Infarction
CONCEPT: Creatine Kinase-MB
CONCEPT: Kaplan-Meier Estimate
而不是那种可能会提取出“医院”或“月份”之类不需要的通用术语的默认行为。
技巧
- 在编写完整的自定义提示语之前,先从专注的学习领域开始。通过一个设置即可覆盖80%的使用场景。
- 保留输出格式 -- 永远不要从自定义提示中删除诸如“每行一个”或“CONCEPT: 前缀”之类的格式说明。Notemd的解析器依赖于这些说明。
- 先使用单条笔记进行测试——自定义提示词可能会对提取的覆盖范围产生意外影响。在批量处理之前,请先在一条笔记上验证。
- 保持提示语简洁——过长的自定义提示语会消耗令牌,进而削弱模型的专注度。
后续步骤
- Wiki-Links -- 当你自定义添加链接提示时,会链接到什么内容
- 概念说明 -- 概念说明模板与
{{concept}}变量 - 批量处理 -- 对整个文件夹应用自定义提示词
- 故障排除 -- 解决自定义提示词产生意外输出的问题