diff --git a/api/fields/dataset_fields.py b/api/fields/dataset_fields.py index ac2e6d19d7..35a22ea404 100644 --- a/api/fields/dataset_fields.py +++ b/api/fields/dataset_fields.py @@ -1,7 +1,7 @@ from datetime import datetime from flask_restx import fields -from pydantic import field_validator +from pydantic import Field, field_validator from fields.base import ResponseModel from libs.helper import TimestampField, to_timestamp @@ -152,31 +152,41 @@ class DatasetRerankingModelResponse(ResponseModel): class DatasetKeywordSettingResponse(ResponseModel): - keyword_weight: float + keyword_weight: float | None = None class DatasetVectorSettingResponse(ResponseModel): - vector_weight: float - embedding_model_name: str - embedding_provider_name: str + vector_weight: float | None = None + embedding_model_name: str | None = None + embedding_provider_name: str | None = None class DatasetWeightedScoreResponse(ResponseModel): weight_type: str | None = None - keyword_setting: DatasetKeywordSettingResponse | None = None - vector_setting: DatasetVectorSettingResponse | None = None + keyword_setting: DatasetKeywordSettingResponse = Field(default_factory=DatasetKeywordSettingResponse) + vector_setting: DatasetVectorSettingResponse = Field(default_factory=DatasetVectorSettingResponse) + + @field_validator("keyword_setting", "vector_setting", mode="before") + @classmethod + def _expand_null_nested(cls, value: object) -> object: + return {} if value is None else value class DatasetRetrievalModelResponse(ResponseModel): search_method: str reranking_enable: bool reranking_mode: str | None = None - reranking_model: DatasetRerankingModelResponse | None + reranking_model: DatasetRerankingModelResponse = Field(default_factory=DatasetRerankingModelResponse) weights: DatasetWeightedScoreResponse | None = None top_k: int score_threshold_enabled: bool score_threshold: float | None = None + @field_validator("reranking_model", mode="before") + @classmethod + def _expand_null_nested(cls, value: object) -> object: + return {} if value is None else value + class DatasetSummaryIndexSettingResponse(ResponseModel): enable: bool | None = None @@ -192,10 +202,10 @@ class DatasetTagResponse(ResponseModel): class DatasetExternalKnowledgeInfoResponse(ResponseModel): - external_knowledge_id: str - external_knowledge_api_id: str - external_knowledge_api_name: str - external_knowledge_api_endpoint: str + external_knowledge_id: str | None = None + external_knowledge_api_id: str | None = None + external_knowledge_api_name: str | None = None + external_knowledge_api_endpoint: str | None = None class DatasetExternalRetrievalModelResponse(ResponseModel): @@ -211,8 +221,8 @@ class DatasetDocMetadataResponse(ResponseModel): class DatasetIconInfoResponse(ResponseModel): - icon_type: str | None - icon: str | None + icon_type: str | None = None + icon: str | None = None icon_background: str | None = None icon_url: str | None = None @@ -237,17 +247,21 @@ class DatasetDetailResponse(ResponseModel): embedding_model_provider: str | None embedding_available: bool | None = None retrieval_model_dict: DatasetRetrievalModelResponse - summary_index_setting: DatasetSummaryIndexSettingResponse | None + summary_index_setting: DatasetSummaryIndexSettingResponse = Field( + default_factory=DatasetSummaryIndexSettingResponse + ) tags: list[DatasetTagResponse] doc_form: str | None - external_knowledge_info: DatasetExternalKnowledgeInfoResponse | None + external_knowledge_info: DatasetExternalKnowledgeInfoResponse = Field( + default_factory=DatasetExternalKnowledgeInfoResponse + ) external_retrieval_model: DatasetExternalRetrievalModelResponse | None doc_metadata: list[DatasetDocMetadataResponse] built_in_field_enabled: bool pipeline_id: str | None runtime_mode: str | None chunk_structure: str | None - icon_info: DatasetIconInfoResponse | None + icon_info: DatasetIconInfoResponse = Field(default_factory=DatasetIconInfoResponse) is_published: bool total_documents: int total_available_documents: int @@ -258,3 +272,8 @@ class DatasetDetailResponse(ResponseModel): @classmethod def _normalize_timestamp(cls, value: datetime | int | None) -> int | None: return to_timestamp(value) + + @field_validator("summary_index_setting", "external_knowledge_info", "icon_info", mode="before") + @classmethod + def _expand_null_nested(cls, value: object) -> object: + return {} if value is None else value diff --git a/api/openapi/markdown/console-swagger.md b/api/openapi/markdown/console-swagger.md index 0d87fc32d0..30f34e6f24 100644 --- a/api/openapi/markdown/console-swagger.md +++ b/api/openapi/markdown/console-swagger.md @@ -11708,9 +11708,9 @@ Condition detail | embedding_model | string | | Yes | | embedding_model_provider | string | | Yes | | enable_api | boolean | | Yes | -| external_knowledge_info | [DatasetExternalKnowledgeInfoResponse](#datasetexternalknowledgeinforesponse) | | Yes | +| external_knowledge_info | [DatasetExternalKnowledgeInfoResponse](#datasetexternalknowledgeinforesponse) | | No | | external_retrieval_model | [DatasetExternalRetrievalModelResponse](#datasetexternalretrievalmodelresponse) | | Yes | -| icon_info | [DatasetIconInfoResponse](#dataseticoninforesponse) | | Yes | +| icon_info | [DatasetIconInfoResponse](#dataseticoninforesponse) | | No | | id | string | | Yes | | indexing_technique | string | | Yes | | is_multimodal | boolean | | Yes | @@ -11721,7 +11721,7 @@ Condition detail | provider | string | | Yes | | retrieval_model_dict | [DatasetRetrievalModelResponse](#datasetretrievalmodelresponse) | | Yes | | runtime_mode | string | | Yes | -| summary_index_setting | [DatasetSummaryIndexSettingResponse](#datasetsummaryindexsettingresponse) | | Yes | +| summary_index_setting | [DatasetSummaryIndexSettingResponse](#datasetsummaryindexsettingresponse) | | No | | tags | [ [DatasetTagResponse](#datasettagresponse) ] | | Yes | | total_available_documents | integer | | Yes | | total_documents | integer | | Yes | @@ -11748,9 +11748,9 @@ Condition detail | embedding_model | string | | Yes | | embedding_model_provider | string | | Yes | | enable_api | boolean | | Yes | -| external_knowledge_info | [DatasetExternalKnowledgeInfoResponse](#datasetexternalknowledgeinforesponse) | | Yes | +| external_knowledge_info | [DatasetExternalKnowledgeInfoResponse](#datasetexternalknowledgeinforesponse) | | No | | external_retrieval_model | [DatasetExternalRetrievalModelResponse](#datasetexternalretrievalmodelresponse) | | Yes | -| icon_info | [DatasetIconInfoResponse](#dataseticoninforesponse) | | Yes | +| icon_info | [DatasetIconInfoResponse](#dataseticoninforesponse) | | No | | id | string | | Yes | | indexing_technique | string | | Yes | | is_multimodal | boolean | | Yes | @@ -11762,7 +11762,7 @@ Condition detail | provider | string | | Yes | | retrieval_model_dict | [DatasetRetrievalModelResponse](#datasetretrievalmodelresponse) | | Yes | | runtime_mode | string | | Yes | -| summary_index_setting | [DatasetSummaryIndexSettingResponse](#datasetsummaryindexsettingresponse) | | Yes | +| summary_index_setting | [DatasetSummaryIndexSettingResponse](#datasetsummaryindexsettingresponse) | | No | | tags | [ [DatasetTagResponse](#datasettagresponse) ] | | Yes | | total_available_documents | integer | | Yes | | total_documents | integer | | Yes | @@ -11790,10 +11790,10 @@ Condition detail | Name | Type | Description | Required | | ---- | ---- | ----------- | -------- | -| external_knowledge_api_endpoint | string | | Yes | -| external_knowledge_api_id | string | | Yes | -| external_knowledge_api_name | string | | Yes | -| external_knowledge_id | string | | Yes | +| external_knowledge_api_endpoint | string | | No | +| external_knowledge_api_id | string | | No | +| external_knowledge_api_name | string | | No | +| external_knowledge_id | string | | No | #### DatasetExternalRetrievalModelResponse @@ -11816,9 +11816,9 @@ Condition detail | Name | Type | Description | Required | | ---- | ---- | ----------- | -------- | -| icon | string | | Yes | +| icon | string | | No | | icon_background | string | | No | -| icon_type | string | | Yes | +| icon_type | string | | No | | icon_url | string | | No | #### DatasetKeywordSetting @@ -11831,7 +11831,7 @@ Condition detail | Name | Type | Description | Required | | ---- | ---- | ----------- | -------- | -| keyword_weight | number | | Yes | +| keyword_weight | number | | No | #### DatasetListItemResponse @@ -11852,9 +11852,9 @@ Condition detail | embedding_model | string | | Yes | | embedding_model_provider | string | | Yes | | enable_api | boolean | | Yes | -| external_knowledge_info | [DatasetExternalKnowledgeInfoResponse](#datasetexternalknowledgeinforesponse) | | Yes | +| external_knowledge_info | [DatasetExternalKnowledgeInfoResponse](#datasetexternalknowledgeinforesponse) | | No | | external_retrieval_model | [DatasetExternalRetrievalModelResponse](#datasetexternalretrievalmodelresponse) | | Yes | -| icon_info | [DatasetIconInfoResponse](#dataseticoninforesponse) | | Yes | +| icon_info | [DatasetIconInfoResponse](#dataseticoninforesponse) | | No | | id | string | | Yes | | indexing_technique | string | | Yes | | is_multimodal | boolean | | Yes | @@ -11866,7 +11866,7 @@ Condition detail | provider | string | | Yes | | retrieval_model_dict | [DatasetRetrievalModelResponse](#datasetretrievalmodelresponse) | | Yes | | runtime_mode | string | | Yes | -| summary_index_setting | [DatasetSummaryIndexSettingResponse](#datasetsummaryindexsettingresponse) | | Yes | +| summary_index_setting | [DatasetSummaryIndexSettingResponse](#datasetsummaryindexsettingresponse) | | No | | tags | [ [DatasetTagResponse](#datasettagresponse) ] | | Yes | | total_available_documents | integer | | Yes | | total_documents | integer | | Yes | @@ -12014,7 +12014,7 @@ Condition detail | ---- | ---- | ----------- | -------- | | reranking_enable | boolean | | Yes | | reranking_mode | string | | No | -| reranking_model | [DatasetRerankingModelResponse](#datasetrerankingmodelresponse) | | Yes | +| reranking_model | [DatasetRerankingModelResponse](#datasetrerankingmodelresponse) | | No | | score_threshold | number | | No | | score_threshold_enabled | boolean | | Yes | | search_method | string | | Yes | @@ -12069,9 +12069,9 @@ Condition detail | Name | Type | Description | Required | | ---- | ---- | ----------- | -------- | -| embedding_model_name | string | | Yes | -| embedding_provider_name | string | | Yes | -| vector_weight | number | | Yes | +| embedding_model_name | string | | No | +| embedding_provider_name | string | | No | +| vector_weight | number | | No | #### DatasetWeightedScore diff --git a/api/openapi/markdown/service-swagger.md b/api/openapi/markdown/service-swagger.md index b89caf0269..ee801b1b8e 100644 --- a/api/openapi/markdown/service-swagger.md +++ b/api/openapi/markdown/service-swagger.md @@ -2338,9 +2338,9 @@ Condition detail | embedding_model | string | | Yes | | embedding_model_provider | string | | Yes | | enable_api | boolean | | Yes | -| external_knowledge_info | [DatasetExternalKnowledgeInfoResponse](#datasetexternalknowledgeinforesponse) | | Yes | +| external_knowledge_info | [DatasetExternalKnowledgeInfoResponse](#datasetexternalknowledgeinforesponse) | | No | | external_retrieval_model | [DatasetExternalRetrievalModelResponse](#datasetexternalretrievalmodelresponse) | | Yes | -| icon_info | [DatasetIconInfoResponse](#dataseticoninforesponse) | | Yes | +| icon_info | [DatasetIconInfoResponse](#dataseticoninforesponse) | | No | | id | string | | Yes | | indexing_technique | string | | Yes | | is_multimodal | boolean | | Yes | @@ -2351,7 +2351,7 @@ Condition detail | provider | string | | Yes | | retrieval_model_dict | [DatasetRetrievalModelResponse](#datasetretrievalmodelresponse) | | Yes | | runtime_mode | string | | Yes | -| summary_index_setting | [DatasetSummaryIndexSettingResponse](#datasetsummaryindexsettingresponse) | | Yes | +| summary_index_setting | [DatasetSummaryIndexSettingResponse](#datasetsummaryindexsettingresponse) | | No | | tags | [ [DatasetTagResponse](#datasettagresponse) ] | | Yes | | total_available_documents | integer | | Yes | | total_documents | integer | | Yes | @@ -2378,9 +2378,9 @@ Condition detail | embedding_model | string | | Yes | | embedding_model_provider | string | | Yes | | enable_api | boolean | | Yes | -| external_knowledge_info | [DatasetExternalKnowledgeInfoResponse](#datasetexternalknowledgeinforesponse) | | Yes | +| external_knowledge_info | [DatasetExternalKnowledgeInfoResponse](#datasetexternalknowledgeinforesponse) | | No | | external_retrieval_model | [DatasetExternalRetrievalModelResponse](#datasetexternalretrievalmodelresponse) | | Yes | -| icon_info | [DatasetIconInfoResponse](#dataseticoninforesponse) | | Yes | +| icon_info | [DatasetIconInfoResponse](#dataseticoninforesponse) | | No | | id | string | | Yes | | indexing_technique | string | | Yes | | is_multimodal | boolean | | Yes | @@ -2392,7 +2392,7 @@ Condition detail | provider | string | | Yes | | retrieval_model_dict | [DatasetRetrievalModelResponse](#datasetretrievalmodelresponse) | | Yes | | runtime_mode | string | | Yes | -| summary_index_setting | [DatasetSummaryIndexSettingResponse](#datasetsummaryindexsettingresponse) | | Yes | +| summary_index_setting | [DatasetSummaryIndexSettingResponse](#datasetsummaryindexsettingresponse) | | No | | tags | [ [DatasetTagResponse](#datasettagresponse) ] | | Yes | | total_available_documents | integer | | Yes | | total_documents | integer | | Yes | @@ -2412,10 +2412,10 @@ Condition detail | Name | Type | Description | Required | | ---- | ---- | ----------- | -------- | -| external_knowledge_api_endpoint | string | | Yes | -| external_knowledge_api_id | string | | Yes | -| external_knowledge_api_name | string | | Yes | -| external_knowledge_id | string | | Yes | +| external_knowledge_api_endpoint | string | | No | +| external_knowledge_api_id | string | | No | +| external_knowledge_api_name | string | | No | +| external_knowledge_id | string | | No | #### DatasetExternalRetrievalModelResponse @@ -2429,16 +2429,16 @@ Condition detail | Name | Type | Description | Required | | ---- | ---- | ----------- | -------- | -| icon | string | | Yes | +| icon | string | | No | | icon_background | string | | No | -| icon_type | string | | Yes | +| icon_type | string | | No | | icon_url | string | | No | #### DatasetKeywordSettingResponse | Name | Type | Description | Required | | ---- | ---- | ----------- | -------- | -| keyword_weight | number | | Yes | +| keyword_weight | number | | No | #### DatasetListQuery @@ -2522,7 +2522,7 @@ Condition detail | ---- | ---- | ----------- | -------- | | reranking_enable | boolean | | Yes | | reranking_mode | string | | No | -| reranking_model | [DatasetRerankingModelResponse](#datasetrerankingmodelresponse) | | Yes | +| reranking_model | [DatasetRerankingModelResponse](#datasetrerankingmodelresponse) | | No | | score_threshold | number | | No | | score_threshold_enabled | boolean | | Yes | | search_method | string | | Yes | @@ -2566,9 +2566,9 @@ Condition detail | Name | Type | Description | Required | | ---- | ---- | ----------- | -------- | -| embedding_model_name | string | | Yes | -| embedding_provider_name | string | | Yes | -| vector_weight | number | | Yes | +| embedding_model_name | string | | No | +| embedding_provider_name | string | | No | +| vector_weight | number | | No | #### DatasetWeightedScoreResponse diff --git a/api/tests/unit_tests/fields/test_dataset_fields.py b/api/tests/unit_tests/fields/test_dataset_fields.py new file mode 100644 index 0000000000..125bcb26cf --- /dev/null +++ b/api/tests/unit_tests/fields/test_dataset_fields.py @@ -0,0 +1,173 @@ +from fields.dataset_fields import DatasetDetailResponse + + +def _dataset_detail_payload(**overrides): + payload = { + "id": "ds-1", + "name": "Dataset", + "description": "desc", + "provider": "vendor", + "permission": "only_me", + "data_source_type": None, + "indexing_technique": "economy", + "app_count": 0, + "document_count": 0, + "word_count": 0, + "created_by": "account-1", + "author_name": None, + "created_at": 1704067200, + "updated_by": None, + "updated_at": 1704067200, + "embedding_model": None, + "embedding_model_provider": None, + "embedding_available": True, + "retrieval_model_dict": { + "search_method": "hybrid_search", + "reranking_enable": True, + "reranking_mode": "weighted_score", + "reranking_model": { + "reranking_provider_name": "provider", + "reranking_model_name": "model", + }, + "weights": { + "weight_type": "customized", + "keyword_setting": {"keyword_weight": 0.3}, + "vector_setting": { + "vector_weight": 0.7, + "embedding_model_name": "embedding", + "embedding_provider_name": "provider", + }, + }, + "top_k": 3, + "score_threshold_enabled": False, + "score_threshold": None, + }, + "summary_index_setting": { + "enable": False, + "model_name": None, + "model_provider_name": None, + "summary_prompt": None, + }, + "tags": [], + "doc_form": None, + "external_knowledge_info": { + "external_knowledge_id": "knowledge-id", + "external_knowledge_api_id": "api-id", + "external_knowledge_api_name": "api", + "external_knowledge_api_endpoint": "https://example.com", + }, + "external_retrieval_model": None, + "doc_metadata": [], + "built_in_field_enabled": False, + "pipeline_id": None, + "runtime_mode": "general", + "chunk_structure": None, + "icon_info": { + "icon_type": "emoji", + "icon": "📙", + "icon_background": None, + "icon_url": None, + }, + "is_published": False, + "total_documents": 0, + "total_available_documents": 0, + "enable_api": False, + "is_multimodal": False, + } + payload.update(overrides) + return payload + + +def _dump_dataset_detail(payload): + return DatasetDetailResponse.model_validate(payload).model_dump(mode="json") + + +def test_dataset_detail_expands_legacy_null_nested_fields(): + response = _dump_dataset_detail( + _dataset_detail_payload( + summary_index_setting=None, + external_knowledge_info=None, + icon_info=None, + ) + ) + + assert response["summary_index_setting"] == { + "enable": None, + "model_name": None, + "model_provider_name": None, + "summary_prompt": None, + } + assert response["external_knowledge_info"] == { + "external_knowledge_id": None, + "external_knowledge_api_id": None, + "external_knowledge_api_name": None, + "external_knowledge_api_endpoint": None, + } + assert response["icon_info"] == { + "icon_type": None, + "icon": None, + "icon_background": None, + "icon_url": None, + } + assert response["external_retrieval_model"] is None + + +def test_dataset_detail_expands_legacy_null_retrieval_nested_fields(): + response = _dump_dataset_detail( + _dataset_detail_payload( + retrieval_model_dict={ + "search_method": "hybrid_search", + "reranking_enable": True, + "reranking_mode": "weighted_score", + "reranking_model": None, + "weights": { + "keyword_setting": None, + "vector_setting": None, + }, + "top_k": 3, + "score_threshold_enabled": False, + "score_threshold": None, + } + ) + ) + + assert response["retrieval_model_dict"]["reranking_model"] == { + "reranking_provider_name": None, + "reranking_model_name": None, + } + assert response["retrieval_model_dict"]["weights"] == { + "weight_type": None, + "keyword_setting": {"keyword_weight": None}, + "vector_setting": { + "vector_weight": None, + "embedding_model_name": None, + "embedding_provider_name": None, + }, + } + + +def test_dataset_detail_expands_missing_weighted_score_nested_fields(): + response = _dump_dataset_detail( + _dataset_detail_payload( + retrieval_model_dict={ + "search_method": "hybrid_search", + "reranking_enable": True, + "reranking_mode": "weighted_score", + "reranking_model": None, + "weights": {}, + "top_k": 3, + "score_threshold_enabled": False, + "score_threshold": None, + } + ) + ) + + assert response["retrieval_model_dict"]["weights"] == { + "weight_type": None, + "keyword_setting": {"keyword_weight": None}, + "vector_setting": { + "vector_weight": None, + "embedding_model_name": None, + "embedding_provider_name": None, + }, + } diff --git a/packages/contracts/generated/api/console/datasets/types.gen.ts b/packages/contracts/generated/api/console/datasets/types.gen.ts index 77c46fea16..6c96c80d4a 100644 --- a/packages/contracts/generated/api/console/datasets/types.gen.ts +++ b/packages/contracts/generated/api/console/datasets/types.gen.ts @@ -38,9 +38,9 @@ export type DatasetDetailResponse = { embedding_model: string | null embedding_model_provider: string | null enable_api: boolean - external_knowledge_info: DatasetExternalKnowledgeInfoResponse + external_knowledge_info?: DatasetExternalKnowledgeInfoResponse external_retrieval_model: DatasetExternalRetrievalModelResponse - icon_info: DatasetIconInfoResponse + icon_info?: DatasetIconInfoResponse id: string indexing_technique: string | null is_multimodal: boolean @@ -51,7 +51,7 @@ export type DatasetDetailResponse = { provider: string retrieval_model_dict: DatasetRetrievalModelResponse runtime_mode: string | null - summary_index_setting: DatasetSummaryIndexSettingResponse + summary_index_setting?: DatasetSummaryIndexSettingResponse tags: Array total_available_documents: number total_documents: number @@ -231,9 +231,9 @@ export type DatasetDetailWithPartialMembersResponse = { embedding_model: string | null embedding_model_provider: string | null enable_api: boolean - external_knowledge_info: DatasetExternalKnowledgeInfoResponse + external_knowledge_info?: DatasetExternalKnowledgeInfoResponse external_retrieval_model: DatasetExternalRetrievalModelResponse - icon_info: DatasetIconInfoResponse + icon_info?: DatasetIconInfoResponse id: string indexing_technique: string | null is_multimodal: boolean @@ -245,7 +245,7 @@ export type DatasetDetailWithPartialMembersResponse = { provider: string retrieval_model_dict: DatasetRetrievalModelResponse runtime_mode: string | null - summary_index_setting: DatasetSummaryIndexSettingResponse + summary_index_setting?: DatasetSummaryIndexSettingResponse tags: Array total_available_documents: number total_documents: number @@ -465,9 +465,9 @@ export type DatasetListItemResponse = { embedding_model: string | null embedding_model_provider: string | null enable_api: boolean - external_knowledge_info: DatasetExternalKnowledgeInfoResponse + external_knowledge_info?: DatasetExternalKnowledgeInfoResponse external_retrieval_model: DatasetExternalRetrievalModelResponse - icon_info: DatasetIconInfoResponse + icon_info?: DatasetIconInfoResponse id: string indexing_technique: string | null is_multimodal: boolean @@ -479,7 +479,7 @@ export type DatasetListItemResponse = { provider: string retrieval_model_dict: DatasetRetrievalModelResponse runtime_mode: string | null - summary_index_setting: DatasetSummaryIndexSettingResponse + summary_index_setting?: DatasetSummaryIndexSettingResponse tags: Array total_available_documents: number total_documents: number @@ -497,10 +497,10 @@ export type DatasetDocMetadataResponse = { } export type DatasetExternalKnowledgeInfoResponse = { - external_knowledge_api_endpoint: string - external_knowledge_api_id: string - external_knowledge_api_name: string - external_knowledge_id: string + external_knowledge_api_endpoint?: string | null + external_knowledge_api_id?: string | null + external_knowledge_api_name?: string | null + external_knowledge_id?: string | null } export type DatasetExternalRetrievalModelResponse = { @@ -510,16 +510,16 @@ export type DatasetExternalRetrievalModelResponse = { } export type DatasetIconInfoResponse = { - icon: string | null + icon?: string | null icon_background?: string | null - icon_type: string | null + icon_type?: string | null icon_url?: string | null } export type DatasetRetrievalModelResponse = { reranking_enable: boolean reranking_mode?: string | null - reranking_model: DatasetRerankingModelResponse + reranking_model?: DatasetRerankingModelResponse score_threshold?: number | null score_threshold_enabled: boolean search_method: string @@ -816,13 +816,13 @@ export type DatasetQueryContentResponse = { } export type DatasetKeywordSettingResponse = { - keyword_weight: number + keyword_weight?: number | null } export type DatasetVectorSettingResponse = { - embedding_model_name: string - embedding_provider_name: string - vector_weight: number + embedding_model_name?: string | null + embedding_provider_name?: string | null + vector_weight?: number | null } export type DatasetKeywordSetting = { diff --git a/packages/contracts/generated/api/console/datasets/zod.gen.ts b/packages/contracts/generated/api/console/datasets/zod.gen.ts index c14c4fe455..f795d17f2f 100644 --- a/packages/contracts/generated/api/console/datasets/zod.gen.ts +++ b/packages/contracts/generated/api/console/datasets/zod.gen.ts @@ -307,10 +307,10 @@ export const zDatasetDocMetadataResponse = z.object({ * DatasetExternalKnowledgeInfoResponse */ export const zDatasetExternalKnowledgeInfoResponse = z.object({ - external_knowledge_api_endpoint: z.string(), - external_knowledge_api_id: z.string(), - external_knowledge_api_name: z.string(), - external_knowledge_id: z.string(), + external_knowledge_api_endpoint: z.string().nullish(), + external_knowledge_api_id: z.string().nullish(), + external_knowledge_api_name: z.string().nullish(), + external_knowledge_id: z.string().nullish(), }) /** @@ -326,9 +326,9 @@ export const zDatasetExternalRetrievalModelResponse = z.object({ * DatasetIconInfoResponse */ export const zDatasetIconInfoResponse = z.object({ - icon: z.string().nullable(), + icon: z.string().nullish(), icon_background: z.string().nullish(), - icon_type: z.string().nullable(), + icon_type: z.string().nullish(), icon_url: z.string().nullish(), }) @@ -654,16 +654,16 @@ export const zHitTestingFile = z.object({ * DatasetKeywordSettingResponse */ export const zDatasetKeywordSettingResponse = z.object({ - keyword_weight: z.number(), + keyword_weight: z.number().nullish(), }) /** * DatasetVectorSettingResponse */ export const zDatasetVectorSettingResponse = z.object({ - embedding_model_name: z.string(), - embedding_provider_name: z.string(), - vector_weight: z.number(), + embedding_model_name: z.string().nullish(), + embedding_provider_name: z.string().nullish(), + vector_weight: z.number().nullish(), }) /** @@ -681,7 +681,7 @@ export const zDatasetWeightedScoreResponse = z.object({ export const zDatasetRetrievalModelResponse = z.object({ reranking_enable: z.boolean(), reranking_mode: z.string().nullish(), - reranking_model: zDatasetRerankingModelResponse, + reranking_model: zDatasetRerankingModelResponse.optional(), score_threshold: z.number().nullish(), score_threshold_enabled: z.boolean(), search_method: z.string(), @@ -708,9 +708,9 @@ export const zDatasetDetailResponse = z.object({ embedding_model: z.string().nullable(), embedding_model_provider: z.string().nullable(), enable_api: z.boolean(), - external_knowledge_info: zDatasetExternalKnowledgeInfoResponse, + external_knowledge_info: zDatasetExternalKnowledgeInfoResponse.optional(), external_retrieval_model: zDatasetExternalRetrievalModelResponse, - icon_info: zDatasetIconInfoResponse, + icon_info: zDatasetIconInfoResponse.optional(), id: z.string(), indexing_technique: z.string().nullable(), is_multimodal: z.boolean(), @@ -721,7 +721,7 @@ export const zDatasetDetailResponse = z.object({ provider: z.string(), retrieval_model_dict: zDatasetRetrievalModelResponse, runtime_mode: z.string().nullable(), - summary_index_setting: zDatasetSummaryIndexSettingResponse, + summary_index_setting: zDatasetSummaryIndexSettingResponse.optional(), tags: z.array(zDatasetTagResponse), total_available_documents: z.int(), total_documents: z.int(), @@ -749,9 +749,9 @@ export const zDatasetDetailWithPartialMembersResponse = z.object({ embedding_model: z.string().nullable(), embedding_model_provider: z.string().nullable(), enable_api: z.boolean(), - external_knowledge_info: zDatasetExternalKnowledgeInfoResponse, + external_knowledge_info: zDatasetExternalKnowledgeInfoResponse.optional(), external_retrieval_model: zDatasetExternalRetrievalModelResponse, - icon_info: zDatasetIconInfoResponse, + icon_info: zDatasetIconInfoResponse.optional(), id: z.string(), indexing_technique: z.string().nullable(), is_multimodal: z.boolean(), @@ -763,7 +763,7 @@ export const zDatasetDetailWithPartialMembersResponse = z.object({ provider: z.string(), retrieval_model_dict: zDatasetRetrievalModelResponse, runtime_mode: z.string().nullable(), - summary_index_setting: zDatasetSummaryIndexSettingResponse, + summary_index_setting: zDatasetSummaryIndexSettingResponse.optional(), tags: z.array(zDatasetTagResponse), total_available_documents: z.int(), total_documents: z.int(), @@ -791,9 +791,9 @@ export const zDatasetListItemResponse = z.object({ embedding_model: z.string().nullable(), embedding_model_provider: z.string().nullable(), enable_api: z.boolean(), - external_knowledge_info: zDatasetExternalKnowledgeInfoResponse, + external_knowledge_info: zDatasetExternalKnowledgeInfoResponse.optional(), external_retrieval_model: zDatasetExternalRetrievalModelResponse, - icon_info: zDatasetIconInfoResponse, + icon_info: zDatasetIconInfoResponse.optional(), id: z.string(), indexing_technique: z.string().nullable(), is_multimodal: z.boolean(), @@ -805,7 +805,7 @@ export const zDatasetListItemResponse = z.object({ provider: z.string(), retrieval_model_dict: zDatasetRetrievalModelResponse, runtime_mode: z.string().nullable(), - summary_index_setting: zDatasetSummaryIndexSettingResponse, + summary_index_setting: zDatasetSummaryIndexSettingResponse.optional(), tags: z.array(zDatasetTagResponse), total_available_documents: z.int(), total_documents: z.int(), diff --git a/packages/contracts/generated/api/service/types.gen.ts b/packages/contracts/generated/api/service/types.gen.ts index 46be7acdef..54ce811a95 100644 --- a/packages/contracts/generated/api/service/types.gen.ts +++ b/packages/contracts/generated/api/service/types.gen.ts @@ -183,9 +183,9 @@ export type DatasetDetailResponse = { embedding_model: string | null embedding_model_provider: string | null enable_api: boolean - external_knowledge_info: DatasetExternalKnowledgeInfoResponse + external_knowledge_info?: DatasetExternalKnowledgeInfoResponse external_retrieval_model: DatasetExternalRetrievalModelResponse - icon_info: DatasetIconInfoResponse + icon_info?: DatasetIconInfoResponse id: string indexing_technique: string | null is_multimodal: boolean @@ -196,7 +196,7 @@ export type DatasetDetailResponse = { provider: string retrieval_model_dict: DatasetRetrievalModelResponse runtime_mode: string | null - summary_index_setting: DatasetSummaryIndexSettingResponse + summary_index_setting?: DatasetSummaryIndexSettingResponse tags: Array total_available_documents: number total_documents: number @@ -221,9 +221,9 @@ export type DatasetDetailWithPartialMembersResponse = { embedding_model: string | null embedding_model_provider: string | null enable_api: boolean - external_knowledge_info: DatasetExternalKnowledgeInfoResponse + external_knowledge_info?: DatasetExternalKnowledgeInfoResponse external_retrieval_model: DatasetExternalRetrievalModelResponse - icon_info: DatasetIconInfoResponse + icon_info?: DatasetIconInfoResponse id: string indexing_technique: string | null is_multimodal: boolean @@ -235,7 +235,7 @@ export type DatasetDetailWithPartialMembersResponse = { provider: string retrieval_model_dict: DatasetRetrievalModelResponse runtime_mode: string | null - summary_index_setting: DatasetSummaryIndexSettingResponse + summary_index_setting?: DatasetSummaryIndexSettingResponse tags: Array total_available_documents: number total_documents: number @@ -251,10 +251,10 @@ export type DatasetDocMetadataResponse = { } export type DatasetExternalKnowledgeInfoResponse = { - external_knowledge_api_endpoint: string - external_knowledge_api_id: string - external_knowledge_api_name: string - external_knowledge_id: string + external_knowledge_api_endpoint?: string | null + external_knowledge_api_id?: string | null + external_knowledge_api_name?: string | null + external_knowledge_id?: string | null } export type DatasetExternalRetrievalModelResponse = { @@ -264,14 +264,14 @@ export type DatasetExternalRetrievalModelResponse = { } export type DatasetIconInfoResponse = { - icon: string | null + icon?: string | null icon_background?: string | null - icon_type: string | null + icon_type?: string | null icon_url?: string | null } export type DatasetKeywordSettingResponse = { - keyword_weight: number + keyword_weight?: number | null } export type DatasetListQuery = { @@ -331,7 +331,7 @@ export type DatasetRerankingModelResponse = { export type DatasetRetrievalModelResponse = { reranking_enable: boolean reranking_mode?: string | null - reranking_model: DatasetRerankingModelResponse + reranking_model?: DatasetRerankingModelResponse score_threshold?: number | null score_threshold_enabled: boolean search_method: string @@ -371,9 +371,9 @@ export type DatasetUpdatePayload = { } export type DatasetVectorSettingResponse = { - embedding_model_name: string - embedding_provider_name: string - vector_weight: number + embedding_model_name?: string | null + embedding_provider_name?: string | null + vector_weight?: number | null } export type DatasetWeightedScoreResponse = { diff --git a/packages/contracts/generated/api/service/zod.gen.ts b/packages/contracts/generated/api/service/zod.gen.ts index 98383ec9cd..22e4b24721 100644 --- a/packages/contracts/generated/api/service/zod.gen.ts +++ b/packages/contracts/generated/api/service/zod.gen.ts @@ -217,10 +217,10 @@ export const zDatasetDocMetadataResponse = z.object({ * DatasetExternalKnowledgeInfoResponse */ export const zDatasetExternalKnowledgeInfoResponse = z.object({ - external_knowledge_api_endpoint: z.string(), - external_knowledge_api_id: z.string(), - external_knowledge_api_name: z.string(), - external_knowledge_id: z.string(), + external_knowledge_api_endpoint: z.string().nullish(), + external_knowledge_api_id: z.string().nullish(), + external_knowledge_api_name: z.string().nullish(), + external_knowledge_id: z.string().nullish(), }) /** @@ -236,9 +236,9 @@ export const zDatasetExternalRetrievalModelResponse = z.object({ * DatasetIconInfoResponse */ export const zDatasetIconInfoResponse = z.object({ - icon: z.string().nullable(), + icon: z.string().nullish(), icon_background: z.string().nullish(), - icon_type: z.string().nullable(), + icon_type: z.string().nullish(), icon_url: z.string().nullish(), }) @@ -246,7 +246,7 @@ export const zDatasetIconInfoResponse = z.object({ * DatasetKeywordSettingResponse */ export const zDatasetKeywordSettingResponse = z.object({ - keyword_weight: z.number(), + keyword_weight: z.number().nullish(), }) /** @@ -345,9 +345,9 @@ export const zDatasetTagResponse = z.object({ * DatasetVectorSettingResponse */ export const zDatasetVectorSettingResponse = z.object({ - embedding_model_name: z.string(), - embedding_provider_name: z.string(), - vector_weight: z.number(), + embedding_model_name: z.string().nullish(), + embedding_provider_name: z.string().nullish(), + vector_weight: z.number().nullish(), }) /** @@ -365,7 +365,7 @@ export const zDatasetWeightedScoreResponse = z.object({ export const zDatasetRetrievalModelResponse = z.object({ reranking_enable: z.boolean(), reranking_mode: z.string().nullish(), - reranking_model: zDatasetRerankingModelResponse, + reranking_model: zDatasetRerankingModelResponse.optional(), score_threshold: z.number().nullish(), score_threshold_enabled: z.boolean(), search_method: z.string(), @@ -392,9 +392,9 @@ export const zDatasetDetailResponse = z.object({ embedding_model: z.string().nullable(), embedding_model_provider: z.string().nullable(), enable_api: z.boolean(), - external_knowledge_info: zDatasetExternalKnowledgeInfoResponse, + external_knowledge_info: zDatasetExternalKnowledgeInfoResponse.optional(), external_retrieval_model: zDatasetExternalRetrievalModelResponse, - icon_info: zDatasetIconInfoResponse, + icon_info: zDatasetIconInfoResponse.optional(), id: z.string(), indexing_technique: z.string().nullable(), is_multimodal: z.boolean(), @@ -405,7 +405,7 @@ export const zDatasetDetailResponse = z.object({ provider: z.string(), retrieval_model_dict: zDatasetRetrievalModelResponse, runtime_mode: z.string().nullable(), - summary_index_setting: zDatasetSummaryIndexSettingResponse, + summary_index_setting: zDatasetSummaryIndexSettingResponse.optional(), tags: z.array(zDatasetTagResponse), total_available_documents: z.int(), total_documents: z.int(), @@ -433,9 +433,9 @@ export const zDatasetDetailWithPartialMembersResponse = z.object({ embedding_model: z.string().nullable(), embedding_model_provider: z.string().nullable(), enable_api: z.boolean(), - external_knowledge_info: zDatasetExternalKnowledgeInfoResponse, + external_knowledge_info: zDatasetExternalKnowledgeInfoResponse.optional(), external_retrieval_model: zDatasetExternalRetrievalModelResponse, - icon_info: zDatasetIconInfoResponse, + icon_info: zDatasetIconInfoResponse.optional(), id: z.string(), indexing_technique: z.string().nullable(), is_multimodal: z.boolean(), @@ -447,7 +447,7 @@ export const zDatasetDetailWithPartialMembersResponse = z.object({ provider: z.string(), retrieval_model_dict: zDatasetRetrievalModelResponse, runtime_mode: z.string().nullable(), - summary_index_setting: zDatasetSummaryIndexSettingResponse, + summary_index_setting: zDatasetSummaryIndexSettingResponse.optional(), tags: z.array(zDatasetTagResponse), total_available_documents: z.int(), total_documents: z.int(),