mirror of
https://github.com/langgenius/dify.git
synced 2026-06-07 16:32:01 +08:00
fix: request /api/datasets raise exception (#36591)
Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
This commit is contained in:
parent
ed17b6161f
commit
639e12a306
@ -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):
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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)
|
||||
|
||||
@ -709,9 +709,9 @@ export type DatasetRerankingModelResponse = {
|
||||
}
|
||||
|
||||
export type DatasetWeightedScoreResponse = {
|
||||
keyword_setting: DatasetKeywordSettingResponse
|
||||
vector_setting: DatasetVectorSettingResponse
|
||||
weight_type: string | null
|
||||
keyword_setting?: DatasetKeywordSettingResponse
|
||||
vector_setting?: DatasetVectorSettingResponse
|
||||
weight_type?: string | null
|
||||
}
|
||||
|
||||
export type DatasetRerankingModel = {
|
||||
|
||||
@ -670,9 +670,9 @@ export const zDatasetVectorSettingResponse = z.object({
|
||||
* DatasetWeightedScoreResponse
|
||||
*/
|
||||
export const zDatasetWeightedScoreResponse = z.object({
|
||||
keyword_setting: zDatasetKeywordSettingResponse,
|
||||
vector_setting: zDatasetVectorSettingResponse,
|
||||
weight_type: z.string().nullable(),
|
||||
keyword_setting: zDatasetKeywordSettingResponse.optional(),
|
||||
vector_setting: zDatasetVectorSettingResponse.optional(),
|
||||
weight_type: z.string().nullish(),
|
||||
})
|
||||
|
||||
/**
|
||||
|
||||
@ -377,9 +377,9 @@ export type DatasetVectorSettingResponse = {
|
||||
}
|
||||
|
||||
export type DatasetWeightedScoreResponse = {
|
||||
keyword_setting: DatasetKeywordSettingResponse
|
||||
vector_setting: DatasetVectorSettingResponse
|
||||
weight_type: string | null
|
||||
keyword_setting?: DatasetKeywordSettingResponse
|
||||
vector_setting?: DatasetVectorSettingResponse
|
||||
weight_type?: string | null
|
||||
}
|
||||
|
||||
export type DatasourceNodeRunPayload = {
|
||||
|
||||
@ -354,9 +354,9 @@ export const zDatasetVectorSettingResponse = z.object({
|
||||
* DatasetWeightedScoreResponse
|
||||
*/
|
||||
export const zDatasetWeightedScoreResponse = z.object({
|
||||
keyword_setting: zDatasetKeywordSettingResponse,
|
||||
vector_setting: zDatasetVectorSettingResponse,
|
||||
weight_type: z.string().nullable(),
|
||||
keyword_setting: zDatasetKeywordSettingResponse.optional(),
|
||||
vector_setting: zDatasetVectorSettingResponse.optional(),
|
||||
weight_type: z.string().nullish(),
|
||||
})
|
||||
|
||||
/**
|
||||
|
||||
Loading…
Reference in New Issue
Block a user