Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 10 additions & 3 deletions packages/gen/gen_ai_hub/orchestration_v2/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@

# config
"ModuleConfig", "OrchestrationConfig", "OrchestrationConfigReference",
"PartialPromptTemplatingModuleConfig", "PartialModuleConfigs", "PartialOrchestrationConfig",
"CompletionRequestConfigurationReferenceByIdConfigRef",
"CompletionRequestConfigurationReferenceByNameScenarioVersionConfigRef",

Expand All @@ -22,8 +23,9 @@
"InputFiltering", "OutputFiltering", "FilteringModuleConfig",

# data_masking
"DataMaskingProviderName", "MaskingMethod", "ProfileEntity", "DPIMethodConstant", "DPIMethodFabricatedData",
"DPICustomEntity", "DPIStandardEntity", "MaskGroundingInput", "MaskingProviderConfig", "MaskingModuleConfig",
"DataMaskingProviderName", "MaskingMethod", "MaskFileInputMethod", "ProfileEntity", "DPIMethodConstant",
"DPIMethodFabricatedData", "DPICustomEntity", "DPIStandardEntity", "MaskGroundingInput", "MaskingProviderConfig",
"MaskingModuleConfig",

# document_grounding
"GroundingType", "DataRepositoryType", "DocumentGroundingFilter", "DocumentGroundingPlaceholders",
Expand All @@ -33,7 +35,8 @@
# embeddings
"EmbeddingsEncodingFormat", "EmbeddingsInputType", "EmbeddingsModelParams", "EmbeddingsModelDetails",
"EmbeddingsModelConfig", "EmbeddingsModuleConfigs", "EmbeddingsOrchestrationConfig", "EmbeddingsInput",
"EmbeddingsUsage", "EmbeddingResult", "EmbeddingsResponse", "EmbeddingsPostResponse", "EmbeddingsRequest",
"EmbeddingMultiFormat", "EmbeddingsUsage", "EmbeddingResult", "EmbeddingsResponse",
"EmbeddingsPostResponse", "EmbeddingsRequest",

# llama_guard_3_filter
"LlamaGuard38bFilter",
Expand All @@ -47,6 +50,7 @@

# multimodal_items
"ImageDetailLevel", "TextPart", "ImageUrl", "ImagePart", "ContentPart", "ImageItem",
"FileContent", "FilePart", "FileItem",

# response
"CacheCreationTokenDetails", "PromptTokensDetails", "CompletionTokensDetails", "TokenUsage", "GenericModuleResult", "TopLogprob",
Expand All @@ -55,6 +59,9 @@
"StreamModuleResults", "SAPAPIError", "SAPAPIErrorStreaming", "CompletionPostResponse",
"StreamCompletionPostResponse", "ErrorResponse", "ErrorResponseStreaming", "OrchestrationResponseWithRetries",

# request_headers
"OrchestrationRequestHeaders",

# response_format
"ResponseFormatText", "ResponseFormatJsonObject", "ResponseFormatJsonSchema", "JSONResponseSchema",

