fix: support dense_vector from ES fields response (ES 9.x compatibility) (#13972)

fix: support dense_vector from ES fields response (ES 9.x compatibility)

- [x] Bug Fix (non-breaking change which fixes an issue)
- [x] Configuration Chore (non-breaking change which updates
configuration)


## Summary by CodeRabbit

* **Bug Fixes**
* More accurate handling and unwrapping of dense-vector fields so
returned values have correct shapes.
* Field selection reliably limits returned data and falls back to
alternate result locations when needed.
* Use of consistent result IDs and tolerant handling when score values
are missing.

* **Chores / Configuration**
* Increased build memory and adjusted build-time flags for the frontend
build.
* Simplified runtime model/GPU checks and removed an automated runtime
GPU-install attempt.

* **Build Fixes**
* `web/vite.config.ts`: make `build.minify` and `build.sourcemap`
respect `VITE_MINIFY` and `VITE_BUILD_SOURCEMAP` env vars from
Dockerfile instead of hardcoding `terser` and `true`.

* **Environment**
* Allow stack version override and default the runtime image tag to
"latest".

<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->

## Summary by CodeRabbit

* **Bug Fixes**
* Correct unwrapping of dense-vector fields and reliable field selection
with fallback locations.
* Consistent use of hit-level IDs and tolerant handling when score
values are missing.

* **Chores / Configuration**
* Increased frontend build memory and added build-time minify/sourcemap
flags; build minification and sourcemap now configurable.
* Removed runtime GPU detection for model initialization; force CPU
initialization.

* **Environment**
* Allow stack version override and default runtime image tag to
"latest".

<!-- end of auto-generated comment: release notes by coderabbit.ai -->

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Zhichang Yu
2026-04-09 17:44:13 +08:00
committed by GitHub
parent 107fe6cf90
commit b7744e053e
50 changed files with 142 additions and 124 deletions

View File

@@ -18,7 +18,7 @@ from time import sleep
from ragflow_sdk import RAGFlow
from configs import HOST_ADDRESS, VERSION
import pytest
from common import (
from test_common import (
batch_add_chunks,
batch_create_datasets,
bulk_upload_documents,

View File

@@ -14,7 +14,7 @@
# limitations under the License.
#
import pytest
from common import api_new_token, api_rm_token, api_stats, api_token_list, batch_create_chats
from test_common import api_new_token, api_rm_token, api_stats, api_token_list, batch_create_chats
from configs import INVALID_API_TOKEN
from libs.auth import RAGFlowWebApiAuth

View File

@@ -18,7 +18,7 @@
from time import sleep
import pytest
from common import batch_add_chunks, delete_chunks, list_chunks, list_documents, parse_documents
from test_common import batch_add_chunks, delete_chunks, list_chunks, list_documents, parse_documents
from utils import wait_for

View File

@@ -16,7 +16,7 @@
from concurrent.futures import ThreadPoolExecutor, as_completed
import pytest
from common import add_chunk, delete_document, get_chunk, list_chunks
from test_common import add_chunk, delete_document, get_chunk, list_chunks
from configs import INVALID_API_TOKEN
from libs.auth import RAGFlowWebApiAuth

View File

@@ -17,7 +17,7 @@ import os
from concurrent.futures import ThreadPoolExecutor, as_completed
import pytest
from common import batch_add_chunks, list_chunks, update_chunk
from test_common import batch_add_chunks, list_chunks, update_chunk
from configs import INVALID_API_TOKEN
from libs.auth import RAGFlowWebApiAuth

View File

@@ -17,7 +17,7 @@ import os
from concurrent.futures import ThreadPoolExecutor, as_completed
import pytest
from common import retrieval_chunks
from test_common import retrieval_chunks
from configs import INVALID_API_TOKEN
from libs.auth import RAGFlowWebApiAuth

View File

@@ -16,7 +16,7 @@
from concurrent.futures import ThreadPoolExecutor, as_completed
import pytest
from common import batch_add_chunks, delete_chunks, list_chunks
from test_common import batch_add_chunks, delete_chunks, list_chunks
from configs import INVALID_API_TOKEN
from libs.auth import RAGFlowWebApiAuth

View File

@@ -20,7 +20,7 @@ from random import randint
from time import sleep
import pytest
from common import delete_document, list_chunks, update_chunk
from test_common import delete_document, list_chunks, update_chunk
from configs import INVALID_API_TOKEN
from libs.auth import RAGFlowWebApiAuth

View File

@@ -13,6 +13,4 @@
# See the License for the specific language governing permissions and
# limitations under the License.
from rag.flow.chunker.token_chunker import TokenChunker, TokenChunkerParam
__all__ = ["TokenChunker", "TokenChunkerParam"]
__all__ = []

View File

@@ -21,7 +21,7 @@ from pathlib import Path
from types import ModuleType, SimpleNamespace
import pytest
from common import bulk_upload_documents, delete_document, list_documents
from test_common import bulk_upload_documents, delete_document, list_documents
class _DummyManager:

View File

@@ -19,7 +19,7 @@ from types import SimpleNamespace
from concurrent.futures import ThreadPoolExecutor, as_completed
import pytest
from test_web_api.common import create_document, list_datasets
from test_common import create_document, list_datasets
from configs import DOCUMENT_NAME_LIMIT, INVALID_API_TOKEN
from libs.auth import RAGFlowWebApiAuth
from utils.file_utils import create_txt_file

View File

@@ -17,7 +17,7 @@ import asyncio
from types import SimpleNamespace
import pytest
from common import (
from test_common import (
document_change_status,
document_filter,
document_infos,

View File

@@ -18,7 +18,7 @@ from concurrent.futures import ThreadPoolExecutor, as_completed
from types import SimpleNamespace
import pytest
from common import list_documents
from test_common import list_documents
from configs import INVALID_API_TOKEN
from libs.auth import RAGFlowWebApiAuth
from utils import is_sorted

View File

@@ -18,7 +18,7 @@ from concurrent.futures import ThreadPoolExecutor, as_completed
from types import SimpleNamespace
import pytest
from common import bulk_upload_documents, list_documents, parse_documents
from test_common import bulk_upload_documents, list_documents, parse_documents
from configs import INVALID_API_TOKEN
from libs.auth import RAGFlowWebApiAuth
from utils import wait_for

View File

@@ -17,7 +17,7 @@ import asyncio
from concurrent.futures import ThreadPoolExecutor, as_completed
import pytest
from common import bulk_upload_documents, delete_document, list_documents
from test_common import bulk_upload_documents, delete_document, list_documents
from configs import INVALID_API_TOKEN
from libs.auth import RAGFlowWebApiAuth

View File

@@ -20,7 +20,7 @@ from types import ModuleType, SimpleNamespace
from concurrent.futures import ThreadPoolExecutor, as_completed
import pytest
from common import list_datasets, upload_documents
from test_common import list_datasets, upload_documents
from configs import DOCUMENT_NAME_LIMIT, INVALID_API_TOKEN
from libs.auth import RAGFlowWebApiAuth
from utils.file_utils import create_txt_file

View File

@@ -14,7 +14,7 @@
# limitations under the License.
#
import pytest
from common import batch_create_datasets, list_datasets, delete_datasets
from test_common import batch_create_datasets, list_datasets, delete_datasets
from libs.auth import RAGFlowWebApiAuth
from pytest import FixtureRequest
from ragflow_sdk import RAGFlow

View File

@@ -16,7 +16,7 @@
from concurrent.futures import ThreadPoolExecutor, as_completed
import pytest
from common import create_dataset
from test_common import create_dataset
from configs import DATASET_NAME_LIMIT, INVALID_API_TOKEN
from hypothesis import example, given, settings
from libs.auth import RAGFlowWebApiAuth

View File

@@ -14,7 +14,7 @@
# limitations under the License.
#
import pytest
from common import (
from test_common import (
detail_kb,
)
from configs import INVALID_API_TOKEN

View File

@@ -14,7 +14,7 @@
# limitations under the License.
#
import pytest
from test_web_api.common import (
from test_common import (
kb_delete_pipeline_logs,
kb_list_pipeline_dataset_logs,
kb_list_pipeline_logs,

View File

@@ -16,7 +16,7 @@
import uuid
import pytest
from test_web_api.common import (
from test_common import (
delete_knowledge_graph,
kb_basic_info,
kb_get_meta,

View File

@@ -17,7 +17,7 @@ import json
from concurrent.futures import ThreadPoolExecutor, as_completed
import pytest
from common import list_datasets
from test_common import list_datasets
from configs import INVALID_API_TOKEN
from libs.auth import RAGFlowWebApiAuth
from utils import is_sorted

View File

@@ -15,7 +15,7 @@
#
import pytest
from common import (
from test_common import (
list_datasets,
delete_datasets,
)

View File

@@ -17,7 +17,7 @@ import os
from concurrent.futures import ThreadPoolExecutor, as_completed
import pytest
from test_web_api.common import update_dataset
from test_common import update_dataset
from configs import DATASET_NAME_LIMIT, INVALID_API_TOKEN
from hypothesis import HealthCheck, example, given, settings
from libs.auth import RAGFlowWebApiAuth

View File

@@ -14,7 +14,7 @@
# limitations under the License.
#
import pytest
from common import llm_factories, llm_list
from test_common import llm_factories, llm_list
from configs import INVALID_API_TOKEN
from libs.auth import RAGFlowWebApiAuth

View File

@@ -15,7 +15,7 @@
#
import pytest
import random
from test_web_api.common import create_memory, list_memory, delete_memory
from test_common import create_memory, list_memory, delete_memory
@pytest.fixture(scope="function")
def add_memory_func(request, WebApiAuth):

View File

@@ -17,7 +17,7 @@ import random
import re
import pytest
from test_web_api.common import create_memory
from test_common import create_memory
from configs import INVALID_API_TOKEN
from libs.auth import RAGFlowWebApiAuth

View File

@@ -16,7 +16,7 @@
from concurrent.futures import ThreadPoolExecutor, as_completed
import pytest
from test_web_api.common import list_memory, get_memory_config
from test_common import list_memory, get_memory_config
from configs import INVALID_API_TOKEN
from libs.auth import RAGFlowWebApiAuth

View File

@@ -14,7 +14,7 @@
# limitations under the License.
#
import pytest
from test_web_api.common import (list_memory, delete_memory)
from test_common import (list_memory, delete_memory)
from configs import INVALID_API_TOKEN
from libs.auth import RAGFlowWebApiAuth

View File

@@ -16,7 +16,7 @@
import re
import pytest
from test_web_api.common import update_memory
from test_common import update_memory
from configs import INVALID_API_TOKEN
from libs.auth import RAGFlowWebApiAuth
from utils import encode_avatar

View File

@@ -18,7 +18,7 @@ import uuid
import pytest
import random
from test_web_api.common import create_memory, list_memory, add_message, delete_memory
from test_common import create_memory, list_memory, add_message, delete_memory
@pytest.fixture(scope="class")

View File

@@ -17,7 +17,7 @@ import time
import uuid
import pytest
from test_web_api.common import list_memory_message, add_message
from test_common import list_memory_message, add_message
from configs import INVALID_API_TOKEN
from libs.auth import RAGFlowWebApiAuth

View File

@@ -16,7 +16,7 @@
import random
import pytest
import requests
from test_web_api.common import forget_message, list_memory_message, get_message_content
from test_common import forget_message, list_memory_message, get_message_content
from configs import HOST_ADDRESS, INVALID_API_TOKEN, VERSION
from libs.auth import RAGFlowWebApiAuth

View File

@@ -16,7 +16,7 @@
import random
import pytest
from test_web_api.common import get_message_content, get_recent_message
from test_common import get_message_content, get_recent_message
from configs import INVALID_API_TOKEN
from libs.auth import RAGFlowWebApiAuth

View File

@@ -16,7 +16,7 @@
import random
import pytest
from test_web_api.common import get_recent_message
from test_common import get_recent_message
from configs import INVALID_API_TOKEN
from libs.auth import RAGFlowWebApiAuth

View File

@@ -17,7 +17,7 @@ import os
import random
import pytest
from test_web_api.common import list_memory_message
from test_common import list_memory_message
from configs import INVALID_API_TOKEN
from libs.auth import RAGFlowWebApiAuth

View File

@@ -14,7 +14,7 @@
# limitations under the License.
#
import pytest
from test_web_api.common import search_message, list_memory_message
from test_common import search_message, list_memory_message
from configs import INVALID_API_TOKEN
from libs.auth import RAGFlowWebApiAuth

View File

@@ -17,7 +17,7 @@ import random
import pytest
import requests
from test_web_api.common import update_message_status, list_memory_message, get_message_content
from test_common import update_message_status, list_memory_message, get_message_content
from configs import INVALID_API_TOKEN
from libs.auth import RAGFlowWebApiAuth
from configs import HOST_ADDRESS, VERSION

View File

@@ -19,7 +19,7 @@ from pathlib import Path
from types import ModuleType
import pytest
from common import plugin_llm_tools
from test_common import plugin_llm_tools
from configs import INVALID_API_TOKEN
from libs.auth import RAGFlowWebApiAuth

View File

@@ -16,7 +16,7 @@
import uuid
import pytest
from common import search_create, search_detail, search_list, search_rm, search_update
from test_common import search_create, search_detail, search_list, search_rm, search_update
from configs import INVALID_API_TOKEN
from libs.auth import RAGFlowWebApiAuth

View File

@@ -14,7 +14,7 @@
# limitations under the License.
#
import pytest
from common import (
from test_common import (
system_config,
system_delete_token,
system_new_token,