关于 blink-rag
blink-rag 是用于管理 Blink 文档集合并搜索其内容的技能,面向构建检索功能的开发者。它涵盖文本、URL 和文件上传,以及语义搜索和 AI 问答。
主要功能
- 01语义搜索文档集合
- 02对文档进行 AI 问答
- 03创建和列出集合
- 04上传文本、URL 和文件
- 05流式获取 AI 搜索结果
适用场景
- 01在文档集合中查找答案
- 02上传网页文章或文本以供检索
- 03流式获取关于文档集合的回答
MCP 相关
它向 MCP 客户端提供 `blink_rag_search`,用于语义搜索或 AI 问答;并提供 `blink_rag_collections` 以列出集合。
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ blink-new/ blink-plugin --skill blink-rag安装后在 Claude Code 中输入/blink-rag确认已加载。
详细介绍
入门
# Search a collection
blink rag search docs "How do I configure auth?"
# Upload a document
blink rag upload docs ./guide.txt
# List collections
blink rag collections
MCP 工具
| 工具 | 描述 |
|---|---|
blink_rag_search | 对集合进行语义搜索或 AI 问答 |
blink_rag_collections | 列出可用集合 |
SDK 方法
// Create collection
const col = await blink.rag.createCollection({ name: 'docs', description: 'Product docs' })
// Upload document
const doc = await blink.rag.upload({
collectionName: 'docs',
filename: 'guide.txt',
content: 'Your content...',
})
await blink.rag.waitForReady(doc.id)
// Vector search
const results = await blink.rag.search({
collectionName: 'docs',
query: 'How do I configure auth?',
maxResults: 5,
})
// AI search (RAG) — returns answer + sources
const result = await blink.rag.aiSearch({
collectionName: 'docs',
query: 'What are the main features?',
model: 'google/gemini-3-flash',
})
console.log(result.answer, result.sources)
上传方法
// Text content
await blink.rag.upload({ collectionName: 'docs', filename: 'notes.txt', content: 'Text...' })
// From URL
await blink.rag.upload({ collectionName: 'docs', filename: 'article.html', url: 'https://example.com/article' })
// File (base64)
await blink.rag.upload({ collectionName: 'docs', filename: 'report.pdf', file: { data: base64, contentType: 'application/pdf' } })
重要提示:PDF 上传模式
不要直接以 base64 上传 PDF——嵌入内容可能无法正确存储。请先提取文本:
// 1. Upload PDF to storage
const { publicUrl } = await blink.storage.upload(pdfFile, `docs/${Date.now()}_${pdfFile.name}`)
// 2. Extract text
const text = await blink.data.extractFromUrl(publicUrl)
// 3. Upload extracted text as content
await blink.rag.upload({ collectionName: 'docs', filename: pdfFile.name, content: text })
文档生命周期
文档会经历以下状态:pending → processing → ready(或 error)。处理需要 30-40 秒。搜索前务必等待:
const doc = await blink.rag.upload({ ... })
await blink.rag.waitForReady(doc.id, { timeoutMs: 120000 })
流式 AI 搜索
const stream = await blink.rag.aiSearch({
collectionName: 'docs',
query: 'Explain the architecture',
stream: true,
})
模型选择
RAG AI 搜索始终使用 google/gemini-3-flash。已弃用的模型会导致失败。
常见错误
| 错误 | 解决方法 |
|---|---|
| 409 "Collection exists" | 捕获错误并复用现有集合 |
| 搜索结果中的 token 数为零 | 文档仍在处理中——等待状态变为 ready |
| 上传时出现 "Identical content" | 文档重复——捕获错误并使用现有文档 ID |
评论
支持 Markdown