Releases: MisonL/PyRAG-Kit
Releases · MisonL/PyRAG-Kit
v1.3.0
[1.3.0] - 2026-03-20
运行与配置
- 将主配置迁移到
config.toml,并明确config.toml为本地文件,不再纳入版本控制。 - 新增
local-hash本地嵌入提供方,默认知识库构建链路不再依赖外部 Embedding API。 - 新增
iflow-qwen3-max的 OpenAI 兼容配置示例,并补齐config.toml.example与.env的文档口径。
稳定性与检索
- 修复聊天会话和召回测试中的异步输入问题,消除
asyncio.run()与事件循环冲突。 - 收紧 Provider 失败契约:当凭证、SDK 或远端调用失败时,统一改为显式报错并保留日志,不再返回占位回答、空 embedding 或零分 rerank 结果。
- 修复聊天
/config切换 LLM 时的状态回滚问题;当新模型加载失败时,活动模型配置会回退到旧值,避免界面状态与实际模型实例不一致。 - 修正
grok与volcengineProvider 的真实导入链路,并新增 Provider 导入烟测,避免“测试通过但模块无法导入”的假收敛。 - 优化知识库重建流程,向量化时不再加载旧索引追加写入。
- 增强本地检索质量:索引文本引入来源文件标题上下文,聊天检索使用意图文本而不是原始提示约束语。
- 完成父子分段检索、RRF 融合、sidecar 父文档存储等 RAG 核心能力的适配与校验。
- 将知识库持久化升级为快照目录,新增
ACTIVE_SNAPSHOT指针、快照清单和按快照加载的运行时流程。 - 引入
RunConfig、SessionConfig、KnowledgeBuildService、RetrievalService、ChatService等分层运行时服务。 - 修正真实交互场景中的展示与输入边界:来源路径改为相对路径,聊天空输入不再触发检索和模型调用。
测试与文档
- 增加多组回归测试,覆盖本地嵌入、异步交互、索引文本构建、RRF 行为、sidecar 持久化和配置默认值。
- 更新
README.md、docs/和AGENTS.md,同步当前启动方式、配置结构和运行口径。
v1.2.0
v1.2.0
- 完成第二阶段重构:解耦向量存储:
- 定义了
VectorStoreBase抽象基类,统一了向量存储接口。 - 实现了
FaissStore,将 FAISS 逻辑封装其中。 - 创建了
VectorStoreFactory,实现了向量存储的动态加载。
- 定义了
- 完成第三阶段重构:构建文档处理流水线:
- 创建了
etl模块,并为extractors,cleaners,splitters定义了抽象基类。 - 实现了针对 Markdown 的抽取器、基础文本清洗器和递归文本分割器。
- 创建了
PipelineManager,实现了数据处理的动态组合。
- 创建了
- 完成第四阶段重构:提升健壮性与开发者体验:
- 为核心模块(如模型提供商工厂、向量存储工厂、ETL流水线)编写了全面的单元测试。
- 优化了日志记录,并完善了项目文档。
v1.1.0
[1.1.0] - 2025-07-02
🏗️ 架构重构
项目定位调整: 明确项目目标为 “Dify核心逻辑的本地验证器”,旨在通过轻量级Python实现来对齐并验证Dify的核心工作流。
引入现代化架构: 启动了向 “配置 + 抽象基类 + 工厂模式” 的系统性重构。
完成第一阶段重构:模型管理系统 (Provider):
废除了在代码中硬编码模型实例的方式。
建立了 LargeLanguageModel, TextEmbeddingModel, RerankModel 等模型抽象基类。
实现了 ModelProviderFactory,用于根据配置动态加载和实例化不同的模型提供商。
此阶段的完成标志着项目在解耦和可扩展性上迈出了关键一步。
✨ 新功能 & 优化
启动界面美化:
新增了由 pyfiglet 生成的 ASCII Art 启动横幅,并多次迭代优化字体,最终选用清晰的 big 字体。
为标题实现了从左到右的蓝红颜色渐变效果。
添加了包含版本、描述、作者和 GitHub 链接的欢迎面板,并确保其宽度与标题对齐。
配置系统重构:
从 .env 和 python-dotenv 迁移到 config.ini 和内置的 configparser,以解决复杂的 JSON 配置解析问题。
实现环境变量优先的配置加载策略,当环境变量存在时会覆盖 config.ini 中的设置,增强了部署灵活性。
更新了 Google LLM 的默认模型为 gemini-2.5-flash 和 gemini-2.5-pro。
代码质量提升:
解耦了 Rerank 提供商,通过依赖注入将 top_n 作为参数传递给 rerank 方法,移除了对全局配置的直接依赖。