AI Search
构建知识库,并使用自然语言进行检索与问答。
AI Search 会将本地文件、笔记与网页索引到可检索的知识库中,然后让你通过自然语言搜索和提问。它使用本地向量模型进行向量化,并支持向量 + 关键词的混合检索。
工作原理
每个知识库(RAG 实例)包含一组条目,每条条目可为以下类型:
| 类型 | 说明 |
|---|---|
| 目录 | 递归扫描文件夹,自动发现并索引文件 |
| 文件 | 单个文件(文本或代码) |
| 笔记 | 你直接在 Kunkun 中撰写的文本 |
| URL | 按需抓取的单页网页 |
每个知识库都可单独配置:嵌入模型、切片大小、搜索模式、阈值。索引文档、向量和全文检索数据会存储在每个实例独立的 SQLite 数据库里。
创建知识库
打开设置 → AI Search
按 Cmd+,(macOS)或 Ctrl+,(Windows/Linux)并在侧边栏选择 AI Search。
如果你看不到 AI Search,先确认在 设置 → AI 模型 已配置至少一个可用模型。你这里选择的 embedding 模型必须也能被 AI Search 使用。
创建新知识库
点击 Create Knowledge Base,命名后选择一个 embedding 模型。 切片大小与重叠参数会影响文档向量化前如何拆分;多数场景下默认值足够。
添加来源
知识库创建后,你可以添加条目:
点击 Add Directory 选择目录。Kunkun 会递归扫描并将支持的文件加入子条目,并可为目录设置独立索引策略(如 include/exclude 规则)。
点击 Add File 选择单个文件。适合只索引几份文档,而不扫描整个目录。
点击 Add Note,输入标题并粘贴或撰写文本。笔记会与主数据库一起存储并进行索引。
点击 Add URL 并输入网页地址。Kunkun 会抓取页面并转为文本后索引。当前仅支持单页 URL;递归抓取与站点地图已在计划中。
索引
添加来源后,Kunkun 会自动放入索引队列。你也可以在任意条目上点击 Reindex 重新索引。 目录类型条目会执行对账:发现新文件、变更文件会被重新索引,删除文件会标记为缺失。
可见的索引状态包括:
- idle:等待索引
- preparing / processing / reading / embedding:索引进行中
- completed:已完成并可检索
- stale:配置变更,需要重新索引
- failed / missing:来源不可用或出现错误
搜索与问答
知识库完成索引后,打开设置中的 Ask 标签。
搜索
# 设置 → AI Search → Ask
# 选择 "Search" 模式
# 结果会显示包含相关性分数的片段搜索模式支持:
- FTS:全文关键词检索
- Vector:语义向量检索
- Hybrid(默认):两者融合,并可通过 alpha 参数调节权重
Ask
问答模式会调用语言模型,对索引内容给出带来源依据的回答:
Query: "README 中关于权限模型写了什么?"
→ 基于相关片段生成回答,并附带来源引用管理知识库
在设置界面你可以:
- 重命名或删除知识库(可选同时删除相关数据)
- 更新配置:修改切片大小、搜索模式或 embedding 模型会使数据变为 stale 并触发重建索引
- 查看统计:文档数量、队列状态、每个条目健康度
以程序方式访问 AI Search
Kunkun 通过多种通道暴露 AI Search:
| 通道 | 描述 | 链接 |
|---|---|---|
| 本地 REST API | 监听在 9559 端口的 Bearer 认证 API | 本地 API 服务 |
| MCP | \mcp/rag 入口的模型上下文协议服务 | AI Search MCP |
| TypeScript 客户端 | @kunkunsh/client(Node/browser/Deno) | 开发者文档 → Kunkun Client |
REST API 与 MCP 共享同一套 API Key 鉴权。可在 设置 → API Keys 创建令牌,并按能力范围限制到 search、ask 或 admin。