Skip to content

lxfight-s-Astrbot-Plugins/astrbot_plugin_knowledge_base_v2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AstrBot 知识库插件 V2

一个功能强大、易于扩展的知识库插件,支持多模态数据存储、三重召回策略和可配置的重排序策略。

开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...开发中...

功能特性

  • 多模态数据支持: 支持文本、图片等多种数据类型的存储和检索
  • 三重召回策略:
    • 向量召回 (Vector Retrieval)
    • 关键词召回 (Keyword Retrieval)
    • 图谱召回 (Graph Retrieval)
  • 先进的召回算法:
    • HyDE (Hypothetical Document Embeddings)
    • Self-Query
  • 可配置的重排序策略: 支持多种重排序算法,提高检索结果的相关性
  • WebUI集成: 提供完整的Web管理界面
  • LLM增强: 在LLM生成响应前检索相关知识并注入到上下文中

架构设计

知识库插件 V2 采用分层、模块化的设计,主要包括以下几个层次:

  1. 接口层 (Interfaces):

    • 命令行接口 (CLI)
    • WebUI接口
    • LLM增强钩子
  2. 核心服务层 (Core Services):

    • 存储服务 (StorageService)
    • 检索服务 (RetrievalService)
  3. 数据处理层 (Data Processing):

    • 文本解析器 (TextParser)
    • 文本分块器 (TextChunker)
    • 嵌入器 (Embedder)
    • 多模态解析器 (MultimodalParser)
  4. 存储抽象层 (Storage Abstraction):

    • 向量存储 (VectorStore)
    • 元数据存储 (MetadataStore)
    • 图谱存储 (GraphStore)
  5. 召回排序层 (Retrieval & Ranking):

    • 召回策略 (Retrievers)
    • 重排序模块 (Rankers)

安装和配置

  1. 将插件目录复制到AstrBot的插件目录中
  2. 在AstrBot的配置文件中启用插件
  3. 根据需要修改插件配置

API接口

插件提供了RESTful风格的API接口,用于与WebUI或其他外部系统进行交互。

主要API端点

  • 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组件

插件为WebUI提供了丰富的组件,包括仪表板小部件、管理页面和表单组件等。

主要WebUI组件

  • 仪表板小部件: 知识库统计、搜索入口、集合列表
  • 管理页面: 数据管理、集合管理、配置管理
  • 表单组件: 添加文本表单、添加文件表单、创建集合表单、配置表单

开发指南

目录结构

astrbot_plugin_knowledge_base_v2/
├── api/                 # API路由模块
├── core/                # 核心服务模块
├── interfaces/          # 接口层模块
├── processing/          # 数据处理模块
├── retrieval/           # 召回和排序模块
├── storage/             # 存储模块
├── webui/               # WebUI组件模块
├── config.py            # 配置模型
├── main.py              # 插件主入口
└── README.md            # 开发者文档

扩展开发

插件采用模块化设计,易于扩展新的功能:

  1. 添加新的存储实现: 实现VectorStoreMetadataStoreGraphStore抽象基类
  2. 添加新的召回策略: 实现BaseRetriever抽象基类
  3. 添加新的重排序算法: 实现BaseRanker抽象基类
  4. 添加新的数据处理模块: 实现相应的处理类

配置说明

插件的配置项分为存储、检索和数据处理三个主要部分,每个部分都有详细的参数说明。

存储配置

  • 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: 文本分块重叠大小

许可证

MIT License

About

astrbot_plugin_knowledge_base 的V2版本

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages