SuperAPI AI 工具集

ragskill

智能体与模型

查看项目

更新于 10-16 11:42

技能介绍

用途

ragskill 是一个基于 FastAPI 知识库服务实现的 RAG(检索增强生成)知识管理与检索技能,用于为 Agent 或机器人提供知识库问答能力,覆盖文档入库、管理、检索等流程。

主要能力

包含的功能如下:

  • 支持本地文件上传(txt/md/pdf/docx 等),自动解析文本与图片
  • 支持图片提取、VLM 图文理解、描述向量化入库
  • 支持单文件删除、全库清空
  • 支持查询已上传文件列表
  • 支持查询文件解析后的文本/图片片段内容
  • 支持语义向量检索 + BM25 全文检索混合召回
  • 支持相似度阈值、返回条数配置

前置要求

在使用该技能前,需确保已配置 RAG 服务端的 RAG_SERVER_ADDRESS 环境变量:

  • RAG_SERVER_ADDRESS:RAG 知识管理服务 fastapi 服务 url,例如:http://127.0.0.1:8000

使用方式

当前 skill 目录下的 example.py 文件描述 RAG 服务各接口客户端请求样例代码,核心为 RAGClient 类,其各方法输入输出如下:

query

  • server interface: /query
  • request method: POST
  • description: 根据用户问题从知识库中获取知识信息总结最终答案
  • Input:
    • query: str(用户问题)
    • top_k: int = 3(返回条数)
    • score_threshold: float = 0.5(相似度阈值)
  • Output: str

retrieve_similar_docs

  • server interface: /retrieval
  • request method: POST
  • description: 根据用户问题从知识库中检索召回 top_k 个语义最相似的知识片段
  • Input:
    • query: str(用户问题)
    • top_k: int = 3(返回条数)
    • score_threshold: float = 0.5(相似度阈值)
  • Output: List[Dict](content, score, metadata)

upload_file

  • server interface: /upload_file
  • request method: POST
  • description: 上传文档到 RAG 知识库中
  • Input: file_path: str(本地文件路径)
  • Output: Dict(上传结果、状态信息)
  • Exception: FileNotFoundError, HTTPError

delete_file

  • server interface: /delete_file
  • request method: POST
  • description: 删除指定的文件名
  • Input:
    • file_name: str(知识库中文件名)
    • confirm: bool = False(确认删除)
  • Output: Dict(删除结果)

delete_all_files

  • server interface: /delete_all_files
  • request method: DELETE
  • description: 删除 RAG 知识库中所有文件
  • Input: confirm: bool = False(确认删除)
  • Output: Dict(清空结果)

list_files

  • server interface: /list_files
  • request method: GET
  • description: 查看 RAG 知识库中所有的文件名
  • Input: None
  • Output: List[str](文件名称列表)

query_file_content

  • server interface: /query_file_content
  • request method: POST
  • description: 查看 RAG 知识库中指定文件名的内容
  • Input: file_name: str
  • Output: List[Dict[str, Any]](文本片段+元数据)

Usage Example

from example import RAGClient
client = RAGClient(base_url="http://127.0.0.1:9098")

# 上传文件
await client.upload_file("/path/test.pdf")

# 检索知识
docs = await client.retrieval("什么是RAG?")

# 查询文件列表
files = await client.list_files()

# 删除文件
await client.delete_file("test.pdf", confirm=True)

适用场景

适用于需要为 Agent 或机器人构建知识问答能力的场景,例如将本地 PDF、DOCX、TXT、MD 文档及图片内容入库,并通过语义向量检索与 BM25 全文检索混合召回获取相关知识,用于问答总结或片段召回。

限制

使用前必须配置 RAG_SERVER_ADDRESS 环境变量指向 RAG 知识管理服务。关于收费、价格、具体部署方式及其他平台支持信息暂未提供。