Expand Down
27 changes: 19 additions & 8 deletions packages/gen/gen_ai_hub/orchestration_v2/models/__init__.py
Original file line number Diff line number Diff line change
@@ -1,31 +1,35 @@
from .azure_content_filter import AzureContentSafetyInput, AzureContentSafetyOutput, AzureContentFilter, AzureThreshold
from .cache_control import CacheControl
from .config import (ModuleConfig, OrchestrationConfig, OrchestrationConfigReference,
PartialPromptTemplatingModuleConfig, PartialModuleConfigs, PartialOrchestrationConfig,
CompletionRequestConfigurationReferenceByIdConfigRef,
CompletionRequestConfigurationReferenceByNameScenarioVersionConfigRef)
from .content_filter import (ContentFilterProvider, ContentFilter, LlamaGuard38bFilterConfig,
AzureContentSafetyInputFilterConfig, AzureContentSafetyOutputFilterConfig,
FilteringStreamOptions)
from .content_filtering import InputFiltering, OutputFiltering, FilteringModuleConfig
from .data_masking import (DataMaskingProviderName, MaskingMethod, ProfileEntity, DPIMethodConstant,
DPIMethodFabricatedData, DPICustomEntity, DPIStandardEntity, MaskGroundingInput,
MaskingProviderConfig, MaskingModuleConfig)
from .data_masking import (DataMaskingProviderName, MaskingMethod, MaskFileInputMethod, ProfileEntity,
DPIMethodConstant, DPIMethodFabricatedData, DPICustomEntity, DPIStandardEntity,
MaskGroundingInput, MaskingProviderConfig, MaskingModuleConfig)
from .document_grounding import (GroundingType, DataRepositoryType, DocumentGroundingFilter,
DocumentGroundingPlaceholders, DocumentGroundingConfig, GroundingModuleConfig,
KeyValueListPair, DocumentMetadataKeyValueListPairs, GroundingSearchConfig)
from .embeddings import (EmbeddingsEncodingFormat, EmbeddingsInputType, EmbeddingsModelParams, EmbeddingsModelDetails,
EmbeddingsModelConfig, EmbeddingsModuleConfigs, EmbeddingsOrchestrationConfig, EmbeddingsInput,
EmbeddingsUsage, EmbeddingResult, EmbeddingsResponse, EmbeddingsPostResponse, EmbeddingsRequest)
EmbeddingMultiFormat, EmbeddingsUsage, EmbeddingResult, EmbeddingsResponse,
EmbeddingsPostResponse, EmbeddingsRequest)
from .llama_guard_3_filter import LlamaGuard38bFilter
from .llm_model_details import LLMModelDetails
from .message import (SystemMessage, UserMessage, AssistantMessage, ToolChatMessage, DeveloperChatMessage, ChatMessage,
ResponseChatMessage, FunctionCall, MessageToolCall, ReasoningBlock)
from .multimodal_items import ImageDetailLevel, TextPart, ImageUrl, ImagePart, ContentPart, ImageItem
from .multimodal_items import (ImageDetailLevel, TextPart, ImageUrl, ImagePart, ContentPart, ImageItem,
FileContent, FilePart, FileItem)
from .response import (CacheCreationTokenDetails, PromptTokensDetails, CompletionTokensDetails, TokenUsage, GenericModuleResult, TopLogprob,
ChatCompletionTokenLogprob, ChoiceLogprobs, LLMChoice, StreamFunctionObject, StreamToolCall,
StreamDelta, StreamLLMChoice, Citation, LLMModuleResult, StreamLLMModuleResult, ModuleResults,
StreamModuleResults, SAPAPIError, SAPAPIErrorStreaming, CompletionPostResponse,
StreamCompletionPostResponse, ErrorResponse, ErrorResponseStreaming, OrchestrationResponseWithRetries)
from .request_headers import OrchestrationRequestHeaders
from .response_format import ResponseFormatText, ResponseFormatJsonObject, ResponseFormatJsonSchema, JSONResponseSchema
from .streaming import GlobalStreamOptions
from .template import Template, PromptTemplatingModuleConfig
Expand All @@ -45,6 +49,7 @@

# config
"ModuleConfig", "OrchestrationConfig", "OrchestrationConfigReference",
"PartialPromptTemplatingModuleConfig", "PartialModuleConfigs", "PartialOrchestrationConfig",
"CompletionRequestConfigurationReferenceByIdConfigRef",
"CompletionRequestConfigurationReferenceByNameScenarioVersionConfigRef",

Expand All @@ -56,8 +61,9 @@
"InputFiltering", "OutputFiltering", "FilteringModuleConfig",

