一个功能强大、易于扩展的知识库插件,支持多模态数据存储、三重召回策略和可配置的重排序策略。
开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...
- 多模态数据支持: 支持文本、图片等多种数据类型的存储和检索
- 三重召回策略:
- 向量召回 (Vector Retrieval)
- 关键词召回 (Keyword Retrieval)
- 图谱召回 (Graph Retrieval)
- 先进的召回算法:
- HyDE (Hypothetical Document Embeddings)
- Self-Query
- 可配置的重排序策略: 支持多种重排序算法,提高检索结果的相关性
- WebUI集成: 提供完整的Web管理界面
- LLM增强: 在LLM生成响应前检索相关知识并注入到上下文中
知识库插件 V2 采用分层、模块化的设计,主要包括以下几个层次:
-
接口层 (Interfaces):
- 命令行接口 (CLI)
- WebUI接口
- LLM增强钩子
-
核心服务层 (Core Services):
- 存储服务 (StorageService)
- 检索服务 (RetrievalService)
-
数据处理层 (Data Processing):
- 文本解析器 (TextParser)
- 文本分块器 (TextChunker)
- 嵌入器 (Embedder)
- 多模态解析器 (MultimodalParser)
-
存储抽象层 (Storage Abstraction):
- 向量存储 (VectorStore)
- 元数据存储 (MetadataStore)
- 图谱存储 (GraphStore)
-
召回排序层 (Retrieval & Ranking):
- 召回策略 (Retrievers)
- 重排序模块 (Rankers)
- 将插件目录复制到AstrBot的插件目录中
- 在AstrBot的配置文件中启用插件
- 根据需要修改插件配置
插件提供了RESTful风格的API接口,用于与WebUI或其他外部系统进行交互。
POST /api/knowledge-base/add-text: 添加文本到知识库POST /api/knowledge-base/add-file: 添加文件到知识库POST /api/knowledge-base/search: 在知识库中搜索相关内容GET /api/knowledge-base/collections: 列出所有可用集合GET /api/knowledge-base/config: 获取插件配置PUT /api/knowledge-base/config: 更新插件配置
插件为WebUI提供了丰富的组件,包括仪表板小部件、管理页面和表单组件等。
- 仪表板小部件: 知识库统计、搜索入口、集合列表
- 管理页面: 数据管理、集合管理、配置管理
- 表单组件: 添加文本表单、添加文件表单、创建集合表单、配置表单
astrbot_plugin_knowledge_base_v2/
├── api/ # API路由模块
├── core/ # 核心服务模块
├── interfaces/ # 接口层模块
├── processing/ # 数据处理模块
├── retrieval/ # 召回和排序模块
├── storage/ # 存储模块
├── webui/ # WebUI组件模块
├── config.py # 配置模型
├── main.py # 插件主入口
└── README.md # 开发者文档
插件采用模块化设计,易于扩展新的功能:
- 添加新的存储实现: 实现
VectorStore、MetadataStore或GraphStore抽象基类 - 添加新的召回策略: 实现
BaseRetriever抽象基类 - 添加新的重排序算法: 实现
BaseRanker抽象基类 - 添加新的数据处理模块: 实现相应的处理类
插件的配置项分为存储、检索和数据处理三个主要部分,每个部分都有详细的参数说明。
vector_store_type: 向量存储类型faiss_index_path: Faiss索引文件路径metadata_db_path: 元数据数据库路径graph_store_type: 图谱存储类型graph_db_path: 图谱数据库路径
enable_vector_retrieval: 是否启用向量召回enable_keyword_retrieval: 是否启用关键词召回enable_graph_retrieval: 是否启用图谱召回enable_hyde_retrieval: 是否启用HyDE召回enable_self_query_retrieval: 是否启用Self-Query召回reranker_type: 重排序器类型default_top_k: 默认返回的top K结果数量min_similarity_score: 最小相似度分数阈值
chunk_size: 文本分块大小chunk_overlap: 文本分块重叠大小