Commit Graph

843 Commits

Author SHA1 Message Date
balibabu
4f058667ff Feat: Remove "page index" and "use kg" from chat and retrieval form. (#17627) 2026-07-31 16:40:53 +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
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
chanx
e66cfe1372 fix(dataset): apply horizontal layout to auto-keywords and auto-questions form fields (#17608) 2026-07-31 13:20:40 +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
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
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
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
balibabu
ee388b0fa5 Feat: Optimize dataset-level wiki generation log display. (#17492) 2026-07-29 10:56:35 +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
buua436
b7ddf45774 fix: stabilize wiki planning and artifact graph rendering (#17473) 2026-07-28 17:08:40 +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
balibabu
1cce9b64f1 Feat: Search for knowledge-base-level graph nodes. (#17444) 2026-07-27 21:03:30 +08:00
Zhichang Yu
61d58f598e Introduced oxfmt (#17431)
Introduced oxfmt
2026-07-27 17:38:52 +08:00
chanx
b5633eb6f0 fix: update delimiter form field layout for better alignment (#17432) 2026-07-27 17:34:13 +08:00
buua436
6e1e540f98 fix: persist pipeline tree graph rows (#17400) 2026-07-27 16:40:29 +08:00
S
c48eb70e67 Improve "Delimiter for text" UX: clearer tooltip + live parsed-delimiter preview (#17385)
## Summary

Improve the UX of the **"Delimiter for text"** field on the dataset
configuration page. The field is a single string with a backtick-based
mini-syntax, but both the tooltip and the surrounding UI failed to
surface what delimiters the backend would actually derive from a given
value — leaving users to discover by trial-and-error that the same
string produces different splits depending on file type (see #7436,
#4704, #9680).
2026-07-27 13:21:54 +08:00
chanx
069a2aa76d fix: disable select all option in MemoriesFormField component (#17363) 2026-07-27 09:53:37 +08:00
Eugene
6b11f62391 feat: add AIMLAPI (aimlapi.com) as a model provider (#17311)
### Summary

This PR adds **aimlapi.com** as a model provider, so a RAGFlow user can
enter one API key in the model settings and use AIMLAPI's models across
the app. AIMLAPI ([aimlapi.com](https://aimlapi.com)) is an
OpenAI-compatible aggregator that serves 700+ models (LLM, embedding,
vision, TTS, ASR) from many providers behind a single API.

The change mirrors the repo's existing "add provider" pattern (e.g.
FuturMix / OpenRouter): provider logic lives in the same files those
providers use, and shared / UI files get only registration entries.

**Backend**
- `conf/llm_factories.json` — the `aimlapi.com` factory entry.
- `rag/llm/__init__.py`, `rag/llm/{chat,embedding,cv}_model.py` —
LiteLLM adapters (chat, embedding, image2text) with a production base
URL, overridable via `AIMLAPI_API_URL`.
- `rag/llm/model_meta.py` — an `AIMLAPI` model-meta so the provider
lists its full `/v1/models` catalog dynamically (classified by the
endpoint `type`), the same way OpenRouter does.
- `api/apps/restful_apis/aimlapi_api.py` — an optional "Get API key"
flow using AIMLAPI's agent-authorization (OAuth 2.0 Device Authorization
Grant, RFC 8628). The device code is kept server-side (Redis); only the
issued key reaches the browser.

**Frontend (`web/`)**
- Provider registration (constant, icon allowlist, brand logo), the
model picker (`LIST_MODEL_PROVIDERS` + a `buildLocalConfig` entry), and
the "Get API key" button in the provider dialog. Locales added to `en`
and `zh`.

**Configuration** — production defaults are compiled in; endpoints and
the partner id are overridable through `AIMLAPI_*` environment
variables, so the same build works across environments.

**Testing** — the `web` build passes; chat, embedding and dynamic model
listing were smoke-tested against the live API.
2026-07-24 22:50:14 +08:00
buua436
2ba7ccecaf fix: stabilize knowledge compilation navigation updates (#17345) 2026-07-24 17:48:27 +08:00
euvre
91d9bf7fc4 fix: strip YAML frontmatter and defer API reference markdown rendering (#17272) 2026-07-24 11:37:10 +08:00
chanx
3dc298dbf5 fix(web): prevent multi-select popover from closing on first selection (#17310) 2026-07-24 09:29:40 +08:00
Jack
d12fd3b79d feat: parser pages range and parse type validation for dataset/document (#17293)
## Summary

Adds page-range parsing support to the Go-native pipeline path and
introduces strict `parse_type` validation for both dataset and document
update endpoints.

## What changed

### Pages range parsing
- **`internal/utility/pdf_pages.go`** — `NormalizePDFPages`: normalizes
raw page ranges (list of `[from,to]` 1-indexed inclusive ranges) into
sorted, merged, deduplicated `[][]int`. Invalid ranges are dropped.
- **`internal/ingestion/pipeline/pdf_pages.go`** —
`NormalizeParserConfigPages`: walks any parser_config map and normalizes
`"pages"` values under every component → filetype setup, so the
persisted config always carries clean, merged ranges.
- **`internal/deepdoc/parser/pdf/parser.go`** — integrates
`resolvePagesToProcess` to filter parsed PDF pages by the configured
ranges.
- Pipeline integration (parser pages):
`internal/parser/parser/pdf_parser_common.go`, `chunk_process.go`, plus
associated e2e and unit tests.

### Parse type validation (shared logic)
- **`internal/service/parser_mode.go`** (new) — `ValidateParseTypeMode`:
shared function that validates `parse_type` (1=BuiltIn/parser_id,
2=Pipeline/pipeline_id) and ensures the corresponding field is present.
Used by both dataset and document update endpoints.
- **`internal/service/dataset/crud.go`** / `update.go` — replaces inline
`isPipelineMode`/`isBuiltinMode` computation with the shared
`service.ValidateParseTypeMode`.
- **`internal/service/document/document_dataset_update.go`** — adds
strict `parse_type` validation in `validateDatasetDocumentUpdate`,
simplifies the reparse logic to a two-way switch (isBuiltin/isPipeline)
now that parse_type is always valid.
- **`internal/service/document/document.go`** — adds `ParseType` field
to `UpdateDatasetDocumentRequest`.
- **`internal/service/document/document_dataset_update.go`** —
`updateDocumentParserConfig` fallback path when DSL loading fails.
- **`internal/service/parser_mode_test.go`** (new) — test coverage for
nil, invalid, and missing-field scenarios.

### Frontend
- **`web/src/interfaces/request/document.ts`** — adds `parseType` to
`IChangeParserRequestBody`.
- **`web/src/hooks/use-document-request.ts`** —
`useSetDocumentPipelineParser` sends `parse_type` in the PATCH payload.
- **`web/src/pages/dataset/dataset/use-change-document-parser.ts`** —
Go/Python branching for the document parser config dialog.
-
**`web/src/components/document-pipeline-dialog/use-document-pipeline-form.ts`**
— `buildSubmitData` returns `parseType` (bugfix: was dropped from the
return value).

### Test changes
- **Removed**: 2 tests that verified the old "mutually exclusive" error
(replaced by `ValidateParseTypeMode` coverage).
- **Modified**: 6 tests across document and dataset packages to include
`ParseType` in request structs.
- **Added**: new e2e tests for pages parsing (`pages_e2e_test.go`,
`pdf_parser_pages_e2e_test.go`) and unit tests for `NormalizePDFPages`,
`NormalizeParserConfigPages`, `resolvePagesToProcess`.

## Backward compatibility
- The `parse_type` field is **required** when `parser_id` or
`pipeline_id` is sent. This changes the contract for both dataset and
document PATCH endpoints, but aligns the Go backend with the existing
frontend behavior (the frontend already sends `parse_type`). Callers
that omit `parse_type` when updating parser/pipeline selections will
receive a clear error message.
- Existing callers that only update fields like `name`, `enabled`, or
`meta_fields` are unaffected.
- Test updates ensure all known call sites are compliant.
2026-07-23 19:57:27 +08:00
buua436
d4a8c91f3c refa: improve tree clustering (#17285) 2026-07-23 17:49:13 +08:00
euvre
418d3c8cef fix: fetch all knowledge bases via pagination in link-to-dataset dialog (#17170) 2026-07-23 16:48:05 +08:00
balibabu
c48a59db96 Feat: Add page rank to ParserForm (#17267) 2026-07-23 14:23:07 +08:00
balibabu
b3d394954d Feat: Support pipeline-related configuration at the document level. (#17212)
### Summary

Feat: Support pipeline-related configuration at the document level.
2026-07-22 22:24:50 +08:00
euvre
d757303fa4 fix(web): show completed label for think block after streaming ends (#17149) 2026-07-22 19:30:09 +08:00
euvre
5bc28d4d15 fix: exclude TTS models from agent component model selector (#17231) 2026-07-22 19:27:12 +08:00
euvre
cfaef879fe fix: MinerU.Net and PaddleOCR.Net missing icons (#17229) 2026-07-22 19:24:23 +08:00
euvre
2f7dc60337 fix: restore download button when file type is selected in agent message (#17184) 2026-07-22 19:21:17 +08:00
euvre
dabe426c36 fix: render documentation URLs as hyperlinks in model tooltips (#17224) 2026-07-22 16:03:03 +08:00
euvre
a81b5057bb fix(web): show builtin chunk methods in file pipeline dialog under Go backend (#17169) 2026-07-22 15:14:02 +08:00
euvre
ade2f3a5ab fix(web): use outline-none instead of outline-0 on focusable controls (#17165) 2026-07-22 14:57:23 +08:00
balibabu
20b760f266 Feat: Highlight wiki force graph. (#17160) 2026-07-21 16:48:52 +08:00
balibabu
b288888050 Feat: Add a "None" option for reasoning intensity in the chat message box. (#17006)
### Summary

Feat: Add a "None" option for reasoning intensity in the chat message
box.
2026-07-21 11:50:34 +08:00
euvre
ee8aa03fa0 fix(web): regenerate in multi-model chat uses the card's own state and model (#17126) 2026-07-21 10:40:59 +08:00
euvre
33765c1a64 Fix: add missing model provider icons (#17122) 2026-07-20 19:30:26 +08:00
chanx
b3f731d4de Fix: model selection format compat and provider api_key wrapping (#17112) 2026-07-20 19:12:59 +08:00
balibabu
392b249404 Feat: Render the skills list using a tree view. (#17115)
### Summary
Feat: Render the skills list using a tree view.
2026-07-20 19:00:08 +08:00
euvre
3fa890294a fix: selected destination appears white in file move dialog in dark mode (#17085) 2026-07-20 16:47:48 +08:00
balibabu
9d850e782b Feat: Configure the relevant pipeline parameters on the dataset configuration page. (#17100) 2026-07-20 16:05:03 +08:00