来提交你的插件吧!
有疑问?来看看呗!

插件详情

文件读取插件(File Reader Pro)

读取各类文件内容的同时,采用现代 RAG(检索增强生成)架构,通过【语义分块 + 向量嵌入 + 智能检索】的方式,实现对文件内容的高效利用

文件解析
版本v3.1.0
作者zz6zz666
Star1
更新2025/12/21

插件说明

📄 AstrBot Pro 文件读取插件(File Reader Pro)

基于嵌入模型与向量检索的高效文件内容理解方案

本插件是 astrbot_plugin_file_reader 的增强版,代号 File Reader Pro。与传统“直接将文件全文塞入提示词”的做法不同,Pro 版采用现代 RAG(检索增强生成)架构,通过语义分块 + 向量嵌入 + 智能检索的方式,实现对文件内容的高效利用,显著降低上下文开销,提升问答准确率。

✨ 核心优势

🔍 更智能:基于语义的向量检索

  • 不再粗暴拼接全文内容到 prompt。
  • 使用嵌入模型(embedding_provider)将文本转化为高维向量。
  • 通过 FAISS 实现快速近似最近邻搜索,仅返回最相关的片段。

⚡ 更高效:精准上下文注入

  • 结合重排序模块(RerankProvider),进一步优化检索结果相关性。
  • 显著减少 LLM 输入长度,节省 token,加快响应速度。
  • 支持动态控制召回数量(retrieve_top_k),灵活平衡性能与精度。

🧩 更精细:语义感知的内容分块

  • 采用 RecursiveCharacterChunker 进行递归分块,保留上下文连贯性。
  • 可配置:
    • chunk_size:单块最大字符数(默认 512)
    • chunk_overlap:块间重叠长度(默认 100),防止语义断裂

📁 多文件支持 & 对话级隔离

  • 支持在同一个对话中上传多个文件。
  • 所有文件按 session_id 和 conversation_id 隔离存储与检索。
  • 默认当前对话 conversation_id 中的文件会被检索(/new 了之后先前对话的文件不再被被检索了)。

🕒 智能生命周期管理

  • 时间有效期:默认 60 分钟,超时自动清理(可配置)
  • 使用轮次限制:默认最多参与 5 轮对话后清除(防冗余)
  • 任一条件满足即触发清理,资源友好,无需手动干预。

🗑️ 用户可控:一键清理命令

支持以下指令清理当前会话中的所有文件数据:

/clear_file
/clean_file

清理操作作用于当前用户的 session_id,安全可靠。

📎 支持的文件格式

类型 格式
文档 .pdf, .docx, .doc, .rtf, .odt
表格 .xlsx, .xls, .ods, .csv
演示文稿 .pptx, .ppt, .odp
源码 .py, .java, .cpp, .js, .ts, .go, .rs, .sh, .bat, .ps1 等常见编程语言
标记语言 .md, .html, .xml, .json, .yaml, .yml
配置/日志 .txt, .log, .ini, .cfg, .env, .properties, .toml, .gitignore
其他 .sql, .url, .webloc, 无扩展名文本文件

所有文件均调用专用解析器提取纯文本内容,确保结构化信息不失真。

⚙️ 配置选项(可通过 _conf_schema.json 自定义)

参数 默认值 说明
embedding_provider_id 第一个可用提供商 嵌入模型服务 ID
rerank_provider_id 第一个可用提供商 重排序模型服务 ID
file_retention_time 60 文件有效时间(分钟)
file_max_rounds 5 最大使用轮数
max_file_size 100 单文件上限(MB)
chunk_size 512 分块大小(字符数)
chunk_overlap 100 块间重叠大小
retrieve_top_k 5 最终返回的相关块数量
fetch_k 20 重排序前初检数量
enable_rerank true 是否启用结果重排序

🛠️ 安装与使用

安装依赖

pip install -r requirements.txt

Linux 用户注意:若遇到文件类型识别问题,请安装 libmagic:

sudo apt-get install libmagic1

使用方法

  1. 上传文件
    在 AstrBot 中直接发送文件即可,系统将自动完成:

    • 解析 → 分块 → 向量化 → 存储
  2. 提问
    直接询问关于文件内容的问题,例如:

    “总结一下这个 PDF 的主要观点。”
    “这份代码里有没有调用外部 API?”

    插件会自动检索最相关内容并注入上下文。

  3. 清理
    使用 /clear_file 或 /clean_file 清除当前会话的所有文件缓存。

🔬 技术原理简述

处理流程如下:

[文件] 
   ↓ 解析(read_xxx_to_text)
[纯文本]
   ↓ 递归分块(RecursiveCharacterChunker)
[文本块列表]
   ↓ 向量化(embedding_provider)
[向量表示]
   ↓ 存入 FAISS 向量库(FaissVecDB)
[可检索知识库]
   ↓ 查询时:相似度检索 + (可选) 重排序
[Top-K 相关段落]
   ↓ 注入 Prompt
[LLM 接收精炼上下文]

✅ 实现了从“全文硬塞”到“按需调用”的范式升级。

📝 注意事项

  • 文件处理涉及计算资源消耗,请根据部署环境合理设置 chunk_size 和 max_file_size。
  • 切换对话不会立即删除文件,仍可在有效期内返回继续使用。
  • 过期文件将被后台自动回收,无需用户操心。

📦 版本历史

v2.0.0(当前)

  • 引入向量化处理机制,告别全文注入
  • 实现智能分块与 FAISS 向量存储
  • 支持多文件共存与对话隔离
  • 新增灵活配置项与标准清理命令
  • 重构生命周期管理逻辑

v1.x.x

  • 初始版本,基于 get_file() 实现基础文件读取
  • 支持多种格式解析

💡 提示:如果你正在构建一个需要处理大量文档的 AI 助手,这个插件正是为“轻负担、高效率、强语义”而生。


如需进一步定制(如更换向量数据库、集成特定 embedding 模型),欢迎提交 Issue 或联系维护者。

AstrBot LogoAstrBot 插件市场社区

AstrBot 插件市场 是一个开放的插件分享平台,欢迎开发者们贡献优质插件。本站致力于为 AstrBot 用户提供高质量扩展,帮助您快速找到喜欢的插件,并鼓励社区伙伴分享使用心得、提出改进建议。

相关链接

官方项目主站 官方插件市场 官方项目仓库 侧边展示主站

开发相关

插件开发文档 快速提交插件 官方项目文档

© 2026 AstrBot 插件市场 Made with by Community