跳到主要内容

自定义提示词

💡TL;DR

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
  1. 基础系统提示 -- 设定助手的角色。不可被覆盖。
  2. 专注学习领域 -- 通过添加 Relevant Fields: [medicine / law / computer science / ...] 来限定范围。这是一个设置开关,而非原始提示语。
  3. 自定义任务提示 -- 用于替换默认的任务说明(例如需要提取哪些类型的概念、链接的强度如何控制)。
  4. 输出格式 -- 结构规则(CONCEPT: 行,wiki 链接格式)。始终以 Notemd 结尾以确保可解析性。
  5. 内容 -- 实际的笔记文本,运行时通过 {{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''在提取和链接提示语的前面加上领域背景信息
extractConceptsMinimalTemplatetrue使用仅标题的概念说明模板(会影响 {{concept}} 模板的适用范围)
customConceptNoteTemplate''用完整的变量支持覆盖概念说明文件模板

当自定义提示字段为空时,将使用内置的默认提示。

示例

你是一名医学研究员,负责从临床试验记录中提取概念。默认的提示词会同时提取普通名词和医学术语,这会让你的概念文件夹变得杂乱无章。

解决方案: 设定专注的学习领域以及自定义的提取提示。

  1. focusedLearningDomain 设置为 medicine
  2. 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}} 变量
  • 批量处理 -- 对整个文件夹应用自定义提示词
  • 故障排除 -- 解决自定义提示词产生意外输出的问题