Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
509 commits
Select commit Hold shift + click to select a range
74eb894
Fix `RuntimeError: asyncio.run() cannot be called from a running even…
N0bodycan Dec 11, 2025
8370bc6
Feat: enhance metadata operation (#11874)
yongtenglei Dec 11, 2025
7b96113
MinerU supports for the new backend vlm-mlx-engine (#11864)
TeslaZY Dec 11, 2025
a6afb7d
Fix data_sync startup crash by properly invoking async main (#11879)
davidlcarrascal Dec 11, 2025
c610bb6
Added semi-automatic mode to the metadata filter (#11886)
TeslaZY Dec 11, 2025
e3cfe8e
Fix:async issue and sensitive logging (#11895)
buua436 Dec 11, 2025
bd0eff2
Add DeepseekV3.2 of Tongyi-Qianwen and remove unused code (#11898)
TeslaZY Dec 11, 2025
e9710b7
Refa: treat MinerU as an OCR model 2 (#11905)
yongtenglei Dec 11, 2025
22a51a3
Feat: Add mineru as a model manufacturer to the system. #10621 (#11903)
cike8899 Dec 11, 2025
ea4a5cd
Fix: tokenizer issue. (#11902)
KevinHuSh Dec 11, 2025
74afb8d
feat: Add Single Bucket Mode for MinIO/S3 (#11416)
arogan178 Dec 11, 2025
a6bd765
Feat: Flatten the request schema of the webhook #10427 (#11917)
cike8899 Dec 12, 2025
7db9045
Feat: Add box connector (#11845)
Magicbook1108 Dec 12, 2025
e37aea5
Docs: How to use restful API to update or delete metadata (#11912)
writinwaters Dec 12, 2025
6560388
Fix: correct metadata update behavior (#11919)
yongtenglei Dec 12, 2025
f9510ed
Feature/docs generator (#11858)
PentaFrame-Development Dec 12, 2025
50715ba
Fix: forget-reset password (#11927)
Magicbook1108 Dec 12, 2025
0fcb168
Feat: Displaying the file option in the webhook's request body #10427…
cike8899 Dec 12, 2025
0f0fb53
Refa: refactor metadata filter (#11907)
yongtenglei Dec 12, 2025
948bc93
Feat: Add GPT-5.2 & pro (#11929)
Magicbook1108 Dec 12, 2025
2b26090
Fix: raptor don't have attribute chat (#11936)
yongtenglei Dec 12, 2025
44dec89
Fix: aspose-slide issue. (#11935)
KevinHuSh Dec 12, 2025
6be0338
Fix: Asure-OpenAI resource not found (#11934)
yongtenglei Dec 13, 2025
7d23c3a
Fix: presentation parsing & Embedding encode exception handling (#11933)
Magicbook1108 Dec 13, 2025
81eb03d
Support uploading encrypted files to object storage (#11837) (#11838)
yngvarhuang Dec 15, 2025
1ddd11f
Feat: Set the return value of the webhook to a string. #10427 (#11945)
cike8899 Dec 15, 2025
13d8241
Doc: executor manager updated docker version (#11946)
yongtenglei Dec 15, 2025
2a0f835
Refactor: Improve the logic to calculate embedding total token count …
Woody-Hu Dec 15, 2025
ad6f7fd
Fix: pipeline ignore MinerU backend config and vllm module is missing…
yongtenglei Dec 15, 2025
a2e080c
feat: display name instead of key in user fillup form submission (#11…
zhulenghan Dec 15, 2025
7ca3e11
Update dataset config and retrieval testing (#11958)
JinHai-CN Dec 15, 2025
a98887d
Fix: Bug fixes (#11960)
dcc123456 Dec 16, 2025
ef5d1d4
Fix: 'AzureEmbed' object has no attribute 'total_token_count_from_res…
Woody-Hu Dec 16, 2025
1112b62
Remove unused py module dependencies (#11964)
JinHai-CN Dec 16, 2025
49c74d0
Feature/mineru improvements (#11938)
concertdictate Dec 16, 2025
5bba562
Feature/excel export fix (#11914)
Shivamjohri247 Dec 16, 2025
f792672
Fix security issue (#11965)
JinHai-CN Dec 16, 2025
bccad7b
Docs: Migrate to single bucket mode (contributed by community) (#11972)
writinwaters Dec 16, 2025
344a106
Feat: Enable image edit in edit_chunk (#11971)
Magicbook1108 Dec 16, 2025
0e8b958
Fix error and format issue (#11975)
JinHai-CN Dec 16, 2025
4d46726
Docs: Updated executor manager prerequisites (#11978)
writinwaters Dec 16, 2025
30019da
Change knowledge base to dataset (#11976)
JinHai-CN Dec 17, 2025
2595644
feat: add ingestion pipeline children delimiters configs (#11979)
JimmyBenKlieve Dec 17, 2025
205a648
Feature:memory function complete (#11982)
dcc123456 Dec 17, 2025
5e05f43
Update default prompt (#11984)
JinHai-CN Dec 17, 2025
03f9be7
Refa: only support MinerU-API now (#11977)
yongtenglei Dec 17, 2025
4046bff
fix: unable to save ingestion pipeline config without modifying child…
JimmyBenKlieve Dec 17, 2025
93ca1e0
Fix: update document api sample reponse is out of date. (#11989)
Magicbook1108 Dec 17, 2025
d16643a
Fix: Fixed the issue of empty memory parameters (#11988)
dcc123456 Dec 17, 2025
82d4e5f
Ref: update loggings (#11987)
Magicbook1108 Dec 17, 2025
4fd4a41
Fix: add multimodel models in chat api (#11986)
Magicbook1108 Dec 17, 2025
e58271e
feat: add toc option in transformer node in ingestion pipeline (#11992)
JimmyBenKlieve Dec 17, 2025
7baa67d
Feat: Reject default admin account log in to normal services (#11994)
Magicbook1108 Dec 17, 2025
8e4d011
Fix: parent-children chunking method. (#11997)
KevinHuSh Dec 17, 2025
d38f8a1
Add license and Fix IDE warnings (#11985)
JinHai-CN Dec 17, 2025
ef44979
Fix table format warning in Markdown file (#12002)
JinHai-CN Dec 17, 2025
3820de9
Fix: duplicated PDF parser (#12000)
yongtenglei Dec 17, 2025
672958a
Fix: model not authorized (#12001)
yongtenglei Dec 17, 2025
ce161f0
feat: add image uploader in edit chunk dialog (#12003)
JimmyBenKlieve Dec 18, 2025
1a4822d
Refactor: Improve the timestamp consistency (#11942)
Woody-Hu Dec 18, 2025
4dd8cdc
task executor issues (#12006)
concertdictate Dec 18, 2025
a63dcfe
Refactor: improve cohere calculate total counts (#12007)
Woody-Hu Dec 18, 2025
cc9546b
Fix IDE warnings (#12010)
JinHai-CN Dec 18, 2025
5cd1a67
Fix: image edit in edit_chunk (#12009)
Magicbook1108 Dec 18, 2025
2331b3a
Refact: Update loggings (#12014)
Magicbook1108 Dec 18, 2025
151480d
Feat: trace information can be returned by the agent completion API (…
yongtenglei Dec 18, 2025
e84d541
Feat: bedrock iam authentication (#12020)
Magicbook1108 Dec 18, 2025
7a4044b
Feat: use filepath for files with the same name for all data source t…
Jonah879 Dec 18, 2025
57edc21
Feat:update webhook component (#11739)
buua436 Dec 18, 2025
f8fd1ea
Feat: Further update Bedrock model configs (#12029)
Magicbook1108 Dec 19, 2025
2844700
Refa: better UX for adding OCR model (#12034)
yongtenglei Dec 19, 2025
6cd1824
Feat: chats completions API supports metadata filtering (#12023)
yongtenglei Dec 19, 2025
4cbe470
Feat: Display error messages from intermediate nodes of the webhook. …
cike8899 Dec 19, 2025
8683a5b
Docs: How to call MinerU as a remote service (#12004)
writinwaters Dec 19, 2025
0494b92
Feat: Display error messages from intermediate nodes. #10427 (#12038)
cike8899 Dec 19, 2025
d82e502
Add AI Badgr as OpenAI-compatible chat model provider (#12018)
miguelmanlyx Dec 19, 2025
aceca26
Feat: Images appearing consecutively in the dialogue are merged and d…
cike8899 Dec 19, 2025
eeb36a5
Feature: Implement metadata functionality (#12049)
dcc123456 Dec 19, 2025
55c0468
Include document_id in knowledgebase info retrieval (#12041)
haowenj Dec 19, 2025
3ee47e4
Feat: document list and filter supports metadata filtering (#12053)
yongtenglei Dec 22, 2025
47005eb
feat: supports multiple retrieval tool under an agent (#12046)
JimmyBenKlieve Dec 22, 2025
5aea82d
Feat: Separate connectors from s3 (#12045)
Magicbook1108 Dec 22, 2025
8dd2394
feat: add optional cache busting for image (#12055)
JimmyBenKlieve Dec 22, 2025
b49eb68
Feat: enhance Excel image extraction with vision-based descriptions (…
buua436 Dec 22, 2025
2118bc2
Fix: Python SDK retrieve document_name is empty (#12062)
Woody-Hu Dec 22, 2025
c7cf7aa
Fix: update RAGFlow SDK for consistency (#12065)
Magicbook1108 Dec 22, 2025
42f9ac9
Remove Chinese comments and fix function arguments errors (#12052)
JinHai-CN Dec 22, 2025
f911aa2
Fix: list MCP tools may block (#12067)
yongtenglei Dec 22, 2025
ba7e087
Refactor:remove useless try catch for ppt parser (#12063)
Woody-Hu Dec 22, 2025
74adf3d
Potential fix for code scanning alert no. 57: Clear-text logging of s…
yingfeng Dec 22, 2025
bfef96d
Potential fix for code scanning alert no. 58: Clear-text logging of s…
yingfeng Dec 22, 2025
6c9afd1
Potential fix for code scanning alert no. 60: Clear-text logging of s…
yingfeng Dec 22, 2025
0a5dce5
Fix character escape (#12072)
JinHai-CN Dec 22, 2025
3ea84ad
Potential fix for code scanning alert no. 59: Clear-text logging of s…
yingfeng Dec 22, 2025
5ba51b2
Feat: When the webhook returns a field in streaming format, the messa…
cike8899 Dec 22, 2025
2ddfcc7
Images that appear consecutively in the dialogue are displayed using …
cike8899 Dec 22, 2025
5d391fb
fix: guard Dashscope response attribute access in token/log utils (#1…
yongtenglei Dec 22, 2025
b42b5fc
feat: display chunk type in chunk editor and dialog (#12086)
JimmyBenKlieve Dec 22, 2025
993bf7c
Fix IDE warnings (#12085)
JinHai-CN Dec 22, 2025
51b1284
Feature/1217 (#12087)
dcc123456 Dec 22, 2025
6d3d3a4
fix: hide drop-zone upload button when picked an image (#12088)
JimmyBenKlieve Dec 22, 2025
4cbc91f
Feat: optimize aws s3 connector (#12078)
Magicbook1108 Dec 22, 2025
e5f3d5a
Refactor add_llm and add speech to text (#12089)
JinHai-CN Dec 22, 2025
38ac6a7
feat: add image context window in dataset config (#12094)
JimmyBenKlieve Dec 22, 2025
a95f22f
Feat: output intinity test log (#12097)
Lynn-Inf Dec 22, 2025
bd76b8f
Fix: Tika server upgrades. (#12073)
KevinHuSh Dec 23, 2025
1444de9
Feat: enhance webhook response to include status and success fields a…
buua436 Dec 23, 2025
d5a44e9
Fix: fix task cancel (#12093)
Magicbook1108 Dec 23, 2025
8ce129b
Update workflow (#12101)
JinHai-CN Dec 23, 2025
02efab7
Feat: Hide part of the message field in webhook mode #10427 (#12100)
cike8899 Dec 23, 2025
bd4eb19
Fix:Bugs fix (Reduce metadata saving steps ...) (#12095)
dcc123456 Dec 23, 2025
712d537
Fix: vision_figure_parser_docx/pdf_wrapper (#12104)
Magicbook1108 Dec 23, 2025
9e31631
Feat: Add memory multi-select dropdown to recall and message operator…
cike8899 Dec 23, 2025
ea89e4e
Feat: add GLM-4.7 (#12102)
yongtenglei Dec 23, 2025
321474f
Fix: update method call to use simplified async tool reaction (#12108)
buua436 Dec 23, 2025
d1bc7ad
Fix only one of multiple retrieval tools is effective (#12110)
TeslaZY Dec 23, 2025
8e6ddd7
Fix: Metadata bugs. (#12111)
dcc123456 Dec 23, 2025
b824185
Feat: Translate the text of the webhook debugging interface. #10427 (…
cike8899 Dec 23, 2025
063b064
redirect stderr to stdout (#12122)
JinHai-CN Dec 23, 2025
00bb6fb
Fix: metadata issue & graphrag speeding up. (#12113)
KevinHuSh Dec 23, 2025
2369be7
Refactor: enhance next_step prompt (#12117)
buua436 Dec 23, 2025
b47f1af
fix: transformer toc prompt text incorrect (#12116)
JimmyBenKlieve Dec 23, 2025
f63f007
fix: add null safety checks in webhook response status hook (#12114)
SalmonWu13 Dec 23, 2025
a958ddb
refactor: reword locale translations (#12118)
JimmyBenKlieve Dec 23, 2025
033029e
Fix: The form waiting for input is not displayed in the dialog messag…
cike8899 Dec 23, 2025
6c93157
Refa: image table context window (#12132)
yongtenglei Dec 23, 2025
bab6a4a
Fix: /kb/update does not update FileService (#12121)
Magicbook1108 Dec 23, 2025
8197f9a
Fix: table tag on chunks. (#12126)
KevinHuSh Dec 24, 2025
9a5c5c4
Fix: Add prompts when merging or deleting metadata. (#12138)
dcc123456 Dec 24, 2025
49dbfdb
Feat: deduplicate metadata lists during updates (#12125)
yongtenglei Dec 24, 2025
957bc02
Fix:remove duplicate tool_meta (#12139)
buua436 Dec 24, 2025
df09cbd
Doc: Added an HTTP request component reference (#12141)
writinwaters Dec 24, 2025
5ff3be2
Feat: Support Markdown Rendering for tips in user-fill-up Component #…
cike8899 Dec 24, 2025
badd5aa
Fix: LLM tool does not exist in multiple retrieval case (#12143)
TeslaZY Dec 24, 2025
ce08ee3
Fix: metadata_obj issue. (#12146)
KevinHuSh Dec 24, 2025
e24fabb
Feat: add MiniMax M2.1 (#12148)
yongtenglei Dec 24, 2025
7d4258f
Feat: add document metadata setting (#12156)
yongtenglei Dec 24, 2025
df0c092
Feat: add image table context to pipeline splitter (#12167)
yongtenglei Dec 24, 2025
4a29781
Fix:Metadata saving, copywriting and other related issues (#12169)
dcc123456 Dec 24, 2025
f0dac1d
Fix: loopitem None issue. (#12166)
KevinHuSh Dec 24, 2025
884aabd
Fix: Fixed the issue of incorrect agent translation text. #10427 (#12…
cike8899 Dec 24, 2025
556b5ad
Dragging down a downstream node of a Switch operator will cause the e…
cike8899 Dec 24, 2025
02b976f
Bump infinity to 0.6.13 (#12181)
yuzhichang Dec 24, 2025
89ea760
Fix: Add a no-data filter condition to MetaData (#12189)
dcc123456 Dec 25, 2025
e23c8a5
Fix: type check for chunks (#12164)
Magicbook1108 Dec 24, 2025
5ebabf5
Fix test error (#12194)
JinHai-CN Dec 25, 2025
8cbfb5a
Fix: toc no chunk found issue. (#12197)
KevinHuSh Dec 25, 2025
059f375
Feat: supports filter documents by empty metadata (#12180)
yongtenglei Dec 25, 2025
d1c4077
Fix directory name (#12195)
JinHai-CN Dec 25, 2025
6373ff8
Fix: keep behavior consistent for converse_with_chat_assistant (#12190)
yongtenglei Dec 25, 2025
0f8f35b
Refa: remove MinerU settings from .env (#12201)
yongtenglei Dec 25, 2025
a3ceb7a
Update german language file (resubmission) (#12208)
hauberj Dec 25, 2025
f6217bb
Feat: Images referenced in chat messages are displayed as a carousel …
cike8899 Dec 25, 2025
2817be1
Fix: Metadata tips info (#12209)
dcc123456 Dec 25, 2025
c20d112
Print log (#12200)
JinHai-CN Dec 25, 2025
7b6ab22
fix: chunk editor allows update image only if chunk type is image (#1…
JimmyBenKlieve Dec 25, 2025
1812491
Feat: add Airtable connector and integration for data synchronization…
buua436 Dec 25, 2025
c8eeba5
Fix: gen metadata error. (#12212)
KevinHuSh Dec 25, 2025
cfd1250
Fix: Api key modal bug (#12213)
dcc123456 Dec 25, 2025
c7b5bfb
Feat: An image carousel is displayed at the bottom of the agent's cha…
cike8899 Dec 25, 2025
fd53b83
Feat: Hide the autoplay switch for message operators in webhook mode.…
cike8899 Dec 25, 2025
6e9691a
Feat: message manage (#12196)
Lynn-Inf Dec 25, 2025
73db759
refactor: improve memory service date time consistency (#12144)
Woody-Hu Dec 24, 2025
5fb38ec
Fix: Can not select LLM in memory page (#12219)
dcc123456 Dec 26, 2025
6044314
Fix text issue (#12221)
JinHai-CN Dec 26, 2025
cbcbbc4
Feat: The agent can only retrieve content from the knowledge base or …
cike8899 Dec 26, 2025
52dbacc
Feat: Preview the image at the bottom of the message #12076 (#12225)
cike8899 Dec 26, 2025
894bf99
Fix: Memory-related bug fixes (#12226)
dcc123456 Dec 26, 2025
7498bc6
Fix: judge retrieval from (#12223)
Lynn-Inf Dec 26, 2025
a599a0f
Fix forget policy (#12228)
JinHai-CN Dec 26, 2025
9f8161d
Fix memory config: user prompt text box (#12229)
JinHai-CN Dec 26, 2025
a33936e
Fix small issues on UI (#12231)
JinHai-CN Dec 26, 2025
5714895
Fix message duration (#12233)
JinHai-CN Dec 26, 2025
d285d8c
Fix: memory (#12230)
Lynn-Inf Dec 26, 2025
3ad147d
Update deploy_local_llm.mdx with vllm guide support (#12222)
yiminghub2024 Dec 26, 2025
595fc4c
Feat: Display the selected list of memories in the retrieval node. #4…
cike8899 Dec 26, 2025
3558a6c
Fix: allow update memory type (#12237)
Lynn-Inf Dec 26, 2025
c4a6620
Fix: Memory-related bug fixes (#12238)
dcc123456 Dec 26, 2025
9de3ecc
Fix: rm field not allow check (#12240)
Lynn-Inf Dec 26, 2025
51bc41b
Refa: improve image table context (#12244)
yongtenglei Dec 26, 2025
613d2c5
Fix: Memory sava issue (#12243)
dcc123456 Dec 26, 2025
bc9e1e3
Fix: parent-children pipleine bad case. (#12246)
KevinHuSh Dec 26, 2025
c2e9064
Docs: v0.23.0 release notes (#12251)
writinwaters Dec 26, 2025
ddcd9cf
Fix: order by when pick msg to rm (#12247)
Lynn-Inf Dec 26, 2025
7f11a79
Fix: fifo -> FIFO (#12257)
dcc123456 Dec 26, 2025
a1ed443
Fix: frontend cannot sync document window context (#12256)
yongtenglei Dec 26, 2025
3364cf9
Fix: optimize init memory_size (#12254)
Lynn-Inf Dec 26, 2025
3fe94d3
Docs: Fixed a display issue (#12259)
writinwaters Dec 26, 2025
050534e
Bump infinity to 0.6.15 (#12264)
JinHai-CN Dec 27, 2025
ef5341b
Fix memory issue on Infinity 0.6.15 (#12258)
JinHai-CN Dec 27, 2025
8dc5b4d
Docs: Update version references to v0.23.0 in READMEs and docs (#12253)
asiroliu Dec 27, 2025
86b03f3
Fix error in docs (#12269)
JinHai-CN Dec 28, 2025
3305215
docs: add security warnings for default passwords in .env (#12250)
RinZ27 Dec 28, 2025
45b96ac
Update deploy_local_llm.mdx vllm guide picture (#12275)
yiminghub2024 Dec 28, 2025
2114b9e
Update deploy_local_llm.mdx (#12276)
yingfeng Dec 28, 2025
647fb11
Fix: Data-source S3 page style (#12255)
dcc123456 Dec 29, 2025
01f0ced
Fix IDE warnings (#12281)
JinHai-CN Dec 29, 2025
f9619de
Fix: init memory size from es (#12282)
Lynn-Inf Dec 29, 2025
9883c57
Refactor: keep timestamp consistency (#12279)
Woody-Hu Dec 29, 2025
27c55f6
Fix the consistency of ts and datetime (#12288)
JinHai-CN Dec 29, 2025
8d3f9d6
Fix: Delete chunk images on document parser config change. (#12262)
lys1313013 Dec 29, 2025
37e4485
feat: add MDX file support (#12261)
lys1313013 Dec 29, 2025
a24fc82
Fix: If there is an error message on the chat page, the subsequent me…
cike8899 Dec 29, 2025
fddfce3
Fix (sdk): ensure variables defined in rm_chunk API (#12274)
maoxiaowang Dec 29, 2025
651d9ff
security: replace unsafe eval with ast.literal_eval in vision operato…
RinZ27 Dec 29, 2025
a764f0a
Feat: Add Asana data source integration and configuration options (#1…
buua436 Dec 29, 2025
082c2ed
helm: improvements (#10976)
LyleLaii Dec 29, 2025
0b5d1eb
refactor: docling parser will close bytes io (#12280)
Woody-Hu Dec 29, 2025
f099bc1
Feat: github connector (#12292)
Magicbook1108 Dec 29, 2025
c3ae1aa
Feat: Gitlab connector (#12248)
Magicbook1108 Dec 29, 2025
c2c0798
Revert "Feat: github connector" (#12296)
KevinHuSh Dec 29, 2025
d142b90
Fix: pick message to delete (#12295)
Lynn-Inf Dec 29, 2025
dccda35
Fix: S3 parameter error (#12290)
dcc123456 Dec 29, 2025
2d5ad42
docs: add optional proxy arguments for Docker build instructions (#12…
maoxiaowang Dec 29, 2025
4ec6a4e
Feat: Remove the code that outputs jsonschema from the webhook.#10427…
cike8899 Dec 29, 2025
5402666
docs: fix typos (#12301)
lys1313013 Dec 30, 2025
df3cbb9
Refactor code (#12305)
JinHai-CN Dec 30, 2025
731e2d5
api key delete bug - Bug #3045 (#12299)
raminmardani Dec 30, 2025
4a6d37f
Fix: use async task to save memory (#12308)
Lynn-Inf Dec 30, 2025
59884ab
Fix TypeError in meta_filter when using numeric metadata (#12286)
tasumu Dec 30, 2025
4037788
Fix: Dataset parse error (#12310)
dcc123456 Dec 30, 2025
f0392e7
Fix IDE warnings (#12315)
JinHai-CN Dec 30, 2025
5903d1c
Feat: GitHub connector (#12314)
Magicbook1108 Dec 30, 2025
ff2c706
Fix: judge index exist before delete memory message. (#12318)
Lynn-Inf Dec 30, 2025
109e782
Feat: On the agent page and chat page, you can only select knowledge …
cike8899 Dec 30, 2025
bffdb5f
Feat: add IMAP data source integration with configuration and sync ca…
buua436 Dec 30, 2025
b96d553
Update release workflow (#12327)
JinHai-CN Dec 30, 2025
95edbd4
Update model providers (#12333)
JinHai-CN Dec 30, 2025
e2d17d8
Potential fix for code scanning alert no. 62: Workflow does not conta…
yingfeng Dec 30, 2025
68be3b9
Update release workflow (#12335)
JinHai-CN Dec 30, 2025
4705d07
fix: malformed dynamic translation key `chunk.docType.${chunkType}` (…
JimmyBenKlieve Dec 30, 2025
2fccf39
Feat: Adapt the theme of the documentation page. #10427 (#12337)
cike8899 Dec 30, 2025
a7e4661
Fix: Dataset parse logic (#12330)
dcc123456 Dec 30, 2025
348265a
Feat: Display mode at the begin node #10427 (#12326)
cike8899 Dec 30, 2025
52f91c2
Refine: image/table context. (#12336)
KevinHuSh Dec 30, 2025
6fee60e
Docs: What is RAG & What is Agent context engine (#12341)
writinwaters Dec 30, 2025
ec5575d
fix(admin-ui): pagination auto reset to first page when after refetch…
JimmyBenKlieve Dec 31, 2025
7dac269
fix: correct session reference initialization to prevent dialogue mis…
DanielDerefaka Dec 31, 2025
ae4692a
Fix: Bug fixed (#12345)
dcc123456 Dec 31, 2025
a07e947
Feat: Fixed the issue where the newly created agent begin node displ…
cike8899 Dec 31, 2025
f141947
[Feature] Admin: sort user list by email (#12350)
JinHai-CN Dec 31, 2025
1a4a7d1
Fix: apply kb configured llm issue. (#12354)
KevinHuSh Dec 31, 2025
a0c3bcf
[Bug] Don't display not used component status in admin status dashboa…
JinHai-CN Dec 31, 2025
7c9823a
Update release notes (#12356)
JinHai-CN Dec 31, 2025
07ef35b
Docs: Update version references to v0.23.1 in READMEs and docs (#12349)
asiroliu Dec 31, 2025
f24bdc0
Remove doc of health check (#12363)
JinHai-CN Dec 31, 2025
ae7c623
fix(rag/prompts): Restructure metadata extraction rules for precision…
asiroliu Dec 31, 2025
7503359
Fix: Batch parsing problem (#12358)
dcc123456 Dec 31, 2025
675d18d
Add docs category file (#12359)
JinHai-CN Dec 31, 2025
b65a93a
Merge tag 'v0.23.1' into upgrade-0.23.1
JasleenKaurSethi Jan 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 1 addition & 0 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
Refer to [AGENTS.MD](../AGENTS.md) for all repo instructions.
41 changes: 24 additions & 17 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,18 @@ name: release
on:
schedule:
- cron: '0 13 * * *' # This schedule runs every 13:00:00Z(21:00:00+08:00)
# https://github.com/orgs/community/discussions/26286?utm_source=chatgpt.com#discussioncomment-3251208
# "The create event does not support branch filter and tag filter."
# The "create tags" trigger is specifically focused on the creation of new tags, while the "push tags" trigger is activated when tags are pushed, including both new tag creations and updates to existing tags.
create:
push:
tags:
- "v*.*.*" # normal release
- "nightly" # the only one mutable tag

permissions:
contents: write
actions: read
checks: read
statuses: read

# https://docs.github.com/en/actions/using-jobs/using-concurrency
concurrency:
Expand All @@ -21,22 +28,22 @@ jobs:
- name: Ensure workspace ownership
run: echo "chown -R ${USER} ${GITHUB_WORKSPACE}" && sudo chown -R ${USER} ${GITHUB_WORKSPACE}

# https://github.com/actions/checkout/blob/v3/README.md
# https://github.com/actions/checkout/blob/v6/README.md
- name: Check out code
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
token: ${{ secrets.GITHUB_TOKEN }} # Use the secret as an environment variable
fetch-depth: 0
fetch-tags: true

- name: Prepare release body
run: |
if [[ ${GITHUB_EVENT_NAME} == "create" ]]; then
if [[ ${GITHUB_EVENT_NAME} != "schedule" ]]; then
RELEASE_TAG=${GITHUB_REF#refs/tags/}
if [[ ${RELEASE_TAG} == "nightly" ]]; then
PRERELEASE=true
else
if [[ ${RELEASE_TAG} == v* ]]; then
PRERELEASE=false
else
PRERELEASE=true
fi
echo "Workflow triggered by create tag: ${RELEASE_TAG}"
else
Expand All @@ -55,7 +62,7 @@ jobs:
git fetch --tags
if [[ ${GITHUB_EVENT_NAME} == "schedule" ]]; then
# Determine if a given tag exists and matches a specific Git commit.
# actions/checkout@v4 fetch-tags doesn't work when triggered by schedule
# actions/checkout@v6 fetch-tags doesn't work when triggered by schedule
if [ "$(git rev-parse -q --verify "refs/tags/${RELEASE_TAG}")" = "${GITHUB_SHA}" ]; then
echo "mutable tag ${RELEASE_TAG} exists and matches ${GITHUB_SHA}"
else
Expand All @@ -75,6 +82,14 @@ jobs:
# The body field does not support environment variable substitution directly.
body_path: release_body.md

- name: Build and push image
run: |
sudo docker login --username infiniflow --password-stdin <<< ${{ secrets.DOCKERHUB_TOKEN }}
sudo docker build --build-arg NEED_MIRROR=1 --build-arg HTTPS_PROXY=${HTTPS_PROXY} --build-arg HTTP_PROXY=${HTTP_PROXY} -t infiniflow/ragflow:${RELEASE_TAG} -f Dockerfile .
sudo docker tag infiniflow/ragflow:${RELEASE_TAG} infiniflow/ragflow:latest
sudo docker push infiniflow/ragflow:${RELEASE_TAG}
sudo docker push infiniflow/ragflow:latest

- name: Build and push ragflow-sdk
if: startsWith(github.ref, 'refs/tags/v')
run: |
Expand All @@ -84,11 +99,3 @@ jobs:
if: startsWith(github.ref, 'refs/tags/v')
run: |
cd admin/client && uv build && uv publish --token ${{ secrets.PYPI_API_TOKEN }}

- name: Build and push image
run: |
sudo docker login --username infiniflow --password-stdin <<< ${{ secrets.DOCKERHUB_TOKEN }}
sudo docker build --build-arg NEED_MIRROR=1 -t infiniflow/ragflow:${RELEASE_TAG} -f Dockerfile .
sudo docker tag infiniflow/ragflow:${RELEASE_TAG} infiniflow/ragflow:latest
sudo docker push infiniflow/ragflow:${RELEASE_TAG}
sudo docker push infiniflow/ragflow:latest
83 changes: 61 additions & 22 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
name: tests
permissions:
contents: read

on:
push:
Expand All @@ -12,7 +14,7 @@ on:
# The only difference between pull_request and pull_request_target is the context in which the workflow runs:
# — pull_request_target workflows use the workflow files from the default branch, and secrets are available.
# — pull_request workflows use the workflow files from the pull request branch, and secrets are unavailable.
pull_request_target:
pull_request:
types: [ synchronize, ready_for_review ]
paths-ignore:
- 'docs/**'
Expand All @@ -31,20 +33,17 @@ jobs:
name: ragflow_tests
# https://docs.github.com/en/actions/using-jobs/using-conditions-to-control-job-execution
# https://github.com/orgs/community/discussions/26261
if: ${{ github.event_name != 'pull_request_target' || contains(github.event.pull_request.labels.*.name, 'ci') }}
if: ${{ github.event_name != 'pull_request' || (github.event.pull_request.draft == false && contains(github.event.pull_request.labels.*.name, 'ci')) }}
runs-on: [ "self-hosted", "ragflow-test" ]
steps:
# https://github.com/hmarr/debug-action
#- uses: hmarr/debug-action@v2

- name: Ensure workspace ownership
run: |
echo "Workflow triggered by ${{ github.event_name }}"
echo "chown -R ${USER} ${GITHUB_WORKSPACE}" && sudo chown -R ${USER} ${GITHUB_WORKSPACE}

# https://github.com/actions/checkout/issues/1781
- name: Check out code
uses: actions/checkout@v4
uses: actions/checkout@v6
with:
ref: ${{ (github.event_name == 'pull_request' || github.event_name == 'pull_request_target') && format('refs/pull/{0}/merge', github.event.pull_request.number) || github.sha }}
fetch-depth: 0
Expand All @@ -53,7 +52,7 @@ jobs:
- name: Check workflow duplication
if: ${{ !cancelled() && !failure() }}
run: |
if [[ ${GITHUB_EVENT_NAME} != "pull_request_target" && ${GITHUB_EVENT_NAME} != "schedule" ]]; then
if [[ ${GITHUB_EVENT_NAME} != "pull_request" && ${GITHUB_EVENT_NAME} != "schedule" ]]; then
HEAD=$(git rev-parse HEAD)
# Find a PR that introduced a given commit
gh auth login --with-token <<< "${{ secrets.GITHUB_TOKEN }}"
Expand All @@ -78,7 +77,7 @@ jobs:
fi
fi
fi
elif [[ ${GITHUB_EVENT_NAME} == "pull_request_target" ]]; then
elif [[ ${GITHUB_EVENT_NAME} == "pull_request" ]]; then
PR_NUMBER=${{ github.event.pull_request.number }}
PR_SHA_FP=${RUNNER_WORKSPACE_PREFIX}/artifacts/${GITHUB_REPOSITORY}/PR_${PR_NUMBER}
# Calculate the hash of the current workspace content
Expand All @@ -95,13 +94,53 @@ jobs:
version: ">=0.11.x"
args: "check"

- name: Check comments of changed Python files
if: ${{ false }}
run: |
if [[ ${{ github.event_name }} == 'pull_request' || ${{ github.event_name }} == 'pull_request_target' ]]; then
CHANGED_FILES=$(git diff --name-only ${{ github.event.pull_request.base.sha }}...${{ github.event.pull_request.head.sha }} \
| grep -E '\.(py)$' || true)

if [ -n "$CHANGED_FILES" ]; then
echo "Check comments of changed Python files with check_comment_ascii.py"

readarray -t files <<< "$CHANGED_FILES"
HAS_ERROR=0

for file in "${files[@]}"; do
if [ -f "$file" ]; then
if python3 check_comment_ascii.py "$file"; then
echo "✅ $file"
else
echo "❌ $file"
HAS_ERROR=1
fi
fi
done

if [ $HAS_ERROR -ne 0 ]; then
exit 1
fi
else
echo "No Python files changed"
fi
fi

- name: Run unit test
run: |
uv sync --python 3.12 --group test --frozen
source .venv/bin/activate
which pytest || echo "pytest not in PATH"
echo "Start to run unit test"
python3 run_tests.py

- name: Build ragflow:nightly
run: |
RUNNER_WORKSPACE_PREFIX=${RUNNER_WORKSPACE_PREFIX:-${HOME}}
RAGFLOW_IMAGE=infiniflow/ragflow:${GITHUB_RUN_ID}
echo "RAGFLOW_IMAGE=${RAGFLOW_IMAGE}" >> ${GITHUB_ENV}
sudo docker pull ubuntu:22.04
sudo DOCKER_BUILDKIT=1 docker build --build-arg NEED_MIRROR=1 -f Dockerfile -t ${RAGFLOW_IMAGE} .
sudo DOCKER_BUILDKIT=1 docker build --build-arg NEED_MIRROR=1 --build-arg HTTPS_PROXY=${HTTPS_PROXY} --build-arg HTTP_PROXY=${HTTP_PROXY} -f Dockerfile -t ${RAGFLOW_IMAGE} .
if [[ ${GITHUB_EVENT_NAME} == "schedule" ]]; then
export HTTP_API_TEST_LEVEL=p3
else
Expand Down Expand Up @@ -161,34 +200,34 @@ jobs:
echo "HOST_ADDRESS=http://host.docker.internal:${SVR_HTTP_PORT}" >> ${GITHUB_ENV}

sudo docker compose -f docker/docker-compose.yml -p ${GITHUB_RUN_ID} up -d
uv sync --python 3.10 --only-group test --no-default-groups --frozen && uv pip install sdk/python
uv sync --python 3.12 --only-group test --no-default-groups --frozen && uv pip install sdk/python --group test

- name: Run sdk tests against Elasticsearch
run: |
export http_proxy=""; export https_proxy=""; export no_proxy=""; export HTTP_PROXY=""; export HTTPS_PROXY=""; export NO_PROXY=""
until sudo docker exec ${RAGFLOW_CONTAINER} curl -s --connect-timeout 5 ${HOST_ADDRESS} > /dev/null; do
until sudo docker exec ${RAGFLOW_CONTAINER} curl -s --connect-timeout 5 ${HOST_ADDRESS}/v1/system/ping > /dev/null; do
echo "Waiting for service to be available..."
sleep 5
done
source .venv/bin/activate && pytest -s --tb=short --level=${HTTP_API_TEST_LEVEL} test/testcases/test_sdk_api
source .venv/bin/activate && set -o pipefail; pytest -s --tb=short --level=${HTTP_API_TEST_LEVEL} test/testcases/test_sdk_api 2>&1 | tee es_sdk_test.log

- name: Run frontend api tests against Elasticsearch
run: |
export http_proxy=""; export https_proxy=""; export no_proxy=""; export HTTP_PROXY=""; export HTTPS_PROXY=""; export NO_PROXY=""
until sudo docker exec ${RAGFLOW_CONTAINER} curl -s --connect-timeout 5 ${HOST_ADDRESS} > /dev/null; do
until sudo docker exec ${RAGFLOW_CONTAINER} curl -s --connect-timeout 5 ${HOST_ADDRESS}/v1/system/ping > /dev/null; do
echo "Waiting for service to be available..."
sleep 5
done
source .venv/bin/activate && pytest -s --tb=short sdk/python/test/test_frontend_api/get_email.py sdk/python/test/test_frontend_api/test_dataset.py
source .venv/bin/activate && set -o pipefail; pytest -s --tb=short sdk/python/test/test_frontend_api/get_email.py sdk/python/test/test_frontend_api/test_dataset.py 2>&1 | tee es_api_test.log

- name: Run http api tests against Elasticsearch
run: |
export http_proxy=""; export https_proxy=""; export no_proxy=""; export HTTP_PROXY=""; export HTTPS_PROXY=""; export NO_PROXY=""
until sudo docker exec ${RAGFLOW_CONTAINER} curl -s --connect-timeout 5 ${HOST_ADDRESS} > /dev/null; do
until sudo docker exec ${RAGFLOW_CONTAINER} curl -s --connect-timeout 5 ${HOST_ADDRESS}/v1/system/ping > /dev/null; do
echo "Waiting for service to be available..."
sleep 5
done
source .venv/bin/activate && pytest -s --tb=short --level=${HTTP_API_TEST_LEVEL} test/testcases/test_http_api
source .venv/bin/activate && set -o pipefail; pytest -s --tb=short --level=${HTTP_API_TEST_LEVEL} test/testcases/test_http_api 2>&1 | tee es_http_api_test.log

- name: Stop ragflow:nightly
if: always() # always run this step even if previous steps failed
Expand All @@ -204,29 +243,29 @@ jobs:
- name: Run sdk tests against Infinity
run: |
export http_proxy=""; export https_proxy=""; export no_proxy=""; export HTTP_PROXY=""; export HTTPS_PROXY=""; export NO_PROXY=""
until sudo docker exec ${RAGFLOW_CONTAINER} curl -s --connect-timeout 5 ${HOST_ADDRESS} > /dev/null; do
until sudo docker exec ${RAGFLOW_CONTAINER} curl -s --connect-timeout 5 ${HOST_ADDRESS}/v1/system/ping > /dev/null; do
echo "Waiting for service to be available..."
sleep 5
done
source .venv/bin/activate && DOC_ENGINE=infinity pytest -s --tb=short --level=${HTTP_API_TEST_LEVEL} test/testcases/test_sdk_api
source .venv/bin/activate && set -o pipefail; DOC_ENGINE=infinity pytest -s --tb=short --level=${HTTP_API_TEST_LEVEL} test/testcases/test_sdk_api 2>&1 | tee infinity_sdk_test.log

- name: Run frontend api tests against Infinity
run: |
export http_proxy=""; export https_proxy=""; export no_proxy=""; export HTTP_PROXY=""; export HTTPS_PROXY=""; export NO_PROXY=""
until sudo docker exec ${RAGFLOW_CONTAINER} curl -s --connect-timeout 5 ${HOST_ADDRESS} > /dev/null; do
until sudo docker exec ${RAGFLOW_CONTAINER} curl -s --connect-timeout 5 ${HOST_ADDRESS}/v1/system/ping > /dev/null; do
echo "Waiting for service to be available..."
sleep 5
done
source .venv/bin/activate && DOC_ENGINE=infinity pytest -s --tb=short sdk/python/test/test_frontend_api/get_email.py sdk/python/test/test_frontend_api/test_dataset.py
source .venv/bin/activate && set -o pipefail; DOC_ENGINE=infinity pytest -s --tb=short sdk/python/test/test_frontend_api/get_email.py sdk/python/test/test_frontend_api/test_dataset.py 2>&1 | tee infinity_api_test.log

- name: Run http api tests against Infinity
run: |
export http_proxy=""; export https_proxy=""; export no_proxy=""; export HTTP_PROXY=""; export HTTPS_PROXY=""; export NO_PROXY=""
until sudo docker exec ${RAGFLOW_CONTAINER} curl -s --connect-timeout 5 ${HOST_ADDRESS} > /dev/null; do
until sudo docker exec ${RAGFLOW_CONTAINER} curl -s --connect-timeout 5 ${HOST_ADDRESS}/v1/system/ping > /dev/null; do
echo "Waiting for service to be available..."
sleep 5
done
source .venv/bin/activate && DOC_ENGINE=infinity pytest -s --tb=short --level=${HTTP_API_TEST_LEVEL} test/testcases/test_http_api
source .venv/bin/activate && set -o pipefail; DOC_ENGINE=infinity pytest -s --tb=short --level=${HTTP_API_TEST_LEVEL} test/testcases/test_http_api 2>&1 | tee infinity_http_api_test.log

- name: Stop ragflow:nightly
if: always() # always run this step even if previous steps failed
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -195,3 +195,6 @@ ragflow_cli.egg-info

# Default backup dir
backup


.hypothesis
110 changes: 110 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,110 @@
# RAGFlow Project Instructions for GitHub Copilot

This file provides context, build instructions, and coding standards for the RAGFlow project.
It is structured to follow GitHub Copilot's [customization guidelines](https://docs.github.com/en/copilot/concepts/prompting/response-customization).

## 1. Project Overview
RAGFlow is an open-source RAG (Retrieval-Augmented Generation) engine based on deep document understanding. It is a full-stack application with a Python backend and a React/TypeScript frontend.

- **Backend**: Python 3.10+ (Flask/Quart)
- **Frontend**: TypeScript, React, UmiJS
- **Architecture**: Microservices based on Docker.
- `api/`: Backend API server.
- `rag/`: Core RAG logic (indexing, retrieval).
- `deepdoc/`: Document parsing and OCR.
- `web/`: Frontend application.

## 2. Directory Structure
- `api/`: Backend API server (Flask/Quart).
- `apps/`: API Blueprints (Knowledge Base, Chat, etc.).
- `db/`: Database models and services.
- `rag/`: Core RAG logic.
- `llm/`: LLM, Embedding, and Rerank model abstractions.
- `deepdoc/`: Document parsing and OCR modules.
- `agent/`: Agentic reasoning components.
- `web/`: Frontend application (React + UmiJS).
- `docker/`: Docker deployment configurations.
- `sdk/`: Python SDK.
- `test/`: Backend tests.

## 3. Build Instructions

### Backend (Python)
The project uses **uv** for dependency management.

1. **Setup Environment**:
```bash
uv sync --python 3.12 --all-extras
uv run download_deps.py
```

2. **Run Server**:
- **Pre-requisite**: Start dependent services (MySQL, ES/Infinity, Redis, MinIO).
```bash
docker compose -f docker/docker-compose-base.yml up -d
```
- **Launch**:
```bash
source .venv/bin/activate
export PYTHONPATH=$(pwd)
bash docker/launch_backend_service.sh
```

### Frontend (TypeScript/React)
Located in `web/`.

1. **Install Dependencies**:
```bash
cd web
npm install
```

2. **Run Dev Server**:
```bash
npm run dev
```
Runs on port 8000 by default.

### Docker Deployment
To run the full stack using Docker:
```bash
cd docker
docker compose -f docker-compose.yml up -d
```

## 4. Testing Instructions

### Backend Tests
- **Run All Tests**:
```bash
uv run pytest
```
- **Run Specific Test**:
```bash
uv run pytest test/test_api.py
```

### Frontend Tests
- **Run Tests**:
```bash
cd web
npm run test
```

## 5. Coding Standards & Guidelines
- **Python Formatting**: Use `ruff` for linting and formatting.
```bash
ruff check
ruff format
```
- **Frontend Linting**:
```bash
cd web
npm run lint
```
- **Pre-commit**: Ensure pre-commit hooks are installed.
```bash
pre-commit install
pre-commit run --all-files
```

Loading