Skip to content

本地 AI 实战

基于 本地 AI 完整指南 完成环境配置后,本文介绍本地 AI 在 Obsidian 中的实际应用案例。

推荐模型选择

根据不同用途选择合适的模型:

用途推荐模型特点
通用对话Llama 3.2 7B平衡性能与速度
中文优化Qwen 2.5 7B中文理解强
代码生成CodeLlama 7B代码专精
推理任务DeepSeek-R1 7B逻辑推理强
长文本Mistral 7B32K 上下文
嵌入向量化nomic-embed-text检索优化

实用 Prompt 模板

笔记摘要

markdown
请用中文总结以下笔记内容:

{{selection}}

要求:
1. 提取 3-5 个核心观点
2. 每个观点不超过 30 字
3. 使用列表格式
4. 保留关键数据

内容润色

markdown
请润色以下文字:

{{selection}}

要求:
1. 修正语法错误
2. 改善表达流畅度
3. 保持原意不变
4. 使用简洁的语言

知识问答

markdown
基于我的问题,请提供详细解答:

问题:{{question}}

背景:{{context}}

要求:
1. 回答准确完整
2. 如有不确定的地方请说明
3. 提供相关建议

学习卡片

markdown
将以下内容转化为学习卡片:

{{content}}

格式:
Q: 问题
A: 答案

要求:
- 每个知识点一张卡片
- 问题简洁明了
- 答案完整准确

中英翻译

markdown
请将以下内容翻译为中文/英文:

{{selection}}

要求:
1. 保持专业术语的准确性
2. 语气与原文一致
3. 必要时保留原文术语(括号标注)

Templater 集成实战

自动摘要脚本

在 Templater 中创建自定义函数:

javascript
// 用户脚本文件: scripts/askLocalAI.js

async function askLocalAI(prompt, model = "llama3.2") {
  const response = await fetch("http://localhost:11434/api/generate", {
    method: "POST",
    headers: { "Content-Type": "application/json" },
    body: JSON.stringify({
      model: model,
      prompt: prompt,
      stream: false
    })
  });
  
  const data = await response.json();
  return data.response;
}

module.exports = askLocalAI;

在模板中使用:

markdown
<%*
const content = tp.file.selection();
if (content) {
  const prompt = `请用中文总结以下内容,不超过200字:\n\n${content}`;
  const summary = await tp.user.askLocalAI(prompt);
  tR += `\n\n## AI 摘要\n${summary}`;
}
%>

多模型协作工作流

不同任务使用不同模型:

javascript
// 用户脚本文件: scripts/aiWorkflow.js

async function analyzeContent(content) {
  // 第一步:提取关键点(小模型,快速)
  const keyPoints = await askLocalAI(
    `提取关键点:${content}`,
    "phi3"
  );
  
  // 第二步:深度分析(大模型,更准确)
  const analysis = await askLocalAI(
    `分析以下关键点的关联:${keyPoints}`,
    "llama3.2"
  );
  
  // 第三步:生成建议(中文模型,自然表达)
  const suggestions = await askLocalAI(
    `基于分析提出行动建议:${analysis}`,
    "qwen2.5"
  );
  
  return { keyPoints, analysis, suggestions };
}

module.exports = analyzeContent;

智能知识库问答

基于 Smart Connections 的知识库对话

配置 Smart Connections 使用本地模型后,可以:

  1. 语义搜索:输入自然语言查询相关笔记
  2. 知识问答:基于你的笔记库回答问题
  3. 发现关联:自动推荐相关笔记

常用查询示例

text
# 查找特定主题的笔记
"我之前写的关于机器学习的笔记有哪些?"

# 汇总某个领域的知识
"总结我关于项目管理的心得"

# 寻找解决方案
"我之前是怎么处理同步冲突的?"

性能基准参考

模型参数量显存占用生成速度质量
Llama 3.2 3B3B2GB50+ tok/s⭐⭐⭐
Llama 3.2 7B7B4-5GB30-40 tok/s⭐⭐⭐⭐
Qwen 2.5 7B7B4-5GB30-40 tok/s⭐⭐⭐⭐⭐(中文)
DeepSeek-R1 7B7B4-5GB25-35 tok/s⭐⭐⭐⭐(推理)
Llama 3.2 13B13B8-10GB15-20 tok/s⭐⭐⭐⭐⭐

常见问题

Q1: 中文回答质量不好?

bash
# 使用中文优化的模型
ollama pull qwen2.5:7b
ollama pull deepseek-r1:7b

# 或在 Prompt 中明确要求中文
ollama run llama3.2
>>> 请用中文回答:什么是机器学习?

Q2: 如何在多台设备同步?

使用局域网访问:

bash
# 服务器端(高性能电脑)
export OLLAMA_HOST=0.0.0.0:11434
ollama serve

# 客户端(其他设备)
# Text Generator 设置
Base URL: "http://192.168.1.100:11434"  # 服务器 IP

Q3: 批量处理笔记?

javascript
// 批量处理多个笔记
const files = app.vault.getMarkdownFiles()
  .filter(f => f.path.includes("ToProcess"));

for (const file of files) {
  const content = await app.vault.read(file);
  const summary = await askLocalAI(`总结:${content.substring(0, 1000)}`);
  // 处理结果...
}

相关资源