mcpField
C
create-knowledgebase

create-knowledgebase

github.com/bolna-ai数据与数据库367 次安装3 天前更新
代码仓库

关于 create-knowledgebase

用于从 PDF 或 URL 创建和管理 Bolna 知识库的 Skill,支持多语言检索设置,并提供向量 ID,将处理完成的来源接入 Bolna Agent。

主要功能

  1. 01从 PDF 或 URL 创建知识库
  2. 02检查处理状态并列出来源
  3. 03调整分块与检索设置
  4. 04启用多语言检索
  5. 05删除知识库

适用场景

  1. 01让 Agent 根据产品手册作答
  2. 02将网站文档用作 Agent 来源
  3. 03检索非英语文档
  4. 04调整 Agent 回答的检索范围

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/bolna-ai/skills --skill create-knowledgebase

安装后在 Claude Code 中输入/create-knowledgebase确认已加载。

附带文件scripts/create_knowledgebase.py

详细介绍

创建 Bolna 知识库

端点

  • 创建:POST https://api.bolna.ai/knowledgebase
  • 获取:GET https://api.bolna.ai/knowledgebase/{rag_id}
  • 列出:GET https://api.bolna.ai/knowledgebase/all
  • 删除:DELETE https://api.bolna.ai/knowledgebase/{rag_id}

使用 Authorization: Bearer $BOLNA_API_KEY。

从 PDF 创建

curl --request POST \
  --url https://api.bolna.ai/knowledgebase \
  --header "Authorization: Bearer $BOLNA_API_KEY" \
  --form 'file=@"/path/to/file.pdf"' \
  --form 'chunk_size=512' \
  --form 'similarity_top_k=15' \
  --form 'overlapping=128' \
  --form 'language_support=multilingual'

文档说明 PDF 最大支持 20 MB。对于非英语文档或跨语言检索,请使用 language_support=multilingual。

从 URL 创建

curl --request POST \
  --url https://api.bolna.ai/knowledgebase \
  --header "Authorization: Bearer $BOLNA_API_KEY" \
  --form 'url=https://example.com/docs' \
  --form 'chunk_size=512' \
  --form 'similarity_top_k=15' \
  --form 'overlapping=128'

响应字段

  • rag_id:用于获取或删除操作的知识库 ID。
  • file_name:PDF 名称或 URL 来源名称。
  • status:processing、processed 或 error。
  • source_type:pdf 或 url。
  • language_support:multilingual 或 null。

列表响应包含 vector_id,Agent 会使用该 ID 配置 RAG。

轮询直至处理完成

curl --request GET \
  --url "https://api.bolna.ai/knowledgebase/$RAG_ID" \
  --header "Authorization: Bearer $BOLNA_API_KEY"

在状态变为 processed 之前,不要将知识库关联到 Agent。

配置到 Agent

创建或更新 Agent 时,将 LLM 配置为知识库 Agent,并在向量存储提供方配置中包含已处理的向量 ID。完整的 Agent 结构请参阅 create-agent。

删除

curl --request DELETE \
  --url "https://api.bolna.ai/knowledgebase/$RAG_ID" \
  --header "Authorization: Bearer $BOLNA_API_KEY"

请先确认再删除;使用该向量的 Agent 可能会停止从该来源获取回答。

配置到 Bolna Agent

在 Agent 配置中,使用 agent_type: "knowledgebase_agent" 并关联 vector_id(一个或多个):

{
  "llm_agent": {
    "agent_type": "knowledgebase_agent",
    "agent_flow_type": "streaming",
    "llm_config": { "provider": "openai", "model": "gpt-4o", "max_tokens": 200, "temperature": 0.3 },
    "vector_store": {
      "provider": "lancedb",
      "provider_config": {
        "vector_ids": ["<vector_id_1>", "<vector_id_2>"],
        "similarity_top_k": 8
      }
    }
  }
}

对于图 Agent,请通过各节点上的 rag_config 单独关联,参见 bolna-graph-agents/references/edges-and-routing.md 以及 bolna-graph-agents/assets/full-example.json 中的示例。

脚本

python3 create-knowledgebase/scripts/create_knowledgebase.py \
  --file /path/to/manual.pdf \
  --multilingual

调优

参数默认值效果
chunk_size512较大的分块可在每次检索时提供更多上下文,但匹配精度较低。
overlapping128分块之间的重叠量。值越大,越不容易漏掉跨越边界的答案。
similarity_top_k15检索的分块数量。需要简洁回答时调低,需要更广泛综合时调高。
language_supportnull对于非英语文档或跨语言检索,请设为 multilingual。

另请参阅

  • create-agent — 包含向量配置的 knowledgebase_agent 示例。
  • bolna-graph-agents — 通过 rag_config 配置各节点的 RAG。
  • https://raw.githubusercontent.com/bolna-ai/skills/main/references/prompting-tips.md — 基于检索分块作答时避免幻觉的指南。

评论

支持 Markdown