28 篇文章带有标签 “rag”

LLM Wiki:基于大语言模型的个人知识库构建模式

使用大语言模型(LLM)构建个人知识库的模式。

这是一份概念文件,设计用于复制粘贴到你自己的 LLM 智能体中(例如 OpenAI Codex、Claude Code、OpenCode / Pi 等)。它的目标是传达高层级的理念,而具体细节将由你的智能体与你协作构建。

核心理念

大多数人与 LLM 和文档打交道的体验看起来像是 RAG:你上传一批文件,LLM 在查询时检索相关片段,然后生成答案。这确实有效,但 LLM 每次都要从零开始重新发现知识,没有任何积累。当你问一个需要综合五份文档的微妙问题时,LLM 必须每次都找到并拼凑相关片段,没有任何东西被沉淀下来。NotebookLM、ChatGPT 文件上传以及大多数 RAG 系统都是这样工作的。

这里的理念不同。与其仅在查询时从原始文档中检索,LLM 增量式地构建并维护一个持久的维基 —— 一个结构化的、相互关联的 Markdown 文件集合,位于你和原始来源之间。当你添加新来源时,LLM 不只是将其索引以备后用。它会阅读来源,提取关键信息,并将其整合到现有维基中 —— 更新实体页面、修订主题摘要、标注新数据与旧主张的矛盾之处、强化或挑战不断演进的综合结论。知识被编译一次,然后保持最新,而不是每次查询都重新推导。

这就是关键区别:维基是一个持久的、复合增长的产物。

WikiLLM:基于 LLM 驱动的个人知识库

WikiLLM

利用 LLM 构建个人知识库的系统。WikiLLM 将原始素材"编译"成结构化、交叉链接的高质量中文 Wiki,可在 Obsidian 中查看。

本项目基于 Andrej Karpathy 提出的理念构建。详见:LLM Knowledge Bases

项目概述

WikiLLM 的工作流包括:

  1. 数据摄入:源文档(文章、论文、代码库、数据集、图像)被索引到 raw/ 目录
  2. Wiki 编译:LLM 增量地"编译"原始数据成 markdown 文件的 wiki,包含摘要、反向链接、分类概念和相互链接的文章
  3. IDE:Obsidian 用作前端查看原始数据、编译后的 wiki 和可视化
  4. 问答:LLM 可以通过研究相关数据来回答针对 wiki 的复杂问题
  5. 输出:结果渲染为 markdown 文件、Marp 幻灯片或 matplotlib 图像,可在 Obsidian 中查看
  6. Linting:LLM"健康检查"发现不一致、填补缺失数据、建议新文章候选
  7. 额外工具:诸如 wiki 上的朴素搜索引擎等额外工具

核心原则

  • LLM 编写和维护所有 wiki 数据;手动编辑很少见
  • 用户探索和查询被归档回 wiki 以增强它
  • 系统专注于 markdown 文件和 Obsidian 兼容格式
  • 图像被下载到本地 以便 LLM 轻松引用

目录结构

Andrej Karpathy:大语言模型构建个人知识库的实践指南

最近我发现一个非常实用的方法:利用大语言模型(LLM)为各类感兴趣的研究方向搭建个人知识库。这样一来,我近期消耗的模型令牌中,用于处理代码的占比大幅减少,更多被用于处理知识(以 Markdown 文件和图片形式存储)。最新的大语言模型在这方面表现十分出色。具体做法如下:

数据导入

我先将各类源文件(文章、论文、代码仓库、数据集、图片等)归档到 raw/ 目录下,再通过大语言模型逐步“编译”生成一份知识库,这份知识库本质就是按目录结构组织的一系列 .md 文件。 知识库会包含 raw/ 目录下所有数据的摘要、反向链接,还会将数据按概念分类、撰写对应词条并完成相互关联。 为把网页文章转为 .md 文件,我习惯使用 Obsidian 网页剪藏插件,同时通过快捷键将相关图片批量下载到本地,方便大语言模型直接调用。

集成开发环境

我把 Obsidian 当作前端 IDE,既能查看原始数据、编译后的知识库,也能查看衍生的可视化内容。 需要重点说明的是:整个知识库的内容撰写与维护均由大语言模型完成,我几乎不直接手动修改。我还试用过多款 Obsidian 插件,以其他形式渲染和查看数据(比如用 Marp 制作幻灯片)。

问答交互 真正有意思的是,当知识库规模足够大时(比如我近期的研究知识库已有约 100 篇词条、40 万字),就可以向大语言模型智能体提出各类复杂问题

elizaOS 多智能体架构设计分析

📋 概述

elizaOS 是一个开源的多智能体 AI 开发框架,用于构建、部署和管理自主 AI 智能体。采用现代化、可扩展的全功能平台设计。

