544 Commits
Author SHA1 Message Date
Sbaaoui Idriss f6477b1977 fix(chat): preserve images across reasoning and conversation history (#20728) 2026-10-12 10:15:41 +08:00
Jin Hai bc2934b89d Go: fix xunfei model (#20757)
Signed-off-by: Jin Hai <[email protected]>
2026-10-11 08:53:26 +08:00
Sourav Rajvi 38e63566be feat(go): MonkeyOCR env keys and tenant provisioning (#20468) 2026-10-10 17:12:18 +08:00
Caobaining1 c5c75b2c5d fix(agentic_rag): number citations from a per-turn evidence registry (#20677) 2026-10-09 19:47:00 +08:00
Lynn 3cbde9ad8e Fix: remove rank in mws config (#20676) 2026-10-09 19:11:54 +08:00
adws 83c6ebdf2b fix(wiki): remove duplicate Markdown storage (#20597) 2026-10-09 15:48:06 +08:00
Caobaining1 d50f1f02d6 feat(agentic_rag): add metadata_search tool to eino smart-reasoning path (#20645) 2026-10-09 14:52:44 +08:00
qinling0210 ca22c25245 fix(infinity): restore deprecated knowledge-compilation columns in the chunk mapping (#20646) 2026-10-09 14:12:39 +08:00
kk710 ef150bc2cd feat(vastbase): add Vastbase G100 document engine support with go (#20419) 2026-10-08 20:02:37 +08:00
buua436 fceacbfb27 feat: add SiliconFlow model catalog entries (#20596) 2026-10-08 17:45:20 +08:00
Wang Qi f307aba34f Refactor: knowledge compilation field name refactor (#20587) 2026-10-08 16:05:27 +08:00
Felix 536f8fa7a6 feat: add Opper as a model provider (#20577) 2026-10-08 11:52:15 +08:00
Zhichang Yu 98b48a0857 Port agentic RAG to Go, expose it as a chat mode, and add per-dialog failover (#20503)
## Background

This branch started as a focused fix to agentic RAG regexp retrieval
semantics (`f80556585`) and grew into the full agentic RAG path. The
title no longer describes the contents, so it has been rewritten.

The PR now covers three largely independent lines of work:

### 1. The agentic RAG is reachable from the UI

`internal/agentic_rag` (the eino-ADK ReAct explorer) was already built
and wired, but only reachable by hand-crafting an `agent_mode` kwarg. It
is now the sixth option in the chat mode selector (`reasoning` level 5).

One subtlety worth stating plainly: **levels 1-4 and level 5 are not the
same agent.** Levels 1-4 go through `internal/rag/agentic-rag` (the
harness graph) with a depth chosen by `harnessModeForLevel`; level 5
switches engines outright to `internal/agentic_rag`. That is why level 5
must never reach `harnessModeForLevel` — its `level >= 4` case would
silently answer "ultra" for a level outside its domain.

### 2. Per-dialog failover chain

`agenticModelChain` resolved exactly one model and the caller then used
`chain[0]`, so a "chain" was never more than a single element. A dialog
can now configure an ordered list of fallback models in Chat Settings,
handed to `NewFailoverEinoChatModel` (sticky cursor plus a 30s
full-chain cooldown).

The list lives in the dialog's own `llm_setting.failover_llm_ids`, so no
new table is involved. A member that no longer resolves is skipped with
a warning rather than failing the turn.

Also removed: `tenant_model_group` / `tenant_model_group_mapping`, which
nothing ever read (the DAOs were constructed but never called, and no
frontend or Python code referenced the concept). Their removal takes an
explicit drop migration with it, plus the account-deletion cascade that
queried them.

### 3. A hung MiniMax stream (independent of the agentic work)

With any mode selected, a chat rendered its whole answer and then sat on
"thinking" forever. Root cause is `minimax.go:256`: MiniMax sends `data:
[DONE]` but leaves the HTTP connection open, and the code waited for the
scanner goroutine's EOF *after* `HandleStreamingResponse` had already
returned. That receive can only end when `streamCallTimeout` (20
minutes) expires.

Diagnosed by capturing a real SSE stream (the complete answer arrives,
the terminal `final: true` never does) and a goroutine dump (6 requests
parked in `chan receive`).

## Two review findings fixed on the way through

- **KB-scope authorization**: the agentic branch bypassed quote
resolution, and an empty KB scope made `buildBoolQueryFromCondition`
drop the `kb_id` filter — so a citation could resolve a chunk belonging
to a different KB in the same tenant. The agentic branch now requires a
non-empty scope and otherwise falls through to the regular path.
- **Stale documentation**: `agentic-rag-failover-groups.md` described
the "automatically include every tenant model" strategy that upstream
had already removed. It was rewritten for the per-dialog scope and then
dropped entirely, since the design now lives in the code it describes.

## Verification

- `bash build.sh --test`: `admin`, `dao`, `service`, `service/dataset`
and `entity/models` all pass
- The MiniMax fix was verified end-to-end against a live server: before,
the turn hung indefinitely; after, it completes in **1.9s** with `final:
true` present
- Frontend: 9 tests added; type-check and lint clean on the touched
files

## Not included

- **Attachment support in agentic mode.** Text attachments could be
appended safely, but images have no safe fix: the agent's toolset is
built around corpus retrieval and has no image input channel. Fixing
only the text path would leave the feature half-supported and harder to
diagnose than now. Planned as a follow-up PR, with the design synced
here first.
- Tool-calling is not enforced as a group constraint. `is_tools` is a
provider-declared flag rather than a measured capability (187 of 659
chat models do not declare it), so gating on it would reject working
configurations while admitting broken ones.
2026-10-02 23:00:16 +08:00
buua436 c8a00c6f6d refactor: use model tokenizer for rerank (#20422) 2026-09-30 14:30:32 +08:00
qinling0210 02569aee9d fix(mappings): support any embedding dimension on Elasticsearch (#20368) 2026-09-29 17:46:45 +08:00
xugangqiang 18d9750981 feat(config): make ingestor worker count (K) and page concurrency (N) configurable (#20121) 2026-09-29 14:19:24 +08:00
xugangqiang 52a0199c6e refactor(config): nest DeepDoc inference config under ingestor; add cpu-cores budget + fail-fast (#20084) 2026-09-29 14:19:17 +08:00
buua436 3f1a0a1190 refa: remove provider-specific Bedrock validation (#20308) 2026-09-29 14:02:42 +08:00
Jin Hai 307a70285e refactor: remove redis in yaml (#20313)
Signed-off-by: Jin Hai <[email protected]>
2026-09-28 19:20:37 +08:00
adws c8e72afc8b fix minimax model ids (#20184) 2026-09-24 14:54:23 +08:00
Lynn cf1b20ca26 Fix: add hint url for local AI (#20039) 2026-09-22 20:10:54 +08:00
xugangqiang cf3986174e feat(deepdoc): make inference concurrency configurable (default 4) (#20044) 2026-09-22 19:41:06 +08:00
Sbaaoui Idriss 05b167e966 refactor(mcp): centralize configuration and transport wiring (#20011) 2026-09-22 11:18:14 +08:00
Anurag Singh 65e6f94c06 feat(models): add recent Gemini models (#19885)
Closes #19805
2026-09-21 12:06:15 +08:00
Wang Qi 6a29cf9547 Make kvrocks host configurable (#19916) 2026-09-20 17:46:27 +08:00
adws 7029a0973c Feat/xiaomi list models refresh (#19855) 2026-09-20 10:01:25 +08:00
Sourav Rajvi 0849da0f0b feat(models): add OpenAI GPT-5.6 model family (#19856)
Closes #19806
2026-09-19 14:50:53 +08:00
Zhichang Yu 44b8d366ba feat(go,web): port tokenizer counters, embedding limits and multi-provider web search (#19802) 2026-09-18 19:11:28 +08:00
aiapienthusiast 46277ebe5c feat: add Cheaper Inference as an OpenAI-compatible model provider (#19748)
Add Cheaper Inference as OpenAI-compatible provider
---------
Signed-off-by: aiapienthusiast <[email protected]>
2026-09-18 11:26:32 +08:00
qinling0210 850132e6cb fix(infinity): repair chunk ingestion and dataset save (#19773) 2026-09-17 15:36:41 +08:00
coderdailyone af02d0a6e8 fix(api): stop trusting X-Forwarded-For from every peer in the agent webhook IP whitelist (#19550) 2026-09-16 15:22:10 +08:00
Seven 5ef628396f feat: add DaoXE as an OpenAI-compatible model provider (#19560)
Adds DaoXE (https://daoxe.com) as an OpenAI-compatible model provider

Signed-off-by: seven7763 <[email protected]>
2026-09-15 19:19:32 +08:00
DennyHo0917 023d448831 feat: add API-Route as a model provider (#19566) 2026-09-14 18:49:50 +08:00
AnonrouterandSunday Labs --labrat b69afb5005 feat: add AnonRouter model provider (#19561)
I maintain AnonRouter and added it as a hosted OpenAI-compatible model
provider

Co-authored-by: Sunday Labs --labrat <[email protected]>
2026-09-14 11:31:02 +08:00
Konstantin Romankov 4731ee3322 feat: add Hubris as a model provider (#19341)
Added Hubris as a new OpenAI-compatible model provider for the Russian market, with per-model thinking.default_value empirically measured (not guessed), endpoint pinned (not configurable)
2026-09-09 17:19:46 +08:00
Lynn 82f6144a5b Fix: update GiteeAI base_url and some model_name (#19338) 2026-09-08 11:18:07 +08:00
Ziyang Zhang fd9f9e7f61 feat(parser): add MonkeyOCRv2-Parsing support (#18887)
Add MonkeyOCRv2-Parsing as a document layout parser. Adapter sends docs to HTTP API, extracts ZIP response, converts JSON layout (text/tables/bbox) to RAGFlow sections. Configurable via MONKEYOCRV2_SERVER_URL.
2026-09-07 21:12:50 +08:00
Eric CurtinandJin Hai c051f40593 feat: add llmman as a model provider (#19030)
Add llmman support (local OCI-distributed models) — Python + Go chat/embeddings/list. Uses OpenAI API shape. 

Signed-off-by: Eric Curtin <[email protected]>
Co-authored-by: Jin Hai <[email protected]>
2026-09-03 18:13:37 +08:00
68cdb795f5 Fix OAuth redirect URI examples (#15683)
Fix OAuth callback URL examples in docs — now use /api/v1/auth/oauth/<channel>/callback (was stale /v1/user/oauth/callback).

Co-authored-by: 谢金城 <[email protected]>
Co-authored-by: Jin Hai <[email protected]>
2026-09-03 15:20:42 +08:00
jay77721 de99c7596d feat(ingestor): raise default max_concurrent_workers from 1 to 2 (#19133) 2026-09-02 15:24:04 +08:00
Haruko386 0d903bcccb refactor: add context_length for list_models and refactor content_length (#19075) 2026-09-01 14:49:17 +08:00
chyroc d30c12f0e2 feat(models): add 13 Volcengine Ark chat models (#18973) 2026-08-28 19:01:58 +08:00
Lynn 79b862d61c Fix: remove deprecated qwen tts model (#18977) 2026-08-28 18:26:13 +08:00
Lynn f356133fd2 Fix: remove deprecated mimo-v2-flash (#18854) 2026-08-27 15:17:34 +08:00
崔涣 3a1c98cb51 feat: add Synthorai model provider (#18830)
### Summary

Adds Synthorai as a model provider.
2026-08-27 14:14:19 +08:00
Lynn 63426325c2 Fix: MinerU model (#18767)
### Summary

Fix model_types in MinerU.net, and add default model for MinerU.
2026-08-26 12:43:17 +08:00
MarMar Labs 407ec2c866 docs(sandbox): describe how the container pool is actually sized (#18625)
Fix sandbox spec documentation mismatch. pool_size is a deployment-scoped env var (read-only), not a writable runtime setting. Removed from writable examples, updated spec to match actual provider schema, and fixed stale test assertions.
2026-08-26 10:25:28 +08:00
Lynn 45a47d9d45 Fix(go): PaddleOCR -> PaddleOCR.local, PaddleOCR.net -> PaddleOCR (#18747) 2026-08-25 20:02:01 +08:00
Sbaaoui Idriss 8bb5bf057f Chore: add missing deepseek model (#18678) 2026-08-24 20:05:36 +08:00
Jin Hai 23a071157d Revert "port smart-reasoning agentic RAG to eino ADK" (#18670)
Reverts infiniflow/ragflow#18654
2026-08-24 12:03:11 +08:00