Merge branch 'feat/evaluation-fe' into deploy/dev

This commit is contained in:
JzoNg
2026-05-25 11:06:03 +08:00
232 changed files with 13070 additions and 2466 deletions

View File

@ -162,9 +162,9 @@ class DatasetVectorSettingResponse(ResponseModel):
class DatasetWeightedScoreResponse(ResponseModel):
weight_type: str | None
keyword_setting: DatasetKeywordSettingResponse | None
vector_setting: DatasetVectorSettingResponse | None
weight_type: str | None = None
keyword_setting: DatasetKeywordSettingResponse | None = None
vector_setting: DatasetVectorSettingResponse | None = None
class DatasetRetrievalModelResponse(ResponseModel):

View File

@ -12085,9 +12085,9 @@ Condition detail
| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| keyword_setting | [DatasetKeywordSettingResponse](#datasetkeywordsettingresponse) | | Yes |
| vector_setting | [DatasetVectorSettingResponse](#datasetvectorsettingresponse) | | Yes |
| weight_type | string | | Yes |
| keyword_setting | [DatasetKeywordSettingResponse](#datasetkeywordsettingresponse) | | No |
| vector_setting | [DatasetVectorSettingResponse](#datasetvectorsettingresponse) | | No |
| weight_type | string | | No |
#### DatasourceCredentialDeletePayload

View File

@ -2574,9 +2574,9 @@ Condition detail
| Name | Type | Description | Required |
| ---- | ---- | ----------- | -------- |
| keyword_setting | [DatasetKeywordSettingResponse](#datasetkeywordsettingresponse) | | Yes |
| vector_setting | [DatasetVectorSettingResponse](#datasetvectorsettingresponse) | | Yes |
| weight_type | string | | Yes |
| keyword_setting | [DatasetKeywordSettingResponse](#datasetkeywordsettingresponse) | | No |
| vector_setting | [DatasetVectorSettingResponse](#datasetvectorsettingresponse) | | No |
| weight_type | string | | No |
#### DatasourceNodeRunPayload

View File

@ -245,6 +245,55 @@ class TestDatasetList:
assert status == 200
def test_get_allows_legacy_weighted_score_without_weight_type(self, app: Flask):
api = DatasetListApi()
method = unwrap(api.get)
current_user = self._mock_user()
datasets = [
make_dataset(
retrieval_model={
"search_method": "hybrid_search",
"reranking_enable": True,
"reranking_mode": "weighted_score",
"reranking_model": None,
"weights": {
"vector_setting": {
"vector_weight": 0.7,
"embedding_model_name": "text-embedding",
"embedding_provider_name": "openai",
},
"keyword_setting": {"keyword_weight": 0.3},
},
"top_k": 3,
"score_threshold_enabled": False,
"score_threshold": 0.0,
}
)
]
with app.test_request_context("/datasets"):
with (
patch(
"controllers.console.datasets.datasets.current_account_with_tenant",
return_value=(current_user, "tenant-1"),
),
patch.object(
DatasetService,
"get_datasets",
return_value=(datasets, 1),
),
patch.object(
ProviderManager,
"get_configurations",
return_value=MagicMock(get_models=lambda **_: []),
),
):
resp, status = method(api)
assert status == 200
assert resp["data"][0]["retrieval_model_dict"]["weights"]["weight_type"] is None
def test_embedding_available_false(self, app: Flask):
api = DatasetListApi()
method = unwrap(api.get)