核心特性

  • 🔌 丰富的连接器:内置 Discord、Telegram、Farcaster 等支持
  • 🧠 模型无关:支持 OpenAI、Gemini、Anthropic、Llama、Grok 等主流模型
  • 🖥️ 现代 Web UI:专业仪表板,实时管理智能体、群组和对话
  • 🤖 多智能体架构:从底层设计支持创建和编排专业智能体组
  • 📄 文档摄取:轻松摄取文档,支持 RAG 检索和问答
  • 🛠️ 高度可扩展:强大的插件系统构建自定义功能
  • 📦 开箱即用:无缝的设置和开发体验

🏗️ 系统架构概览

项目结构

大模型应用开发范式的演变

这四个术语是当前大模型应用开发的核心范式,从指令设计、信息管理、生成式编程到自主智能体构建,层层递进,共同构成了 AI 应用开发的技术栈。

以下是通俗易懂的拆解:

1. Prompt Engineering (提示工程)

这是最基础的技能,重点在于指令的质量。 如果把 AI 比作一个极其博学但有时听不懂人话的实习生,Prompt Engineering 就是学习如何写出完美的“任务说明书”。

  • 核心逻辑:通过调整输入的文字(提示词),引导模型输出更高质量的结果。
  • 常用技巧:给 AI 设定角色(“你是一个资深翻译”)、提供示例(Few-shot)、要求逻辑推演(Chain of Thought)。
  • 比喻:就像是在搜索引擎里输入更精准的关键词,或者给厨师下达非常具体的菜谱要求。

2. Context Engineering (上下文工程)

随着模型处理能力增强,大家发现“怎么说”固然重要,但 “给它看什么资料” 更重要。这就是上下文工程。

  • 核心逻辑:管理和优化输入给模型的信息流。AI 的记忆(上下文窗口)是有限的,你需要精准地挑选出最相关的背景知识喂给它。
  • 典型应用RAG (检索增强生成)。当你问关于公司手册的问题时,系统先去数据库里搜出相关的几段话,塞进对话框里,AI 才能据此回答。
  • 比喻:开卷考试。Prompt 是考题,Context 就是那本允许你带进考场的、划满了重点的参考书。

🦞 本地 AI 助手 OpenClaw 的架构与记忆系统

🦞 OpenClaw 是一个本地优先(Local-First)、高度自治、基于 Markdown 记忆管理的 AI Agent(智能体)系统。

它的核心亮点在于:

  1. 数据主权 (Local-First): 记忆和配置都在本地 Markdown 文件中,用户完全掌控。
  2. 拟人化设计: 通过心跳机制 (HEARTBEAT) 和分层记忆,试图构建一个有“长期记忆”和“自主行为”的 AI,而不仅仅是一个聊天机器人。
  3. 工程化落地: 考虑了多端接入、混合检索 RAG、上下文压缩以及安全沙盒,这是一个生产力级别的架构。

架构系统

  • 多端接入 (Messaging & Nodes):
    • 消息平台: 支持 WhatsApp, Telegram, Discord, 飞书等主流通讯软件,意味着用户可以在这些 App 里直接与 Agent 对话。
    • 客户端节点 (Nodes): 覆盖 Android, iOS, macOS。这些节点不仅是聊天窗口,还能调用设备能力(如拍照、定位、录屏、执行脚本),让 AI 拥有“手”和“眼”。
  • 核心网关 (Gateway):
    • 运行在本地(支持 Windows, Linux, macOS, iOS, Android, Docker 等)。
    • 包含控制平面、HTTP Server、路由、会话管理和任务队列。
    • Pi Agent: 是核心大脑,负责处理逻辑。
  • 远程管理: 通过 Tailscale VPNSSH Tunnel 进行安全的远程连接,保障了数据传输的安全性(无需暴露公网 IP)。

Cursor 的上下文工程与编程智能体

《Context Engineering & Coding Agents with Cursor》(Cursor 的上下文工程与编程智能体),由 Cursor 团队成员 Lee 和 CEO Michael 主讲。视频深入探讨了软件开发的演变、Cursor 如何利用 AI 提升编程效率,以及未来编程智能体的发展方向。

1. 编程的演变与 Cursor 的核心功能

  • 编程历史回顾:从打孔卡片到图形界面,再到如今的 AI 辅助编程,AI 正在以前所未有的速度推动软件开发的进步。
  • Cursor Tab (代码补全)
  • Cursor 的 Tab 功能深受 GitHub Copilot 启发,但已从简单的“预测下一个词”进化为“预测下一个动作”甚至“预测光标去向”。
  • 强化学习:模型会根据用户的“接受”或“拒绝”操作进行实时在线强化学习(RL),在 30 分钟内即可更新模型行为。
  • 平衡性:Cursor 致力于在建议速度(不打断心流)和建议质量之间找到平衡点。

