From 5f4ac7d9859a32afae5f7a11bcfa7f79395ae6a7 Mon Sep 17 00:00:00 2001 From: Vasilisa Parshikova Date: Wed, 11 Mar 2026 15:21:16 +0400 Subject: [PATCH] (sap) fix after bot review --- litellm/llms/sap/chat/models.py | 16 +++++++++------- litellm/llms/sap/chat/transformation.py | 2 +- litellm/llms/sap/embed/transformation.py | 4 ++-- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/litellm/llms/sap/chat/models.py b/litellm/llms/sap/chat/models.py index bd140a57e6f..dace7477d23 100644 --- a/litellm/llms/sap/chat/models.py +++ b/litellm/llms/sap/chat/models.py @@ -1,7 +1,7 @@ from typing import Union, Literal, Optional from enum import Enum -from pydantic import BaseModel, Field, field_validator, model_validator, ValidationError +from pydantic import BaseModel, Field, field_validator, model_validator def validate_different_content(v: Union[str, dict, list]) -> str: @@ -134,7 +134,7 @@ class KeyValueListPair(BaseModel): class DocumentMetadataKeyValueListPairs(KeyValueListPair): - select_mode: list[Literal['ignoreIfKeyAbsent']] = None + select_mode: Optional[list[Literal['ignoreIfKeyAbsent']]] = None class GroundingSearchConfig(BaseModel): @@ -149,7 +149,7 @@ class GroundingSearchConfig(BaseModel): class DocumentGroundingFilter(BaseModel): - id_: str = Field(default=None, alias="id") + id_: Optional[str] = Field(default=None, alias="id") data_repository_type: Literal["vector", "help.sap.com"] search_config: Optional[GroundingSearchConfig] = None data_repositories: Optional[list[str]]= None @@ -568,13 +568,15 @@ class FilteringModuleConfig(BaseModel): output: Optional[OutputFiltering] = None @model_validator(mode="after") - def enforce_min_properties(cls, values): # pylint: disable=no-self-argument + def enforce_min_properties(self) -> "FilteringModuleConfig": """ Ensure at least one of input or output filtering is provided. """ - assert values.input is not None or values.output is not None, \ - "For using SAP Filtering Module you must provide at least one property: input or output filters." - return values + if self.input is None and self.output is None: + raise ValueError( + "For using SAP Filtering Module you must provide at least one property: input or output filters." + ) + return self class SAPDocumentTranslationApplyToSelector(BaseModel): diff --git a/litellm/llms/sap/chat/transformation.py b/litellm/llms/sap/chat/transformation.py index 80854a187b1..afe38c90ef7 100755 --- a/litellm/llms/sap/chat/transformation.py +++ b/litellm/llms/sap/chat/transformation.py @@ -271,7 +271,7 @@ class GenAIHubOrchestrationConfig(OpenAIGPTConfig): _build_prompt_module( model_name=model, template_messages=template, - params=optional_params, + params=dict(optional_params), ) ] diff --git a/litellm/llms/sap/embed/transformation.py b/litellm/llms/sap/embed/transformation.py index 090b2d17f48..b8f27c48693 100644 --- a/litellm/llms/sap/embed/transformation.py +++ b/litellm/llms/sap/embed/transformation.py @@ -49,8 +49,8 @@ class EmbeddingModel(BaseModel): name: str version: str = "latest" params: dict = Field(default_factory=dict, validation_alias="parameters") - timeout: Optional[int] = Field(default=600, ge=1, le=600) - max_retries: Optional[int] = Field(default=2, ge=0, le=5) + timeout: int = Field(default=600, ge=1, le=600) + max_retries: int = Field(default=2, ge=0, le=5) class EmbeddingsModelConfig(BaseModel): model: EmbeddingModel