Commit Graph

2328 Commits

Author SHA1 Message Date
balibabu
ec7a9797cb Fix: The wiki's claim card does not display the title. (#17626) 2026-07-31 16:28:55 +08:00
balibabu
f2a45aab14 Fix: Blueprints cannot be displayed when selecting wiki. (#17618) 2026-07-31 15:05:47 +08:00
chanx
efeb4ab870 fix(dataset): echo back selected datasets not in the first page (#17616) 2026-07-31 14:41:54 +08:00
balibabu
51fe08712e Fix: The index textarea in the wiki template can be enlarged. (#17613) 2026-07-31 14:11:26 +08:00
balibabu
b8117812e4 Fix: Cross-language dropdown menu options translation error. (#17615) 2026-07-31 14:11:04 +08:00
balibabu
67f027c306 Feat: Add a link to create a template to the operator parameter of the compiler operator. (#17563) 2026-07-31 13:54:59 +08:00
buua436
44e13d1cb6 feat: add LLM-guided semantic rechunking for knowledge compilation (#17546) 2026-07-31 13:33:30 +08:00
chanx
e66cfe1372 fix(dataset): apply horizontal layout to auto-keywords and auto-questions form fields (#17608) 2026-07-31 13:20:40 +08:00
chanx
a68db44a6a fix(dataset): update error message for document deletion to use correct translation key (#17603) 2026-07-31 13:20:25 +08:00
chanx
599ada8927 fix(i18n): update thinking status text and add thinking completed feedback (#17602) 2026-07-31 13:20:06 +08:00
Jack
8546eb62bf Feat(ingestion): add canvas pipeline debug (dry-run) mode with View result log (#17538)
## Summary
Adds a side-effect-free DataFlow canvas **debug (dry-run) mode** plus a
**debug run log with a "View result" panel**, so a canvas can be
executed synchronously and inspected end-to-end (per-component progress
and parsed chunks) without persisting anything.

### Dry-run execution (inline parsed chunks)
- `task/debug.go`: `NewDebugTaskContext` builds an in-memory
`TaskContext` with **`KB.ID == ""` — the single debug signal used across
the ingestion pipeline**. A canvas debug run has no knowledgebase, and
production ingestion always supplies one, so `kb_id == ""` occurs ONLY
in debug mode. Components gate their own side effects on this signal
without any dedicated debug vocabulary (the former `CANVAS_DEBUG_DOC_ID`
marker constant is removed).
- `task/pipeline_executor.go`: `validateTaskContext` no longer requires
a KB when `KB.ID == ""` (debug); debug runs return `collectDebugOutput`
(chunks) instead of a no-op; uploaded bytes are delivered as
`inputs['binary']` for doc-less runs; `injectDebugPageCap` caps the
parser to the first pages for a fast preview via the production
`override_params` channel (Parser cpnID + family).
- `component/tokenizer.go`: `shouldHaveEmbedding` skips embedding when
`kb_id == ""` — the embedder is configured on the knowledgebase, so a
debug run has nothing to resolve against and stays side-effect free.
- `chunker/register.go`: chunk images are uploaded to MinIO only when a
KB is present (persist run). **In debug mode the raw image bytes are
intentionally dropped (`delete(ck, "image")`)** — the debug preview does
not render chunk images, and dropping the bytes keeps them out of memory
and out of the Redis-stored debug log. This is a deliberate trade-off,
not an oversight.
- `component/file.go`: pass through in-memory binary bytes, skipping
`doc_id` -> storage resolution.
- `handler/agent.go` + `agent_webhook.go`: detect `dataflow_canvas` and
run a sync debug returning chunks inline on the existing
chat/completions endpoint; reject DataFlow canvases from webhooks (fixes
the previously dead `== "DataFlow"` check; mirrors Python
`agent_api.py`).
- `parser_dispatch.go`: export `ParserFileFamily` for the executor's
page-cap injection.

### Debug run log + "View result"
Mirrors Python's debug-log contract so the front-end can replay each
component's progress and parsed output:
- `task/debug_log_sink.go`: a `DebugLogSink` records every component's
lifecycle into a `[{component_id, trace}]` array (each trace entry
carries `message`, `progress`, `timestamp`, `elapsed_time`). `Flush`
appends a terminal `END` marker whose first trace message is non-empty
so the front-end detects completion. On failure the END marker is
prefixed `[ERROR]` yet still carries the run, so the failure timeline
renders instead of being stuck empty. Timestamps and `elapsed_time` are
in seconds (matching the rest of the app).
- `task/debug_result_dsl.go`: `BuildDebugResultDSL` builds the `dsl` the
END marker carries — the Go analogue of Python's `Graph.__str__` +
END-marker `dsl` in `rag/flow/pipeline.py`. It combines the static DSL
structure (component_name / downstream / params / graph.nodes) with the
run output map (`output["state"][<id>]`) to emit, per component,
`obj.params.outputs[<format>].value` (chunks / text / json / html /
markdown) — the exact keys the front-end `dataflow-result` page reads to
render each step's parsed chunks. Raw embedding vectors (including the
dimension-scoped `q_<dim>_vec` keys) are stripped so the stored log
stays Python-scale.
- `task/pipeline_executor.go`: after the run, attach the built `dsl` to
the END marker via the `ResultSink` capability.
- `handler/agent.go`: `runCanvasPipelineDebug` generates a stable
`message_id` up-front and always flushes the log (success or failure);
`respondWithDebugResult` returns `message_id` in **both** the success
and the error envelope so the front-end can poll the log. The debug-log
endpoint `GET /agents/:id/logs/:message_id` serves the array.
- `web/src/pages/agent/hooks/use-run-dataflow.ts`: on a run failure,
also surface `message_id` via `setMessageId` so the log sheet renders
the failure timeline (the `[ERROR]` END marker is already written).
Guarded by `if (msgId)`, so it is a safe no-op when the back-end does
not return an id.

## Behavioral notes
- Debug parses only the first pages (`debugPageCapPages`) for a fast
preview; an explicit `pages` cap already present in the ParserConfig is
respected.
- Debug mode does not keep chunk images (see above) and does not compute
embeddings — it exercises parse + chunk only.

## Test plan
- Go: `debug_test.go`, `debug_log_sink_test.go` (trace pairing, END
marker, `[ERROR]` prefix, fractional-second timestamp/elapsed_time, size
caps, and a real-pipeline test asserting the END-marker `dsl` carries
non-empty per-component `params.outputs` with chunks),
`debug_result_dsl_test.go` (flat and real nested `output["state"]`
shapes, vector stripping, format priority),
`debug_pages_integration_test.go`, `pipeline_executor_persist_test.go`,
`handler/agent_pipeline_debug_test.go`, `handler/agent_logs_test.go`
(incl. `TestRunCanvasPipelineDebug_ErrorStillExposesMessageID` /
`TestRespondWithDebugResult_ErrorCarriesMessageID` locking `message_id`
on failure), plus updates to `agent_test.go` / `agent_webhook_test.go` /
`chunker/image_upload_test.go` / `tokenizer*.go`.
- `go build ./...` and `./build.sh --test` for affected packages.

🤖 Generated with [CodeBuddy Code](https://cnb.cool/codebuddy)

---------

Co-authored-by: CodeBuddy Code <noreply@tencent.com>
2026-07-31 13:10:08 +08:00
chanx
c6f946a562 refactor(setting-model): migrate SoMark to generic provider card withmodel-level extra fields (#17582) 2026-07-31 11:35:35 +08:00
Wang Qi
2c6da4113d Fix: multiple model chat pass-in session_id, and do not save session. (#17581) 2026-07-31 11:25:29 +08:00
chanx
cd964dd700 Fix: delete base url default value in FunASR (#17596) 2026-07-31 11:24:42 +08:00
balibabu
569a29500f Fix: The save interface is continuously called without any operation being performed on the agent page. (#17576) 2026-07-31 11:23:12 +08:00
euvre
9519ad7e08 fix: propagate publish release flag through Go agent endpoints (#17347) 2026-07-30 19:27:44 +08:00
balibabu
5ac8d92d2e Feat: Add an update button to the graph page of the dataset. (#17571)
### Summary

Feat: Add an update button to the graph page of the dataset.
2026-07-30 18:40:29 +08:00
chanx
6fb6b9e06b fix(setting-model): support field-level autoComplete to suppress browser autofill (#17559) 2026-07-30 16:50:31 +08:00
Wang Qi
5d76b0b96c Fix multiple model chat, the content overwrite the current chat session (#17566) 2026-07-30 16:50:13 +08:00
chanx
493f605889 fix(i18n): add missing translation keys for model provider form fields (#17551) 2026-07-30 14:06:37 +08:00
chanx
03a93eabf7 Feat: batch verify models in provider instance card (#17552) 2026-07-30 13:58:16 +08:00
chanx
cb908d1979 fix: restore provider-specific fields on form echo via echoTransform (#17550) 2026-07-30 11:22:06 +08:00
balibabu
be6263d522 Fix: The compiler operator icon is not displaying on the pipeline log page. (#17545) 2026-07-30 10:39:01 +08:00
chanx
3da7fe18f0 Fix: audio button can send message (#17541) 2026-07-30 09:38:25 +08:00
EthanZhang
33e581a8b3 feat(agent): add Querit search tool (#17548) 2026-07-30 09:36:16 +08:00
balibabu
ae312090c4 Feat: Click the icon in the top-right corner to delete the note node. (#17533) 2026-07-29 19:06:35 +08:00
Wang Qi
0583f8c79d Fix dataset selector to continue scoll if still have data (#17534)
1. controll scoll paging by total
2. show dataset but won't allow them to choose.
2026-07-29 18:48:47 +08:00
balibabu
2a4e77c5ae Feat: Store the dialogue reasoning level on the client side. (#17530)
### Summary

Feat: Store the dialogue reasoning level on the client side.
2026-07-29 18:40:12 +08:00
chanx
26f0dc234e fix: add tooltip to log button in AssistantGroupButton component (#17532) 2026-07-29 17:18:01 +08:00
chanx
f8e01d558e fix(search): adapt input shape and button position to content line count (#17529) 2026-07-29 17:15:19 +08:00
balibabu
e5a7bee9db Fix: Switching templates results in a few extra data entries in the entity specification. (#17514) 2026-07-29 16:25:46 +08:00
balibabu
9c8f4f5fe3 Fix: On the multi-model comparison chat page, if there is more than one window, each window can be deleted. (#17523) 2026-07-29 16:21:53 +08:00
chanx
b0bbf9fa7f fix: support provider-specific verify payload for per-model verify (#17522) 2026-07-29 16:20:31 +08:00
balibabu
1140db3b8c Fix: The multi-model comparison page cannot output messages. (#17507) 2026-07-29 15:16:40 +08:00
balibabu
ee388b0fa5 Feat: Optimize dataset-level wiki generation log display. (#17492) 2026-07-29 10:56:35 +08:00
euvre
e5bb2b60c0 Fix: search input controls styling and restore mind map modal overlay (#17436) 2026-07-29 09:36:07 +08:00
Yingfeng
9460e6ba03 Fix parsing log display of infinity (#17479) 2026-07-28 23:04:56 +08:00
euvre
996c5156e5 Fix: go back to previous page when last card on the last page is deleted (#17409) 2026-07-28 19:30:28 +08:00
euvre
679bce8f8d fix: reset selected documents on new search in search page (#17454) 2026-07-28 19:29:51 +08:00
yiming wang
dcadd8d837 feat: add Tenki sandbox provider (#17305)
### Summary

Adds a `tenki` sandbox provider that runs each agent code execution in a
disposable Tenki (https://tenki.cloud) microVM (create → exec → destroy,
no volumes or snapshots).
Registration mirrors PR #15039, configure `api_key` and `project_id` in
Admin > Sandbox Settings.

Both runtimes are covered:
- Python: `agent/sandbox/providers/tenki.py` (structured results +
artifact collection).
- Go: `internal/agent/sandbox/tenki.go`, mirroring the e2b provider and
wired into the provider manager.

`tenki-sandbox` is an optional dependency (it requires `protobuf>=6.31`,
which differs from RAGFlow's pinned gRPC stack), lazily imported with a
clear error when missing; installation is documented in the sandbox
quickstart.

Unit tests cover execution, structured results, artifacts
(symlink/size/extension limits), non-zero exit, timeout, error mapping,
and idempotent destroy.

---------

Co-authored-by: yiming.wang <yiming.wang@luxor.com>
2026-07-28 19:24:39 +08:00
euvre
73860170ae fix(admin): use POST for admin logout API (#17482) 2026-07-28 19:22:57 +08:00
Robert Keus
7e1ab9741b feat: add GreenPT model provider (#17447)
## Summary

GreenPT is a European AI provider with an OpenAI-compatible API,
optimized infrastructure, and datacenters powered by 100% renewable
energy.

This adds native GreenPT support across RAGFlow’s Go-first provider
system and its Python compatibility layer:

- discovers the current catalog from `GET /v1/models`
- features `glm-5.2` and `kimi-k2.7-code` for chat and coding
- supports `green-embedding` through `/v1/embeddings`
- supports `green-rerank` through `/v1/rerank`
- supports `green-s` and `green-s-pro` speech-to-text through
`/v1/listen`
- adds provider configuration, UI icon, and supported-provider
documentation
2026-07-28 19:19:00 +08:00
balibabu
5274e1df4d Fix: The documentation for setting page slicing methods in the Go version of a dataset is not displayed. (#17478) 2026-07-28 19:14:02 +08:00
Jin Hai
7f21a7ba18 Go: add context, part14 (#17446)
Signed-off-by: Jin Hai <haijin.chn@gmail.com>
2026-07-28 19:05:59 +08:00
buua436
b7ddf45774 fix: stabilize wiki planning and artifact graph rendering (#17473) 2026-07-28 17:08:40 +08:00
Lynn
675c35a2de Fix: rm tenant llm call (#17476) 2026-07-28 15:54:44 +08:00
balibabu
fe38d5f246 Feat: Delete dataset level graph. (#17474)
### Summary

Feat: Delete dataset level graph.
2026-07-28 15:27:08 +08:00
balibabu
cc0fbd37ef Fix: Unable to navigate from the agent list page to the compilation editing page. (#17460) 2026-07-28 13:59:57 +08:00
chanx
326893811a fix(web): identify provider instances by id and skip clean cards on save (#17424) 2026-07-28 09:49:57 +08:00
Wang Qi
619b58faef Add {date} replacement to chat (#17430) 2026-07-28 09:49:17 +08:00