# data_masking
"DataMaskingProviderName", "MaskingMethod", "ProfileEntity", "DPIMethodConstant", "DPIMethodFabricatedData",
"DPICustomEntity", "DPIStandardEntity", "MaskGroundingInput", "MaskingProviderConfig", "MaskingModuleConfig",
"DataMaskingProviderName", "MaskingMethod", "MaskFileInputMethod", "ProfileEntity", "DPIMethodConstant",
"DPIMethodFabricatedData", "DPICustomEntity", "DPIStandardEntity", "MaskGroundingInput", "MaskingProviderConfig",
"MaskingModuleConfig",

# document_grounding
"GroundingType", "DataRepositoryType", "DocumentGroundingFilter", "DocumentGroundingPlaceholders",
Expand All @@ -67,7 +73,8 @@
# embeddings
"EmbeddingsEncodingFormat", "EmbeddingsInputType", "EmbeddingsModelParams", "EmbeddingsModelDetails",
"EmbeddingsModelConfig", "EmbeddingsModuleConfigs", "EmbeddingsOrchestrationConfig", "EmbeddingsInput",
"EmbeddingsUsage", "EmbeddingResult", "EmbeddingsResponse", "EmbeddingsPostResponse", "EmbeddingsRequest",
"EmbeddingMultiFormat", "EmbeddingsUsage", "EmbeddingResult", "EmbeddingsResponse",
"EmbeddingsPostResponse", "EmbeddingsRequest",

# llama_guard_3_filter
"LlamaGuard38bFilter",
Expand All @@ -81,6 +88,7 @@

# multimodal_items
"ImageDetailLevel", "TextPart", "ImageUrl", "ImagePart", "ContentPart", "ImageItem",
"FileContent", "FilePart", "FileItem",

# response
"CacheCreationTokenDetails", "PromptTokensDetails", "CompletionTokensDetails", "TokenUsage", "GenericModuleResult", "TopLogprob",
Expand All @@ -89,6 +97,9 @@
"StreamModuleResults", "SAPAPIError", "SAPAPIErrorStreaming", "CompletionPostResponse",
"StreamCompletionPostResponse", "ErrorResponse", "ErrorResponseStreaming", "OrchestrationResponseWithRetries",

# request_headers
"OrchestrationRequestHeaders",

# response_format
"ResponseFormatText", "ResponseFormatJsonObject", "ResponseFormatJsonSchema", "JSONResponseSchema",

Expand Down
61 changes: 60 additions & 1 deletion packages/gen/gen_ai_hub/orchestration_v2/models/config.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,10 @@
from gen_ai_hub.orchestration_v2.models.content_filtering import FilteringModuleConfig
from gen_ai_hub.orchestration_v2.models.data_masking import MaskingModuleConfig
from gen_ai_hub.orchestration_v2.models.document_grounding import GroundingModuleConfig
from gen_ai_hub.orchestration_v2.models.llm_model_details import LLMModelDetails
from gen_ai_hub.orchestration_v2.models.streaming import GlobalStreamOptions
from gen_ai_hub.orchestration_v2.models.template import PromptTemplatingModuleConfig
from gen_ai_hub.orchestration_v2.models.template import PromptTemplatingModuleConfig, Template
from gen_ai_hub.orchestration_v2.models.template_ref import TemplateRef
from gen_ai_hub.orchestration_v2.models.translation import TranslationModuleConfig


Expand Down Expand Up @@ -59,6 +61,62 @@ class OrchestrationConfig(BaseModel):
stream: Optional[GlobalStreamOptions] = None


class PartialPromptTemplatingModuleConfig(BaseModel):
"""
Partial prompt templating configuration for use with config_ref overrides.

Every field is optional so that only the parts to override need to be provided;
the referenced configuration supplies the rest.

Args:
prompt: Optional prompt template override (inline Template or TemplateRef).

model: Optional model override. Unlike the non-partial config, model is optional
here so that only the prompt can be overridden without repeating the model config.
"""
prompt: Optional[Template | TemplateRef] = None
model: Optional[LLMModelDetails] = None