2. 上下文工程 (Context Engineering)

  • 超越提示词工程:随着模型变强,获取高质量输出的关键不再是“提示词技巧”,而是提供“正确的上下文”。
  • 混合检索策略
  • 字符串匹配:单纯依靠 grep (字符串匹配) 是不够的。
  • 语义搜索:Cursor 通过对代码库建立索引(embeddings),即使文件名不完全匹配(如 header.tsx vs "top navigation"),也能通过语义准确找到相关代码。

【生成式人工智慧与机器学习导论2025】第二讲:上下文工程 (Context Engineering) — AI Agent 背后的关键技术

Context Engineering(上下文工程)是为解决 AI Agent 时代输入过长,避免塞爆 Context 的关键技术。其基本概念是 “把需要的放進去,不需要的清出來”。常用招数(基本方法)包括:

  1. Select(挑选):只挑选当下任务最关键的内容。这包括利用 RAG (检索增强生成) 检索额外资讯,并使用 Reranking 或 Small LLM 筛选关键词。此外,只挑选需要的工具(Tool RAG)和记忆(Memory RAG)。
  2. Compress(压缩):对冗长琐碎的内容进行精简和摘要。例如,将过去的对话历史或 Computer Use 产生的细节压缩,让遥远的记忆逐渐淡化,以节省 Context 空间。
  3. Multi-Agent(多代理):将复杂任务拆解并分派给多个子 Agent。子 Agent 独立处理细节,完成后只向 Lead Agent 回报最终结果,从而隔离复杂的互动过程,分散 Context 负担。

Dify:开源 LLM 应用开发平台

Dify 是一个开源的 LLM 应用开发平台。其直观的界面结合了 AI 工作流、RAG 管道、Agent、模型管理、可观测性功能等,让您可以快速从原型到生产。

安装

克隆代码仓库

git clone https://github.com/langgenius/dify

Docker 部署

Dify 提供了 Docker 部署方式,您可以通过以下步骤快速部署:

cd dify
cd docker
cp .env.example .env
docker compose up -d

运行后,可以在浏览器上访问 http://localhost/install 进入 Dify 控制台并开始初始化安装操作。

自定义配置

如果您需要自定义配置,请参考 .env.example 文件中的注释,并更新 .env 文件中对应的值。此外,您可能需要根据您的具体部署环境和需求对 docker-compose.yaml 文件本身进行调整,例如更改镜像版本、端口映射或卷挂载。完成任何更改后,请重新运行 docker-compose up -d。您可以在此处找到可用环境变量的完整列表。

服务镜像

核心镜像(必需)

开发 RAGFlow MCP Server

开发

这是第一次开发 MCP Server,想着使用智能编码工具(GitHub Copilot、Cursor、Trae)进行氛围编程,发现真不容易,Claude 3.7 sonnet 效果不错,在 GitHub Copilot 没用多长时间超限制了;Cursor 没有达到之前那种随心的效果;Trae 要排长队,太有挫败感了。于是,开始了以人编码为主,大模型辅助的开发过程。

MCP Server 的工作流程

  1. 初始化:加载环境变量,初始化 RAGFlow 客户端。
  2. 工具注册:定义工具列表,描述工具的输入/输出。
  3. 工具逻辑:实现工具的具体调用逻辑。
  4. 服务器启动:通过 stdio 启动 MCP Server 并监听请求。

创建 RAGFlow MCP Server 项目

uvx create-mcp-server \
    --path ragflow-mcp-server \
    --name ragflow-mcp-server \
    --version 0.1.0 \
    --description "RAGFlow MCP Server" \
    --no-claudeapp
cd ragflow-mcp-server
uv sync --dev --all-extras
uv add ragflow-sdk

下载 MCP 开发文档和 RAGFlow Python API 文档

RAG 2.0

参考资料 2024 年 RAG 的崛起与演变年度回顾 所见即所得:多模态RAG正在向我们走来 What is Retrieval Augmented Generation (RAG)? Build with Claude - Prompt caching Introducing Contextual Retrieval Cookbook - Retrieval Augmented Generation with Contextual Embeddings Infinity Dense vector + Sparse vector + Full text search + Tensor reranker = Best retrieval for RAG? Sparse embedding or BM25?

GraphRAG

GraphRAG

GraphRAG 项目是一个数据管道和转换套件,旨在利用大型语言模型(LLMs)的力量从非结构化文本中提取有意义的结构化数据。

若要了解更多关于 GraphRAG 以及它如何用于增强您的大型语言模型(LLMs)对您的私有数据进行推理的能力,请访问 Microsoft Research Blog Post

Get Started

构建虚拟环境

cd /Users/junjian/GitHub/microsoft/graphrag

python -m venv env
source env/bin/activate

安装 GraphRAG

pip install graphrag

准备数据 mkdir -p ./ragtest/input curl https://www.gutenberg.

Vanna.AI

