Commit Graph

8104 Commits

Author SHA1 Message Date
Zhichang Yu
f12c0ec08a feat(knowledge_compile): materialize wiki page graph (wiki_entity/wiki_relation) (#17976)
Re-materialize wiki page graph from merged wiki_page rows after each
batch merge. Adds ProjectWikiGraph/DropWikiGraph, full page_type/slug
identity, delete-then-insert, tests.
2026-08-07 17:47:59 +08:00
Jack
869da9c7ad test(token_chunker): drop unsupported chunk_token_size=0 case from delimiter-mode test (#17997) 2026-08-07 17:43:04 +08:00
Wang Qi
2fef38f955 Fix answer in think (#17998) 2026-08-07 17:30:14 +08:00
buua436
a805105352 fix: stream agent tts audio by sentence (#18000) 2026-08-07 17:13:25 +08:00
balibabu
ec09d4e3bd Feat: Search for timeline nodes. (#17996) 2026-08-07 17:06:19 +08:00
chanx
2eb1ef6c67 fix: preserve selected row IDs without filtering by current list (#17994) 2026-08-07 17:06:05 +08:00
alex-makang
8562623bef fix(rerank): set NvidiaRerank base_url for all models (#17988)
### What problem does this PR solve?

`NvidiaRerank.__init__` only assigned `self.base_url` inside two
model-specific
`if` branches:

```python
if self.model_name == "nvidia/nv-rerankqa-mistral-4b-v3":
    self.base_url = urljoin(base_url, "nv-rerankqa-mistral-4b-v3/reranking")
if self.model_name == "nvidia/rerank-qa-mistral-4b":
    self.base_url = urljoin(base_url, "reranking")
```

Any other NVIDIA rerank model therefore left the attribute unset, and
the first
`_compute_rank()` call died with `AttributeError: 'NvidiaRerank' object
has no
attribute 'base_url'`.

This is reachable in normal use: `conf/llm_factories.json` ships no
NVIDIA
rerank entries at all, so every NVIDIA rerank model has to be added by
hand,
and any name other than those two hardcoded strings crashes.

### Type of change

- [x] Bug Fix (non-breaking change which fixes an issue)

Co-authored-by: Alex Ma <alex_makang@hotmail.com>
2026-08-07 16:49:24 +08:00
Jack
1aa4e3c1f3 refactor(chunker): converge delimiter_mode to {delimiter, one}, drop token_size (#17979)
Converge `TokenChunker.delimiter_mode` from three values (`token_size`,
`delimiter`, `one`) to two (`delimiter`, `one`). The unified `delimiter`
mode now carries the old `token_size` semantics: when no active
(backtick) delimiter is present, text/JSON chunks are merged up to
`chunk_token_size`; when a backtick delimiter is present, the text is
split by it and not merged. `one` continues to be handled by the
separate `OneChunker`.
2026-08-07 16:11:42 +08:00
Lynn
4044d3bc5d Fix: handle unpaired <> in messages (#17983) 2026-08-07 16:10:30 +08:00
chanx
c7d78db9b4 fix(document-preview): handle namespace-prefixed xlsx in ExcelCsvPreviewer (#17955) 2026-08-07 16:10:04 +08:00
Wang Qi
993b41b7b1 Append attachments content to last message (#17993) 2026-08-07 16:04:19 +08:00
balibabu
3f78c156d4 Fix: Links to wiki content accessed via the version view are not clickable. (#17987) 2026-08-07 15:50:26 +08:00
balibabu
edcd806761 Fix: Hide the "Add Link" button in the Markdown editor. (#17992) 2026-08-07 15:50:17 +08:00
chanx
ad5d0e9db3 fix(model): simplify local LLM config and align model type values (#17986) 2026-08-07 15:49:37 +08:00
Jack
440fc937d0 fix(go): drop content-less chunks and set chunk_order_int unconditionally in Tokenizer (#17970) 2026-08-07 15:38:56 +08:00
buua436
42329f140d feat: add agent filter counts (#17984) 2026-08-07 15:29:07 +08:00
buua436
d63ad40c65 fix: reject duplicate chat parameter keys (#17977) 2026-08-07 15:28:30 +08:00
balibabu
4d1da18e84 Fix: The height of the source code mode in the wiki template's Markdown editor is too small. (#17982) 2026-08-07 14:55:30 +08:00
balibabu
e2e70cea92 Fix: Clicking the confirm button on the WikiCommitModal does not validate the form. (#17981) 2026-08-07 14:55:18 +08:00
chanx
048affd2ab fix(i18n): clarify selectAll label selects current page only (#17974) 2026-08-07 14:54:37 +08:00
Kevin Hu
a25ff22aca Refactor: check the evidences while formalize answer. (#17951)
### Summary

Check the evidences while formalize answer.
2026-08-07 14:51:54 +08:00
Lynn
045ba3970a Fix: verification message (#17978) 2026-08-07 14:44:23 +08:00
Wang Qi
550283c356 Fix generate graph error (#17966) 2026-08-07 14:29:01 +08:00
chanx
ed96379c47 fix(markdown): open non-PDF document references in internal viewer (#17971) 2026-08-07 14:23:40 +08:00
buua436
48b2d3b914 fix: preserve page index chapter chunk provenance (#17963) 2026-08-07 13:47:04 +08:00
Haruko386
615c7d8bcb feat[Go]: implement data source gmail and test prune (#17969)
### Summary

As title
2026-08-07 13:35:57 +08:00
balibabu
84b94d4b30 Fix: Remove leading and trailing whitespace from the pageIndex data returned by the backend. (#17967) 2026-08-07 13:32:09 +08:00
buua436
f77f2bb9ce fix: optimize timeline compilation template (#17972) 2026-08-07 13:31:33 +08:00
Yee
27c8b1a061 fix(nginx): use 127.0.0.1 in python conf to avoid ~1s IPv6 fallback latency (#17909)
## Problem

In the default deployment (`API_PROXY_SCHEME=python`), the nginx config
generated from `docker/nginx/ragflow.conf.python` uses:

```nginx
proxy_pass http://localhost:9381;  # admin
proxy_pass http://localhost:9380;  # api
```

Inside the RAGFlow container, `/etc/hosts` maps `localhost` to both
`127.0.0.1` and `::1`:

```
127.0.0.1   localhost
::1         localhost ip6-localhost ip6-loopback
```

But the backend services (`ragflow_server.py` on 9380, admin server on
9381) only listen on IPv4 (`127.0.0.1`). When nginx resolves `localhost`
to `::1`, the upstream connection fails and nginx falls back to the IPv4
address - each fallback adds ~1 second of latency.

Co-authored-by: Jin Hai <haijin.chn@gmail.com>
2026-08-07 11:32:43 +08:00
balibabu
b099c88c3f Fix: Deduplication of wiki entity types (#17965) 2026-08-07 11:29:05 +08:00
balibabu
5c8c4346a9 Fix: Start a new conversation; an additional conversation entry will appear once the chat ends. (#17964) 2026-08-07 11:28:50 +08:00
Jack
57cacaddf9 refactor[Go]: remove chunker dead code & fix stale/false descriptors (L1/L2/L3) (#17960) 2026-08-07 11:07:45 +08:00
Jack
e587c56460 refactor(go): clean up TokenChunker delimiter routing and children appliers (#17954) 2026-08-07 11:07:21 +08:00
Jack
16ac94cff5 fix(parser/chunk): dedupe CompileDelimiterPatternList active entries (#17939)
Restore the deduplication that was dropped when #17926 was merged.
`CompileDelimiterPatternList` now keeps a `seen` set and collapses
equivalent active entries (both backtick-inner and bare) into a single
alternation. This PR also removes the dead code that the re-review
surfaced.
2026-08-07 10:06:04 +08:00
Jack
cdef804555 fix(chunker): decide token merge on running sum, not re-tokenized join (#17948) 2026-08-07 09:57:01 +08:00
Jack
891d05baf9 refactor: extract TruncateRunes to internal/utility and fix integration build (#17938) (#17944) 2026-08-07 09:55:26 +08:00
chanx
1ef7910103 fix(memory): display embd_name with fallback to embd_id in form field (#17956) dev-20260807 2026-08-07 09:34:30 +08:00
Haruko386
f532f27f1f feat[Go]: complete the base for data Syncer (#17890)
### Summary

As title

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2026-08-06 20:09:46 +08:00
Yingfeng
1b8151a1f6 Refine agentic search (#17900) 2026-08-06 19:42:05 +08:00
chanx
973d9b6b26 fix(setting-model): saved instance api_key edits not triggering save (#17942) 2026-08-06 19:38:29 +08:00
Lynn
2e0b82be30 Fix: recognize data type in parse method table (#17946) 2026-08-06 19:37:57 +08:00
chanx
dac86b3aae feat: add html file type icon (#17925) dev-20260806-2 2026-08-06 17:30:44 +08:00
Jack
477469f94c Refactor(task): collapse duplicated debug-result helpers (#17937)
Collapses three duplicated/dead code smells in the canvas debug-result
path of `internal/ingestion/task` (remaining findings #2/#3/#4 from the
package CTO review):

- **#2 — vector-key stripping duplication.** `isVectorKey` (the full
stripper: fixed legacy keys `vector`/`embedding`/`feature`/`q_vec` plus
the `q_<dim>_vec` pattern) was re-implemented as a weaker inline copy in
the golden-compare tool (`tool/compare_pipeline_golden.go`) that only
matched `q_<dim>_vec` and let real vectors leak into the diff. Exported
as `IsVectorKey` and reused by the tool.
- **#3 — near-duplicate deep copy.** `deepCopy` and `deepCopyStrip` were
identical walkers differing only in vector stripping. Parameterized
`deepCopy(v any, stripVector bool) any` and deleted `deepCopyStrip`.
- **#4 — redundant switch.** `lookupComponentOutput` had two switch
cases with identical bodies (both the `map[string]map[string]any` and
`map[string]any` state shapes). Unified into a single `found`/`ok`
resolution; nested-state and flat-fallback semantics unchanged.
2026-08-06 17:21:55 +08:00
Wang Qi
23b20a098a Fix ragflow server hung after parsing a big file (#17936) 2026-08-06 17:01:53 +08:00
buua436
8379165c12 fix: record generated wiki page versions (#17931) 2026-08-06 16:49:50 +08:00
chanx
7d0d1ab642 fix(tree-select): allow collapsing parent nodes during search (#17934) 2026-08-06 16:23:56 +08:00
chanx
642515524d fix(agent): hide log sheet when closing chat sheet (#17927) 2026-08-06 16:22:44 +08:00
chanx
f72cb14e18 feat: add json file preview and icon (#17930) 2026-08-06 16:22:32 +08:00
chanx
5c6536a86c fix(number-input): improve value handling for out-of-range inputs (#17921) 2026-08-06 16:21:31 +08:00
Hz_
ef0b293271 fix(go-models): validate embedding request limits (#17919)
## Summary

- Add embedding batch-size metadata to model responses and tenant
overrides.
- Validate embedding dimensions and batch limits across provider
verification and embedding requests.
- Expand validation tests for defaults, limits, and missing metadata.

---------

Signed-off-by: Jin Hai <haijin.chn@gmail.com>
Co-authored-by: Jin Hai <haijin.chn@gmail.com>
2026-08-06 16:18:12 +08:00