class PartialModuleConfigs(BaseModel):
"""
Partial module configuration for use with config_ref overrides.

Every module is optional; only the modules provided here override the referenced config.

Args:
prompt_templating: Optional partial prompt templating override.

filtering: Optional filtering module override.

masking: Optional masking module override.

grounding: Optional grounding module override.

translation: Optional translation module override.
"""
prompt_templating: Optional[PartialPromptTemplatingModuleConfig] = None
filtering: Optional[FilteringModuleConfig] = None
masking: Optional[MaskingModuleConfig] = None
grounding: Optional[GroundingModuleConfig] = None
translation: Optional[TranslationModuleConfig] = None


class PartialOrchestrationConfig(BaseModel):
"""
Partial orchestration configuration used to override a referenced config (config_ref).

The referenced configuration is the base; the fields provided here are merged on top.

Args:
modules: Optional partial module configurations to override.

stream: Optional streaming configuration to override.
"""
modules: Optional[PartialModuleConfigs] = None
stream: Optional[GlobalStreamOptions] = None


class CompletionRequestConfigurationReferenceByIdConfigRef(BaseModel):
"""Represents a reference to an orchestration config identified by a unique ID.

Expand Down Expand Up @@ -86,5 +144,6 @@ class CompletionRequestConfigurationReferenceByNameScenarioVersionConfigRef(Base
CompletionRequestConfigurationReferenceByNameScenarioVersionConfigRef)

__all__ = ["ModuleConfig", "OrchestrationConfig", "OrchestrationConfigReference",
"PartialPromptTemplatingModuleConfig", "PartialModuleConfigs", "PartialOrchestrationConfig",
"CompletionRequestConfigurationReferenceByIdConfigRef",
"CompletionRequestConfigurationReferenceByNameScenarioVersionConfigRef"]
23 changes: 21 additions & 2 deletions packages/gen/gen_ai_hub/orchestration_v2/models/data_masking.py
Original file line number Diff line number Diff line change
Expand Up @@ -166,6 +166,21 @@ class MaskGroundingInput(BaseModel):
"""
enabled: bool = False

class MaskFileInputMethod(str, Enum):
"""
Enumerates the supported masking methods for file inputs.

This enum defines how file inputs are handled by the data masking module. It is required if file inputs
are provided.

Values:
ANONYMIZATION: Irreversibly replaces sensitive data in file inputs with placeholders.

SKIP: Skips masking of file inputs, leaving them unchanged.
"""
ANONYMIZATION = "anonymization"
SKIP = "skip"


class MaskingProviderConfig(BaseModel):
"""
Expand All @@ -183,12 +198,15 @@ class MaskingProviderConfig(BaseModel):
allowlist: A list of strings that should not be masked.

mask_grounding_input: A flag indicating whether to mask input to the grounding module.

mask_file_input_method: The method of masking to apply to file inputs. Required if file inputs are provided.
"""
type_: DataMaskingProviderName = Field(default=DataMaskingProviderName.SAP_DATA_PRIVACY_INTEGRATION, alias="type")
method: MaskingMethod
entities: List[Union[DPIStandardEntity, DPICustomEntity]]
allowlist: Optional[List[str]] = None
mask_grounding_input: Optional[MaskGroundingInput] = None
mask_file_input_method: Optional[MaskFileInputMethod] = None

class MaskingModuleConfig(BaseModel):
"""
Expand Down Expand Up @@ -217,5 +235,6 @@ def enforce_exactly_one_provider_list(self):

return self

__all__ = ["DataMaskingProviderName", "MaskingMethod", "ProfileEntity", "DPIMethodConstant", "DPIMethodFabricatedData",
"DPICustomEntity", "DPIStandardEntity", "MaskGroundingInput", "MaskingProviderConfig", "MaskingModuleConfig"]
__all__ = ["DataMaskingProviderName", "MaskingMethod", "MaskFileInputMethod", "ProfileEntity", "DPIMethodConstant",
"DPIMethodFabricatedData", "DPICustomEntity", "DPIStandardEntity", "MaskGroundingInput",
"MaskingProviderConfig", "MaskingModuleConfig"]
Loading
Loading