mcpField
B
blink-rag

blink-rag

github.com/blink-new数据与数据库437 次安装2 周前更新
代码仓库

关于 blink-rag

blink-rag 是用于管理 Blink 文档集合并搜索其内容的技能,面向构建检索功能的开发者。它涵盖文本、URL 和文件上传,以及语义搜索和 AI 问答。

主要功能

  1. 01语义搜索文档集合
  2. 02对文档进行 AI 问答
  3. 03创建和列出集合
  4. 04上传文本、URL 和文件
  5. 05流式获取 AI 搜索结果

适用场景

  1. 01在文档集合中查找答案
  2. 02上传网页文章或文本以供检索
  3. 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