v0.25.1
infiniflow/ragflowv0.25.1Apr 30, 2026by github-actions[bot]
AI Summary
Adds OpenDataLoader PDF backend, lazy loading for large PDFs (>50 pages), deleted file sync for Bitbucket/Gmail/Drive/Airtable, and DeepSeek v4 support.
Key Highlights
- Added OpenDataLoader PDF backend for improved parsing
- Lazy loading and chunked parsing for large PDFs (>50 pages)
- Enables syncing deleted files in Bitbucket, Gmail, Google Drive, and Airtable
- Standardizes web APIs to RESTful conventions
New Features
- OpenDataLoader PDF parser backend
- Lazy loading for large PDFs
- Deleted file synchronization for multiple connectors
- DeepSeek v4 model support
Full Release Notes
## Summary ### Improvements - API refactoring and unification: Standardizes web APIs to RESTful conventions across all endpoints, unifying document creation and indexing flows while maintaining backward compatibility. - Parsing optimizations: Adds [OpenDataLoader](https://github.com/opendataloader-project/opendataloader-pdf) PDF backend. [#14097](https://github.com/infiniflow/ragflow/pull/14097) - Introduces lazy loading and chunked parsing for large PDFs (>50 pages), significantly reducing memory footprint. [#14385](https://github.com/infiniflow/ragflow/pull/14385) ### Data source Enables synchronizing deleted files in Bitbucket, Gmail, Google Drive, and Airtable. ### Model support - DeepSeek v4 ### Model providers - UCloud ### Bug fixes - Metadata visibility issues during v0.24.0 to v0.25.0 upgrades. - Duplicate chat output. ## What's Changed * Refactor: Consolidation WEB API & HTTP API for document get_filter by @xugangqiang in https://github.com/infiniflow/ragflow/pull/14248 * docs: add DeepWiki developer guide page by @hyl64 in https://github.com/infiniflow/ragflow/pull/14244 * Docs: User-level memory is supported in v0.25.0 by @writinwaters in https://github.com/infiniflow/ragflow/pull/14259 * Refactor: Consolidation WEB API & HTTP API for document infos by @xugangqiang in https://github.com/infiniflow/ragflow/pull/14239 * Go: add balance command by @JinHai-CN in https://github.com/infiniflow/ragflow/pull/14262 * Update release note by @JinHai-CN in https://github.com/infiniflow/ragflow/pull/14275 * Refa: align chat and search restful APIs by @buua436 in https://github.com/infiniflow/ragflow/pull/14229 * Refactor: Consolidation WEB API & HTTP API for document delete api by @xugangqiang in https://github.com/infiniflow/ragflow/pull/14254 * fix: normalize think tags in final chat answer by @buua436 in https://github.com/infiniflow/ragflow/pull/14271 * Fix: switch MinerU API endpoint to /pdf_parse by @6ba3i in https://github.com/infiniflow/ragflow/pull/14272 * Doc: v0.25.0 release notes. by @writinwaters in https://github.com/infiniflow/ragflow/pull/14284 * Fix #14213 create folder does not accept FOLDER by @wangq8 in https://github.com/infiniflow/ragflow/pull/14276 * Fix uv.lock by @JinHai-CN in https://github.com/infiniflow/ragflow/pull/14285 * Fix: document and sdk support of searching message with user_id by @Lynn-Inf in https://github.com/infiniflow/ragflow/pull/14283 * Fix: MinerU 3.x output discovery and API contract by @6ba3i in https://github.com/infiniflow/ragflow/pull/14282 * feat: Add Astraflow provider support (global + China endpoints) by @ucloudnb666 in https://github.com/infiniflow/ragflow/pull/14270 * Add deepseek and moonshot model json by @JinHai-CN in https://github.com/infiniflow/ragflow/pull/14290 * Fix upload stream handling to prevent truncated files by @bohdansolovie in https://github.com/infiniflow/ragflow/pull/14267 * Fix: serialize GraphRAG entity resolution merges to avoid graph mutation races by @spider-yamet in https://github.com/infiniflow/ragflow/pull/14237 * Set image tag v0.25.0 by @wangq8 in https://github.com/infiniflow/ragflow/pull/14299 * Doc: two PDF parser optimizers are supported as of v0.25.0. by @writinwaters in https://github.com/infiniflow/ragflow/pull/14261 * Refact: Tenant api by @Magicbook1108 in https://github.com/infiniflow/ragflow/pull/14288 * Refactor: Migrate document metadata config update API by @xugangqiang in https://github.com/infiniflow/ragflow/pull/14286 * Refactor: API connectors by @wangq8 in https://github.com/infiniflow/ragflow/pull/14228 * Fix: Remove duplicate text output from the thought model on the chat page. by @cike8899 in https://github.com/infiniflow/ragflow/pull/14301 * Fix: Some bugs by @dcc123456 in https://github.com/infiniflow/ragflow/pull/14287 * Go: add new provider minimax by @JinHai-CN in https://github.com/infiniflow/ragflow/pull/14296 * Fix: Recall Test Page Metadata Not Displaying. by @cike8899 in https://github.com/infiniflow/ragflow/pull/14297 * Refactor: REST API langfuse api-key by @wangq8 in https://github.com/infiniflow/ragflow/pull/14315 * Refactor: API file2document by @wangq8 in https://github.com/infiniflow/ragflow/pull/14306 * Refactor: Doc metadata update by @xugangqiang in https://github.com/infiniflow/ragflow/pull/14289 * Refa: migrate MCP APIs to RESTful api by @buua436 in https://github.com/infiniflow/ragflow/pull/14317 * Add REDIS zcard by @wangq8 in https://github.com/infiniflow/ragflow/pull/14316 * Build(deps): Bump lxml from 6.0.2 to 6.1.0 in /sdk/python by @dependabot[bot] in https://github.com/infiniflow/ragflow/pull/14318 * Add missing timeout to ragflow server health check by @Ricardo-M-L in https://github.com/infiniflow/ragflow/pull/14311 * Refact: system apis by @Magicbook1108 in https://github.com/infiniflow/ragflow/pull/14298 * Refa: migrate chunk APIs to RESTful routes by @buua436 in https://github.com/infiniflow/ragflow/pull/14291 * API refactor: stats_api and plugin_api by @wangq8 in https://github.com/infiniflow/ragflow/pull/14324 * Fix commit override from #14298 of api-key to api_key by @wangq8 in https://github.com/infiniflow/ragflow/pull/14328 * Feat: optimize title chunk by @Magicbook1108 in https://github.com/infiniflow/ragflow/pull/14325 * Refa: remove legacy MCP server web API by @buua436 in https://github.com/infiniflow/ragflow/pull/14322 * fix azure blob put method param by @newyangyang in https://github.com/infiniflow/ragflow/pull/14329 * Feat: Agent api by @Magicbook1108 in https://github.com/infiniflow/ragflow/pull/14157 * fix: migrate Langfuse integration from start_generation to start_obse… by @RazmikGevorgyan in https://github.com/infiniflow/ragflow/pull/14205 * Refactor user REST API by @wangq8 in https://github.com/infiniflow/ragflow/pull/14334 * Feat: deepseek v4 by @Magicbook1108 in https://github.com/infiniflow/ragflow/pull/14346 * Implement retrieval_test in GO by @qinling0210 in https://github.com/infiniflow/ragflow/pull/14231 * docs: fix API key guide typo by @MukundaKatta in https://github.com/infiniflow/ragflow/pull/14352 * Fix api user patch verb does not work by @wangq8 in https://github.com/infiniflow/ragflow/pull/14358 * Refa : migrate agent webhook routes to REST APIs by @buua436 in https://github.com/infiniflow/ragflow/pull/14330 * Fix: allow use image2text as chat model by @Lynn-Inf in https://github.com/infiniflow/ragflow/pull/14331 * feat: route docling parsing through native chunking endpoints by @ParasSondhi in https://github.com/infiniflow/ragflow/pull/14218 * fix: check isinstance before len in VariableAssigner _remove_first/_remove_last by @kuishou68 in https://github.com/infiniflow/ragflow/pull/14281 * Fix blob sync: skip unsupported files before download by @6ba3i in https://github.com/infiniflow/ragflow/pull/14357 * Refact: Updated rootAsHeadingTip by @writinwaters in https://github.com/infiniflow/ragflow/pull/14363 * Fix: The button styles in the PaddleOCR dialog are not applying correctly. by @cike8899 in https://github.com/infiniflow/ragflow/pull/14350 * Update API document by @wangq8 in https://github.com/infiniflow/ragflow/pull/14364 * Doc: Updated a 0.25-specific faq by @writinwaters in https://github.com/infiniflow/ragflow/pull/14365 * Go: add gitee and siliconflow as model provider by @JinHai-CN in https://github.com/infiniflow/ragflow/pull/14336 * Feat: introduce minimum type check for pipeline by @Magicbook1108 in https://github.com/infiniflow/ragflow/pull/14354 * Fix: allow search id or _id by @Lynn-Inf in https://github.com/infiniflow/ragflow/pull/14356 * Feat: add OpenDataLoader PDF parser backend (#14058) by @wdeveloper16 in https://github.com/infiniflow/ragflow/pull/14097 * Fix: validate URL scheme and resolved IP before crawling to prevent SSRF by @xingxing21 in https://github.com/infiniflow/ragflow/pull/14090 * feat(api): add unified index API and dataset management endpoints by @euvre in https://github.com/infiniflow/ragflow/pull/14222 * Refa: unify document create flows under REST documents API by @buua436 in https://github.com/infiniflow/ragflow/pull/14345 * feat: persist RAPTOR layer metadata on summary chunks by @yuch85 in https://github.com/infiniflow/ragflow/pull/13286 * fix: skip canvas SSE fetch in chat shared page to eliminate spurious 103 error by @euvre in https://github.com/infiniflow/ragflow/pull/14190 * fix: handle Infinity table-not-exist error (3022) in update() methods by @euvre in https://github.com/infiniflow/ragflow/pull/14153 * feat: persist PDF bookmark outline as document metadata by @yuch85 in https://github.com/infiniflow/ragflow/pull/13287 * chore(CLAUDE.md): add shared UI component lock convention to CLAUDE.md by @ZhenhangTung in https://github.com/infiniflow/ragflow/pull/14381 * Refa: restore openai-compatible chat completions api by @buua436 in https://github.com/infiniflow/ragflow/pull/14380 * Go: aliyun model provider by @JinHai-CN in https://github.com/infiniflow/ragflow/pull/14379 * Fix: Remove hardcoded page limits causing parsing failures on large PDFs (>300 pages) by @euvre in https://github.com/infiniflow/ragflow/pull/14382 * Refactor: migrate artifact API by @xugangqiang in https://github.com/infiniflow/ragflow/pull/14348 * Remove evaluation_app.py and kb_app.py by @wangq8 in https://github.com/infiniflow/ragflow/pull/14394 * Fix metadata parsing regression for upgraded v0.24 datasets by @6ba3i in https://github.com/infiniflow/ragflow/pull/14383 * perf: lazy img_np loading and chunked parse_into_bboxes for large PDFs by @yuzhichang in https://github.com/infiniflow/ragflow/pull/14385 * Refactor: migrate doc upload info used in chat by @xugangqiang in https://github.com/infiniflow/ragflow/pull/14359 * Fix: support release in agent update api by @buua436 in https://github.com/infiniflow/ragflow/pull/14396 * Helm template ragflow.yaml: fix nginx-config-volume mountPath according to Dockerfile v0.25.0 by @mginfn in https://github.com/infiniflow/ragflow/pull/14361 * Fix: prioritize explore session ID and reset default conversation variables by @buua436 in https://github.com/infiniflow/ragflow/pull/14399 * Refactor: deco doc-parse API that is not used any more by @xugangqiang in https://github.com/infiniflow/ragflow/pull/14367 * Refa: align list operations and strict mode by @buua436 in https://github.com/infiniflow/ragflow/pull/14387 * Add task API by @wangq8 in https://github.com/infiniflow/ragflow/pull/14393 * Refactor: optimize agent reset conversation variable defaults by @buua436 in https://github.com/infiniflow/ragflow/pull/14401 * Refactor: Doc batch change status by @xugangqiang in https://github.com/infiniflow/ragflow/pull/14337 * tests: add missing HTTP API tests for dataset management endpoints removed in #14222 by @euvre in https://github.com/infiniflow/ragflow/pull/14390 * Refactor: deco document upload_and_parse API by @xugangqiang in https://github.com/infiniflow/ragflow/pull/14366 * Go: add new provider: google by @JinHai-CN in https://github.com/infiniflow/ragflow/pull/14395 * Refactor: migrate document run api by @xugangqiang in https://github.com/infiniflow/ragflow/pull/14351 * Refactor: migrate document thumbnails API by @xugangqiang in https://github.com/infiniflow/ragflow/pull/14344 * Fix: add executor.shutdown by @xugangqiang in https://github.com/infiniflow/ragflow/pull/14403 * Refactor: Doc change parser by @xugangqiang in https://github.com/infiniflow/ragflow/pull/14327 * Doc: Added a database schema and migration guide. by @writinwaters in https://github.com/infiniflow/ragflow/pull/14404 * Fix: thumbnails issue in chat by @xugangqiang in https://github.com/infiniflow/ragflow/pull/14415 * Go: add volcengine by @JinHai-CN in https://github.com/infiniflow/ragflow/pull/14409 * Fix: preserve infinity available_int zero filter by @buua436 in https://github.com/infiniflow/ragflow/pull/14416 * Fix: align chat recommendation and thumbup APIs by @buua436 in https://github.com/infiniflow/ragflow/pull/14413 * Always return success if no such task id by @wangq8 in https://github.com/infiniflow/ragflow/pull/14417 * Refactor model in GO by @qinling0210 in https://github.com/infiniflow/ragflow/pull/14398 * Go: fix compilation by @JinHai-CN in https://github.com/infiniflow/ragflow/pull/14418 * Fix manual naive parser position extraction fallback by @6ba3i in https://github.com/infiniflow/ragflow/pull/14420 * Fix case-insensitive matching for manual meta_data_filter in / not in list values by @spider-yamet in https://github.com/infiniflow/ragflow/pull/14397 * Feat: enable sync deleted files for more connectors by @Magicbook1108 in https://github.com/infiniflow/ragflow/pull/14353 * Go: update db model by @JinHai-CN in https://github.com/infiniflow/ragflow/pull/14423 * Refactor model type to model class by @JinHai-CN in https://github.com/infiniflow/ragflow/pull/14426 * Fix: agent toolcall null response & schema validation & DeepSeek think history by @buua436 in https://github.com/infiniflow/ragflow/pull/14425 * Fix: document level auto metadata config missing after save by @xugangqiang in https://github.com/infiniflow/ragflow/pull/14421 * Go: implement provider: Moonshot by @Haruko386 in https://github.com/infiniflow/ragflow/pull/14433 * Feat: more model for paddle by @Magicbook1108 in https://github.com/infiniflow/ragflow/pull/14436 * Simplify Encode by @qinling0210 in https://github.com/infiniflow/ragflow/pull/14437 * Fix: google authentication - gmail && google-drive by @Magicbook1108 in https://github.com/infiniflow/ragflow/pull/14422 * Refactor: migrate chunk retrieval_test and knowledge_graph to REST API endpoints by @euvre in https://github.com/infiniflow/ragflow/pull/14402 * Fix: update based on #14436 by @Magicbook1108 in https://github.com/infiniflow/ragflow/pull/14440 * Fix: enable sync deleted file in airtable by @Magicbook1108 in https://github.com/infiniflow/ragflow/pull/14438 * refactor: improve QwenRerank logic by @Woody-Hu in https://github.com/infiniflow/ragflow/pull/14388 * feat(google-drive): optimize memory payload and enable sync deletion by @ParasSondhi in https://github.com/infiniflow/ragflow/pull/14372 * Feat: sync deleted files in Bitbucket by @Magicbook1108 in https://github.com/infiniflow/ragflow/pull/14450 * Go: update chat URL by @JinHai-CN in https://github.com/infiniflow/ragflow/pull/14453 * Fix: prune deleted doc chunks from retrieval by @buua436 in https://github.com/infiniflow/ragflow/pull/14454 * Fix: Dataset: When configuring the "general chunk method," options such as chunk size and parent-child slicing are unavailable. by @cike8899 in https://github.com/infiniflow/ragflow/pull/14459 * Remove model_bundle.go, modify chat_session.go by @qinling0210 in https://github.com/infiniflow/ragflow/pull/14458 * Fix: add retrieval fallback comments by @buua436 in https://github.com/infiniflow/ragflow/pull/14457 * Add backward compat APIs by @wangq8 in https://github.com/infiniflow/ragflow/pull/14427 * Go: implement provider: volcengine by @Haruko386 in https://github.com/infiniflow/ragflow/pull/14460 * Fix delete graphrag raptor by @wangq8 in https://github.com/infiniflow/ragflow/pull/14469 * Fix query param type by @wangq8 in https://github.com/infiniflow/ragflow/pull/14471 * Fix: Clicking the button in the bottom-right corner of the `/chats/widget` page fails to display the dialog box. by @cike8899 in https://github.com/infiniflow/ragflow/pull/14465 * Feat: enable sync deleted files for Gmail && fix google drive issues by @Magicbook1108 in https://github.com/infiniflow/ragflow/pull/14462 * Port PR14454 to GO (PruneDeletedChunks) by @qinling0210 in https://github.com/infiniflow/ragflow/pull/14463 * Update create model instance command by @JinHai-CN in https://github.com/infiniflow/ragflow/pull/14441 * Fix graph task type by @wangq8 in https://github.com/infiniflow/ragflow/pull/14475 * Fix delete graph by @wangq8 in https://github.com/infiniflow/ragflow/pull/14484 * Fix: RAPTOR "Generation scope" reset to "Single file" when selecting "Dataset" by @euvre in https://github.com/infiniflow/ragflow/pull/14477 * Feat: enable sync deleted files in gitlab by @Magicbook1108 in https://github.com/infiniflow/ragflow/pull/14481 * feat(dropbox): support deleted-file sync by @bitloi in https://github.com/infiniflow/ragflow/pull/14476 * Feat: enable sync deleted file for Discord by @Magicbook1108 in https://github.com/infiniflow/ragflow/pull/14451 * Go: implement provider: MiniMax by @Haruko386 in https://github.com/infiniflow/ragflow/pull/14478 * Go: add drop instance models by @JinHai-CN in https://github.com/infiniflow/ragflow/pull/14485 * Docs: Updated Title chunker references by @writinwaters in https://github.com/infiniflow/ragflow/pull/14483 * Fix: The pipeline column header in the FileLogsTable is displaying incorrectly. by @cike8899 in https://github.com/infiniflow/ragflow/pull/14489 * Fix visit dataset error by @wangq8 in https://github.com/infiniflow/ragflow/pull/14490 * Docs: by @writinwaters in https://github.com/infiniflow/ragflow/pull/14492 * Fix metadata config by @wangq8 in https://github.com/infiniflow/ragflow/pull/14480 * fix: file logs not displayed in dataset ingestion page by @euvre in https://github.com/infiniflow/ragflow/pull/14479 * Chore(deps): Bump google.golang.org/grpc from 1.66.2 to 1.79.3 by @dependabot[bot] in https://github.com/infiniflow/ragflow/pull/14513 * Fix: The GraphRAG icon is not displaying. by @cike8899 in https://github.com/infiniflow/ragflow/pull/14514 * Docs: Update version references to v0.25.1 in READMEs and docs by @asiroliu in https://github.com/infiniflow/ragflow/pull/14488 ## New Contributors * @hyl64 made their first contribution in https://github.com/infiniflow/ragflow/pull/14244 * @ucloudnb666 made their first contribution in https://github.com/infiniflow/ragflow/pull/14270 * @bohdansolovie made their first contribution in https://github.com/infiniflow/ragflow/pull/14267 * @newyangyang made their first contribution in https://github.com/infiniflow/ragflow/pull/14329 * @RazmikGevorgyan made their first contribution in https://github.com/infiniflow/ragflow/pull/14205 * @MukundaKatta made their first contribution in https://github.com/infiniflow/ragflow/pull/14352 * @ParasSondhi made their first contribution in https://github.com/infiniflow/ragflow/pull/14218 * @kuishou68 made their first contribution in https://github.com/infiniflow/ragflow/pull/14281 * @wdeveloper16 made their first contribution in https://github.com/infiniflow/ragflow/pull/14097 * @xingxing21 made their first contribution in https://github.com/infiniflow/ragflow/pull/14090 * @yuch85 made their first contribution in https://github.com/infiniflow/ragflow/pull/13286 * @mginfn made their first contribution in https://github.com/infiniflow/ragflow/pull/14361 * @Haruko386 made their first contribution in https://github.com/infiniflow/ragflow/pull/14433 **Full Changelog**: https://github.com/infiniflow/ragflow/compare/v0.25.0...v0.25.1