Skip to content

Releases: MisonL/PyRAG-Kit

v1.3.0

20 Mar 10:58

Choose a tag to compare

[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 时的状态回滚问题;当新模型加载失败时,活动模型配置会回退到旧值,避免界面状态与实际模型实例不一致。
  • 修正 grokvolcengine Provider 的真实导入链路,并新增 Provider 导入烟测,避免“测试通过但模块无法导入”的假收敛。
  • 优化知识库重建流程,向量化时不再加载旧索引追加写入。
  • 增强本地检索质量:索引文本引入来源文件标题上下文,聊天检索使用意图文本而不是原始提示约束语。
  • 完成父子分段检索、RRF 融合、sidecar 父文档存储等 RAG 核心能力的适配与校验。
  • 将知识库持久化升级为快照目录,新增 ACTIVE_SNAPSHOT 指针、快照清单和按快照加载的运行时流程。
  • 引入 RunConfigSessionConfigKnowledgeBuildServiceRetrievalServiceChatService 等分层运行时服务。
  • 修正真实交互场景中的展示与输入边界:来源路径改为相对路径,聊天空输入不再触发检索和模型调用。

测试与文档

  • 增加多组回归测试,覆盖本地嵌入、异步交互、索引文本构建、RRF 行为、sidecar 持久化和配置默认值。
  • 更新 README.mddocs/AGENTS.md,同步当前启动方式、配置结构和运行口径。

v1.2.0

03 Jul 10:17

Choose a tag to compare

v1.2.0

  • 完成第二阶段重构:解耦向量存储:
    • 定义了 VectorStoreBase 抽象基类,统一了向量存储接口。
    • 实现了 FaissStore,将 FAISS 逻辑封装其中。
    • 创建了 VectorStoreFactory,实现了向量存储的动态加载。
  • 完成第三阶段重构:构建文档处理流水线:
    • 创建了 etl 模块,并为 extractors, cleaners, splitters 定义了抽象基类。
    • 实现了针对 Markdown 的抽取器、基础文本清洗器和递归文本分割器。
    • 创建了 PipelineManager,实现了数据处理的动态组合。
  • 完成第四阶段重构:提升健壮性与开发者体验:
    • 为核心模块(如模型提供商工厂、向量存储工厂、ETL流水线)编写了全面的单元测试。
    • 优化了日志记录,并完善了项目文档。

v1.1.0

02 Jul 02:34

Choose a tag to compare

[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 方法,移除了对全局配置的直接依赖。