Vanna 工作原理

使用检索增强来帮助您使用 LLM 为数据库生成准确的 SQL 查询。

Vanna 的工作过程分为两个简单步骤 - 在您的数据上训练 RAG“模型”,然后提出问题,这些问题将返回 SQL 查询,这些查询可以设置为在您的数据库上自动运行。

  • vn.train(...)

在您的数据上训练 RAG“模型”。这些方法将添加到参考语料库。

  • vn.ask(...)

问问题。这将使用参考语料库生成可以在您的数据库上运行的 SQL 查询。

例子

与您的 SQL 数据库聊天 📊。通过 RAG 使用 LLM 实现准确的文本到 SQL 生成 🔄。

ChromaDB & Ollama from vanna.ollama import Ollama from vanna.chromadb import ChromaDB_VectorStore class MyVanna(ChromaDB_VectorStore, Ollama): def init(self, config=None): ChromaDB_VectorStore.init(self, config=config) Ollama.init(self, config=config) vn = MyVanna(config={'model': 'qwen2:7b'}) vn.

RAG 复杂场景下的工作流程和构建知识库的解析方法

RAG 复杂场景下的工作流程

召回模式(选择数据集) → 混合检索(同时进行语义检索和关键词搜索) → 重排序(合并和归一化检索结果)

  • 召回模式主要是用于选出与用户问题最相关的数据集,在应用内关联了多个数据集时,可以使用N选1、N选M和多路等召回模式。
    • N 选 1 召回
    • N 选 M 召回
    • 多路召回
  • 语义检索是当前主流的向量检索,通过语义相关度进行匹配;关键词搜索是传统的搜索算法,用于精确匹配;混合检索是分别通过两种检索方式在文档中检索出最相关的文本。
  • 重排序模型(Rerank Model)用于对查询结果进行语义排序,在混合检索模式下的查询结果需要进行合并和归一化(将数据转换为统一的标准范围或分布,以便更好地进行比较、分析和处理),然后再一起提供给大模型。

RAG 中构建知识库的解析方法

RAGFlow 是一款基于深度文档理解构建的开源 RAG 引擎,内置了丰富地文档解析方法,可以帮助用户快速构建知识库。

  • 基于 Tokens 数进行分割
  • 问答对(两列数据,一个提出问题,另一个用于答案)
  • 简历(不进行拆分,而是将简历解析为结构化数据)
  • 手册(使用最低的部分标题作为对文档进行切片的枢轴,同一部分中的图和表不会被分割,块大小可能会很大)
  • 表格(表数据,第一行必须是列标题,列标题必须是有意义的术语,以便我们的大语言模型能够理解)
  • 论文(按章节进行拆分,例如摘要、1.1、1.2等)
  • 书籍(为每本书设置页面范围、排队无用地部分)
  • 法律(法律文件有非常严格的书写格式,使用文本特征来检测分割点)
  • 演示文稿(每个页面都将被视为一个块。 并且每个页面的缩略图都会被存储)
  • 图像(如果图片中有文字,则应用 OCR 提取文字作为其文字描述;如果 OCR 提取的文本不够,使用视觉 LLM 来获取描述)
  • One(对于一个文档,它将被视为一个完整的块,根本不会被分割)

Dify

Dify

介绍

Dify 是一款开源的大语言模型(LLM) 应用开发平台。提供从 Agent 构建到 AI workflow 编排、RAG 检索、模型管理等能力,轻松构建和运营生成式 AI 原生应用。你可以基于任何模型自部署类似 Assistants API 和 GPTs 的能力,在灵活和安全的基础上,同时保持对数据的完全控制。

开发语言

语言 占比
TypeScript 49.9%
Python 45.5%
MDX 3.1%
CSS 0.9%
JavaScript 0.4%
SCSS 0.2%

配置兼容 OpenAI API(SiliconFlow)

Continue

Continue

介绍

Continue 使您能够在 IDE 中创建自己的 AI 代码助手。使用 VS CodeJetBrains 插件保持开发者的流畅体验,这些插件可以连接到任何模型、任何上下文以及任何其他你需要的东西。

  • 轻松理解代码部分
  • Tab 自动完成代码建议
  • 重构您正在编码的函数
  • 询问代码库相关问题
  • 快速使用文档作为上下文
  • 使用斜线命令启动操作
  • 将类、文件等添加到上下文
  • 立即了解终端错误

Continue 使您能够使用适合工作的模型,无论是开源还是商业,本地运行还是远程运行,用于聊天、自动完成或嵌入。它提供了许多配置点,以便您可以自定义扩展以适应您现有的工作流程。

开发语言

语言 占比
TypeScript 74.0%
Kotlin 11.8%
Rust 4.9%
CSS 3.6%
Scheme 2.5%
JavaScript 2.4%
Other 0.8%

贡献(Contributing)

使用