Commit Graph

2263 Commits

Author SHA1 Message Date
euvre
f45f03a016 Add Go service/handler tests for API contract parity (#16905) 2026-07-20 20:02:41 +08:00
euvre
33765c1a64 Fix: add missing model provider icons (#17122) 2026-07-20 19:30:26 +08:00
euvre
bfd5e842ff style(web): unify model provider parameter labels to uppercase across locales (#17120) 2026-07-20 19:26:48 +08:00
euvre
8c18c4402a fix(web): make raw memory type non-removable in multi-select (#17119) 2026-07-20 19:20:26 +08:00
euvre
cf95d9ac0d fix(web): avoid flashing empty state when returning to agent list (#17118) 2026-07-20 19:14:49 +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
bc8bb9c51a fix(web): capitalize URL and drop exclamation marks in base URL locale strings (#17113) 2026-07-20 17:31:41 +08:00
euvre
0e3a579fec fix(web): capitalize URL and drop exclamation mark in base URL locale strings (#17110) 2026-07-20 17:18:19 +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
euvre
67a2310ea4 fix: prevent share pages from overriding the user's theme preference (#17098) 2026-07-20 15:46:47 +08:00
euvre
94708f8305 Fix: regenerate chat message does not truncate history (#17087) 2026-07-20 14:30:15 +08:00
euvre
27b6cd1a65 fix(web): unify required asterisk color in instance name section (#17082) 2026-07-20 14:20:38 +08:00
chanx
2e396629e3 Fix: model provider save button label and light mode input background (#17081)
### Summary

Fix: model provider save button label and light mode input background

Co-authored-by: Wang Qi <wangq8@outlook.com>
2026-07-20 13:41:46 +08:00
iwasaki
679d0d2ad2 i18n: complete Japanese translation for ja.ts (#17042)
## What

The Japanese locale (`web/src/locales/ja.ts`) was missing translations
for **1703 of 2686 keys (~63%)**. Because i18next's `fallbackLng`
silently falls back to English for any missing key, most of the UI
stayed in English even after selecting 日本語 — e.g. the Settings > Model
Providers page, the Agent/Flow builder, dataset configuration panels,
and more.

This PR fills in all 1703 missing keys with Japanese translations.
2026-07-20 10:37:38 +08:00
S
962fe9ff57 Fix: right-anchored split in web parseModelValue / parseModelUuid (#16737)
Follow-up to #16468.

PR #16468 fixed the Python
(`api/db/joint_services/tenant_model_service.py
split_model_name`) and Go (`internal/service/model_service.go
parseModelName`)
parsers to right-anchor the '@'-split on the composite
"model_name@instance@provider" key, but the matching helper in the
front-end
(`web/src/utils/llm-util.ts parseModelValue`) was missed.

parseModelValue used `split('@')` (anchored on the first '@'), which
silently
mangles composite keys whose model_name itself contains '@' (e.g. LM
Studio
embedding IDs like `text-embedding-nomic-embed-text-v1.5@q8_0`):

  text-embedding-nomic-embed-text-v1.5@q8_0@lmstudio@LM-Studio

became

  model_name:     text-embedding-nomic-embed-text-v1.5
  model_instance: q8_0@lmstudio
  model_provider: LM-Studio

`PATCH /api/v1/models/default` then sent those to the server, which
returned
HTTP 200 with body `{"code": 102, "message": "Instance 'q8_0@lmstudio'
not
found for provider 'LM-Studio'"}`. The UI swallowed the body-level error
code, so the failure was silent: no toast, the Embedding field stayed
empty.

This change makes parseModelValue do a right-anchored split that mirrors
the
Python `split_model_name` `rsplit('@', 2)` exactly:

  - 3-part form: model_name@instance@provider -> same three fields.
- 2-part form: model_name@provider -> model_instance defaults to
"default"
    (matching Python).
- 4+-part form (embedded '@' in model name): last two fields are
anchored
as instance and provider, everything to the left is the bare model name.

`parseModelUuid` is updated to the same right-anchored split so the
factoryId portion of `model_name@factory_id[#instance]` keeps the last
'@'
as the separator even when the model name itself contains '@'.

Adds jest cases under `web/src/utils/tests/llm-util.test.ts` (12 total)
covering the plain 3-part, 2-part, 4-part, multi-'@' name,
buildModelValue
round-trip and parseModelUuid variants.

Note for reviewers: the front-end is bundled into the published docker
image, so a release containing this fix will need `docker compose build
--no-cache ragflow-cpu` (or equivalent) for it to be visible to end
users.

Refs #16468, #16467
2026-07-20 09:31:02 +08:00
euvre
7ec2e9171b fix(web): add missing provider homepage links in Available models panel (#17040) 2026-07-17 17:36:15 +08:00
Wang Qi
bee524892d Doc: fix doc (#17033) 2026-07-17 15:08:09 +08:00
chanx
c5cf9b473d fix(model-provider): replace per-card auto-save with batch Save-all (#17025) 2026-07-17 14:26:49 +08:00
balibabu
677960716e Feat: Enable the wiki's Markdown editor to navigate to a new Markdown file when a link is clicked. (#17019) 2026-07-17 11:22:18 +08:00
balibabu
548f296ead Feat: Visualize session graph data using ArtifactForceGraph. (#16977)
### Summary

Feat: Visualize session graph data using ArtifactForceGraph.
2026-07-16 20:54:58 +08:00
maybehokori
f3a2fb7a10 fix: update somark.tech to somark.cn/somark.ai with purchase URLs (#16892)
## Summary

Update all `somark.tech` references to `somark.cn` (default for China) /
`somark.ai` (for overseas including Taiwan, China; Hong Kong, China;
Macau, China). Users fill in `base_url` manually — default is
`somark.cn`.

### Changes

| File | Change |
|------|--------|
| `constants.py` | Default → `somark.cn` |
| `somark_parser.py` | SAAS_BASE_URL + fallback → `somark.cn` |
| `ocr_model.py` | Default → `somark.cn` |
| `pdf_parser_common.go` | Go default → `somark.cn` |
| `llm.ts` | API key URL → `somark.cn` |
| `en.ts` | Base URL descriptions + purchase URLs |
| `zh.ts` | Base URL descriptions + purchase URLs |

### Purchase URLs
- China: `https://somark.cn/workbench/purchase`
- Overseas: `https://somark.ai/studio/purchase`

---------

Co-authored-by: justinychuang <huangyicheng@soulcode.cn>
Co-authored-by: Jin Hai <haijin.chn@gmail.com>
2026-07-16 19:18:05 +08:00
Jack
fd5487e064 feat: add /api/v1/language endpoint for Go/Python runtime detection (#16952)
Both backends serve GET /api/v1/language. Frontend calls it once and
caches. By this way, front end can know the backend is go or python and
thus can determine which part of logic to load.

---------

Co-authored-by: Claude <noreply@anthropic.com>
2026-07-16 15:13:43 +08:00
Jakob
d55de09b7d Updated RAGcon model provider (go) (#16950)
### Summary
We have updated our model driver to work with go.
It is based on OpenAI-API-Compatible model provider.

Draft
#15519

Our old model provider
#13425
2026-07-15 20:59:23 +08:00
zhifu gao
06e36d24f4 feat(stt): add FunASR / SenseVoice provider (#16473)
### Summary

Adds FunASR as a self-hosted speech-to-text provider through its
OpenAI-compatible `/v1/audio/transcriptions` endpoint.

This is a focused replacement for #15526 by @Rene0422 and relates to
#15448. The unrelated Markdown parser changes from the previous branch
are intentionally removed so this PR contains only the FunASR provider
integration.

- register FunASR as a `SPEECH2TEXT` factory;
- add `FunASRSeq2txt` with `sensevoice` and `http://localhost:8000/v1`
defaults, an optional API key, URL normalization, and inherited
transcription handling;
- wire FunASR into the current local-provider schema with a prefilled
local URL and official documentation link;
- discover the server's `/v1/models` dynamically and expose every
returned model as speech-to-text in the model picker;
- use RAGFlow's existing default provider icon fallback instead of
referencing a missing `funasr` asset;
- list FunASR in the supported-provider documentation;
- add focused backend and frontend regression tests.

### Validation

- focused backend pytest suite -> `7 passed`
- real CPU `funasr-server` + RAGFlow provider smoke test -> discovered
`fun-asr-nano`, `sensevoice`, and `paraformer`; transcribed a real WAV
as `我现在在录一段测试音频` (`10` tokens, `0.504s`)
- `ruff check` and `ruff format --check` on the changed Python files
- `python3 -m py_compile` on the provider and its test
- JSON parse and a semantic assertion for exactly one enabled FunASR
`SPEECH2TEXT` factory
- focused frontend Jest test -> `2 passed`
- ESLint and Prettier on all changed TypeScript files
- `npm run build` -> production build succeeded (`14,181` modules
transformed)
- `git diff --check`

### Deployment

Run FunASR separately and point the RAGFlow provider at it:

```bash
pip install funasr
funasr-server --device cuda --model sensevoice
```

The API key remains optional because the stock local server does not
require authentication. A key can still be supplied when the endpoint is
protected by a gateway.

---------

Signed-off-by: LauraGPT <LauraGPT@users.noreply.github.com>
Co-authored-by: LauraGPT <LauraGPT@users.noreply.github.com>
2026-07-15 19:02:05 +08:00
Jack
3d65e8d124 Revert frontend changes from PR #16873 (#16948) 2026-07-15 17:49:37 +08:00
balibabu
33e224cc4f Feat: Modify the Chinese translation file for the knowledge compilation template. (#16941)
### Summary

Feat: Modify the Chinese translation file for the knowledge compilation
template.
2026-07-15 15:34:57 +08:00
euvre
5184373a97 refactor: remove localStorage persistence for system model settings (#16934) 2026-07-15 14:58:32 +08:00
Jack
e543ff02c4 Feat: nats message processing refactor and support built in DSL (#16873) 2026-07-15 14:53:16 +08:00
chanx
30cc00bed2 feat(dataflow-result): scroll to and highlight newly created chunk (#16937) 2026-07-15 14:33:36 +08:00
Wang Qi
55d5879622 Fix file link-to-datasets to suport both replace and add (#817) (#16908) 2026-07-14 20:12:31 +08:00
chanx
376a9057a8 fix(setting-model): keep newly saved instance card expanded after name save (#16904) 2026-07-14 20:11:45 +08:00
euvre
22dd1ad401 fix: resolve provider name case mismatch and 301 redirect in Go mode (#16889) 2026-07-14 17:05:21 +08:00
chanx
e5bc644c18 fix(tree-select): avoid incorrect node selection when value is empty (#16898)
### Summary

fix(tree-select): avoid incorrect node selection when value is empty

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-07-14 15:53:54 +08:00
balibabu
ee142794ac Feat: Use G6 to display mind map data. (#16899)
### Summary

Feat: Use G6 to display mind map data.
2026-07-14 15:53:37 +08:00
balibabu
654fc8851a Feat: Add a three-level dropdown menu to the talk page message box. (#16886)
### Summary

Feat: Add a three-level dropdown menu to the talk page message box.
2026-07-14 13:45:31 +08:00
balibabu
4b7c5b338e Feat: Adjust the timeline style. (#16894)
### Summary

Feat: Adjust the timeline style.
2026-07-14 13:45:02 +08:00
balibabu
999eb533a9 Feat: Adjust the color and size of the graph based on the data. (#16868) 2026-07-14 10:20:31 +08:00
balibabu
45862bf95d Feat: If the interval between two outputs exceeds 600ms, a loading state is displayed at the end. (#16861)
### Summary

Feat: If the interval between two outputs exceeds 600ms, a loading state
is displayed at the end.
2026-07-13 18:02:29 +08:00
euvre
3bfad1f00e fix: correct model type mappings and improve system setting persistence (#16501) 2026-07-13 16:42:55 +08:00
chanx
547bc86141 Fixed an issue where cited webpages could not be opened during online searches. (#16840) 2026-07-13 15:25:57 +08:00
chanx
f21368057b fix(setting-model): fix instance display and api_key loss after auto-save (#16853) 2026-07-13 15:20:01 +08:00
balibabu
2b9569ff51 Feat: Added support for session graph and session essence templates. (#16851)
### Summary

Feat: Added support for session graph and session essence templates.
2026-07-13 14:48:02 +08:00
Zhichang Yu
ed27b5f9f8 uv tool install lefthook (#16842) 2026-07-13 13:01:33 +08:00
Lynn
b0cac0ac9d Fix: Align part of Go provider APIs with Python APIs (#16823) 2026-07-13 11:20:02 +08:00
buua436
d291e4641d fix: improve pipeline compilation, template updates, and document resets (#16815)
### What problem does this PR solve?

- Clear stale pipeline IDs and generated data when updating documents
without `pipeline_id`.
- Support tree compilation results in pipeline workflows.
- Update compilation templates in place while preserving existing
template IDs.
- Improve duplicate-template validation messages.

### Type of change

- [x] Bug Fix (non-breaking change which fixes an issue)
- [x] New Feature (non-breaking change which adds functionality)

Co-authored-by: Jin Hai <haijin.chn@gmail.com>
2026-07-10 21:17:19 +08:00
chanx
ea9b3789ce fix(prompt-editor): prevent premature variable path merge during typing (#16811)
### Summary

fix(prompt-editor): prevent premature variable path merge during typing

---------

Co-authored-by: Jin Hai <haijin.chn@gmail.com>
2026-07-10 20:57:59 +08:00
balibabu
d317742975 Feat: Rewrite wiki template with reui (#16797) 2026-07-10 15:44:04 +08:00
Jack
7db39822db Feature: user select pipeline support (#16788)
### Summary

Feature: user select pipeline support
2026-07-10 14:30:28 +08:00