From b6779c9a115e9046c09b44b4705852f63608523d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcel=20Wien=C3=B6bst?= Date: Tue, 25 Aug 2026 16:42:22 +0200 Subject: [PATCH 01/12] fix: add reasoning_content field to fix pydantic validation error --- .../gen_ai_hub/orchestration_v2/models/message.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/packages/gen/gen_ai_hub/orchestration_v2/models/message.py b/packages/gen/gen_ai_hub/orchestration_v2/models/message.py index f098c775..55342511 100644 --- a/packages/gen/gen_ai_hub/orchestration_v2/models/message.py +++ b/packages/gen/gen_ai_hub/orchestration_v2/models/message.py @@ -59,6 +59,17 @@ class MessageToolCall(BaseModel): type: typing.Literal["function"] = "function" function: FunctionCall +class ReasoningBlock(BaseModel): + """ + The reasoning content returned by the model. + + Attributes: + content: The reasoning content. + signature: Signature string for hidden reasoning content. + """ + content: str + signature: str + class Role(str, Enum): """ @@ -182,11 +193,14 @@ class ResponseChatMessage(BaseModel): refusal: A string indicating refusal reason. tool_calls: A list of tool call objects. + + reasoning_content: A list of reasoning content blocks. """ role: Role = Role.ASSISTANT content: str refusal: Optional[str] = None tool_calls: Optional[List[MessageToolCall]] = None + reasoning_content: Optional[List[ReasoningBlock]] = None ChatMessage = Union[SystemMessage, UserMessage, AssistantMessage, ToolChatMessage, DeveloperChatMessage, ResponseChatMessage] From 9204c2921c1da840b22de225cfbd24af8644e276 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marcel=20Wien=C3=B6bst?= Date: Thu, 27 Aug 2026 14:17:06 +0200 Subject: [PATCH 02/12] add minimal unit testing --- .../tests/orchestration_v2/test_message_v2.py | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 packages/gen/tests/orchestration_v2/test_message_v2.py diff --git a/packages/gen/tests/orchestration_v2/test_message_v2.py b/packages/gen/tests/orchestration_v2/test_message_v2.py new file mode 100644 index 00000000..f4744e70 --- /dev/null +++ b/packages/gen/tests/orchestration_v2/test_message_v2.py @@ -0,0 +1,22 @@ +import unittest + +from gen_ai_hub.orchestration_v2.models.message import ( + ReasoningBlock, + ResponseChatMessage, +) + + +class TestResponseChatMessageValidation(unittest.TestCase): + + def test_reasoning_content_deserialized_from_dict(self): + msg = ResponseChatMessage.model_validate({ + "role": "assistant", + "content": "Hello", + "reasoning_content": [{"content": "I think...", "signature": "sig123"}], + }) + assert msg.reasoning_content is not None + self.assertIsInstance(msg.reasoning_content[0], ReasoningBlock) + + def test_reasoning_content_optional(self): + msg = ResponseChatMessage.model_validate({"role": "assistant", "content": "Hello"}) + self.assertIsNone(msg.reasoning_content) From f89a04a8aea773b6f6fd907a05392de6e92f9124 Mon Sep 17 00:00:00 2001 From: Sicheng Dong Date: Mon, 14 Sep 2026 14:23:10 +0200 Subject: [PATCH 03/12] add reasoning block to related model class. --- packages/gen/gen_ai_hub/orchestration_v2/__init__.py | 2 +- packages/gen/gen_ai_hub/orchestration_v2/models/message.py | 7 ++++--- .../gen/gen_ai_hub/orchestration_v2/models/response.py | 3 ++- 3 files changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/gen/gen_ai_hub/orchestration_v2/__init__.py b/packages/gen/gen_ai_hub/orchestration_v2/__init__.py index 260f0c7e..f352cc0c 100644 --- a/packages/gen/gen_ai_hub/orchestration_v2/__init__.py +++ b/packages/gen/gen_ai_hub/orchestration_v2/__init__.py @@ -40,7 +40,7 @@ # message "SystemMessage", "UserMessage", "AssistantMessage", "ToolChatMessage", "DeveloperChatMessage", - "ChatMessage", "ResponseChatMessage", "FunctionCall", "MessageToolCall", + "ChatMessage", "ResponseChatMessage", "FunctionCall", "MessageToolCall", "ReasoningBlock", # multimodal_items "ImageDetailLevel", "TextPart", "ImageUrl", "ImagePart", "ContentPart", "ImageItem", diff --git a/packages/gen/gen_ai_hub/orchestration_v2/models/message.py b/packages/gen/gen_ai_hub/orchestration_v2/models/message.py index 55342511..cecdde01 100644 --- a/packages/gen/gen_ai_hub/orchestration_v2/models/message.py +++ b/packages/gen/gen_ai_hub/orchestration_v2/models/message.py @@ -67,8 +67,8 @@ class ReasoningBlock(BaseModel): content: The reasoning content. signature: Signature string for hidden reasoning content. """ - content: str - signature: str + content: str = "" + signature: str = "" class Role(str, Enum): @@ -168,6 +168,7 @@ class AssistantMessage(BaseModel): content: Optional[Union[str, List[TextPart]]] = None refusal: Optional[str] = None tool_calls: Optional[List[MessageToolCall]] = None + reasoning_content: Optional[List[ReasoningBlock]] = None class ToolChatMessage(BaseModel): @@ -206,4 +207,4 @@ class ResponseChatMessage(BaseModel): ResponseChatMessage] __all__ = ["Role", "SystemMessage", "UserMessage", "AssistantMessage", "ToolChatMessage", "DeveloperChatMessage", - "ChatMessage", "ResponseChatMessage", "FunctionCall", "MessageToolCall"] + "ChatMessage", "ResponseChatMessage", "FunctionCall", "MessageToolCall", "ReasoningBlock"] diff --git a/packages/gen/gen_ai_hub/orchestration_v2/models/response.py b/packages/gen/gen_ai_hub/orchestration_v2/models/response.py index ca398edf..7e50a4ed 100644 --- a/packages/gen/gen_ai_hub/orchestration_v2/models/response.py +++ b/packages/gen/gen_ai_hub/orchestration_v2/models/response.py @@ -7,7 +7,7 @@ from gen_ai_hub.orchestration.models.response import ModuleResultsStreaming from gen_ai_hub.orchestration_v2.models.base import ABCBaseModel as BaseModel -from gen_ai_hub.orchestration_v2.models.message import ChatMessage, FunctionCall, ResponseChatMessage +from gen_ai_hub.orchestration_v2.models.message import ChatMessage, FunctionCall, ResponseChatMessage, ReasoningBlock class ResponseBaseModel(BaseModel): @@ -186,6 +186,7 @@ class StreamDelta(ResponseBaseModel): role: Optional[str] = None content: str tool_calls: Optional[List[StreamToolCall]] = None + reasoning_content: Optional[List[ReasoningBlock]] = None class StreamLLMChoice(ResponseBaseModel): From 4798b3d74cab4fed934ee4acef2c9263bc4e0c05 Mon Sep 17 00:00:00 2001 From: Sicheng Dong Date: Mon, 14 Sep 2026 15:47:30 +0200 Subject: [PATCH 04/12] add minimal unit tests --- .../tests/orchestration_v2/test_message_v2.py | 20 ++++++++++++++++++ .../orchestration_v2/test_response_v2.py | 21 +++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 packages/gen/tests/orchestration_v2/test_response_v2.py diff --git a/packages/gen/tests/orchestration_v2/test_message_v2.py b/packages/gen/tests/orchestration_v2/test_message_v2.py index f4744e70..ed9ba38e 100644 --- a/packages/gen/tests/orchestration_v2/test_message_v2.py +++ b/packages/gen/tests/orchestration_v2/test_message_v2.py @@ -1,6 +1,7 @@ import unittest from gen_ai_hub.orchestration_v2.models.message import ( + AssistantMessage, ReasoningBlock, ResponseChatMessage, ) @@ -20,3 +21,22 @@ def test_reasoning_content_deserialized_from_dict(self): def test_reasoning_content_optional(self): msg = ResponseChatMessage.model_validate({"role": "assistant", "content": "Hello"}) self.assertIsNone(msg.reasoning_content) + + +class TestAssistantMessageValidation(unittest.TestCase): + + def test_reasoning_content_deserialized_from_dict(self): + msg = AssistantMessage.model_validate({ + "role": "assistant", + "content": "Paris", + "reasoning_content": [{"content": "France's capital is Paris.", "signature": "sig"}], + }) + self.assertIsNotNone(msg.reasoning_content) + self.assertIsInstance(msg.reasoning_content[0], ReasoningBlock) + self.assertEqual(msg.reasoning_content[0].content, "France's capital is Paris.") + self.assertEqual(msg.reasoning_content[0].signature, "sig") + + def test_reasoning_content_optional(self): + msg = AssistantMessage.model_validate({"role": "assistant", "content": "Hello"}) + self.assertIsNone(msg.reasoning_content) + diff --git a/packages/gen/tests/orchestration_v2/test_response_v2.py b/packages/gen/tests/orchestration_v2/test_response_v2.py new file mode 100644 index 00000000..26a109f2 --- /dev/null +++ b/packages/gen/tests/orchestration_v2/test_response_v2.py @@ -0,0 +1,21 @@ +import unittest + +from gen_ai_hub.orchestration_v2.models.message import ReasoningBlock +from gen_ai_hub.orchestration_v2.models.response import StreamDelta + + +class TestStreamDeltaValidation(unittest.TestCase): + + def test_reasoning_content_deserialized_from_dict(self): + delta = StreamDelta.model_validate({ + "content": "", + "reasoning_content": [{"content": "I should respond politely.", "signature": ""}], + }) + self.assertIsNotNone(delta.reasoning_content) + self.assertIsInstance(delta.reasoning_content[0], ReasoningBlock) + self.assertEqual(delta.reasoning_content[0].content, "I should respond politely.") + + def test_reasoning_content_optional(self): + delta = StreamDelta.model_validate({"content": "Hello"}) + self.assertIsNone(delta.reasoning_content) + From 438805c085bbf18e6eedb96d33e51a9267201e05 Mon Sep 17 00:00:00 2001 From: Sicheng Dong Date: Mon, 14 Sep 2026 17:31:23 +0200 Subject: [PATCH 05/12] allow all response related class to accept extra classes. --- .../orchestration_v2/models/base.py | 28 +++++++++++++++++++ .../orchestration_v2/models/message.py | 10 +++---- .../orchestration_v2/models/response.py | 19 +------------ .../orchestration_v2/test_flat_import.py | 2 +- 4 files changed, 35 insertions(+), 24 deletions(-) diff --git a/packages/gen/gen_ai_hub/orchestration_v2/models/base.py b/packages/gen/gen_ai_hub/orchestration_v2/models/base.py index 46104613..ce4bf475 100644 --- a/packages/gen/gen_ai_hub/orchestration_v2/models/base.py +++ b/packages/gen/gen_ai_hub/orchestration_v2/models/base.py @@ -31,3 +31,31 @@ def model_dump(self, **kwargs): kwargs.setdefault("by_alias", True) kwargs.setdefault("exclude_none", True) return super().model_dump(**kwargs) + + +class ResponseBaseModel(BaseModel): + """ + Base model for API response models. + + - `extra="allow"` allows unexpected fields in responses to be accepted, + since the external API might introduce new attributes in the response. + """ + + model_config = ConfigDict( + extra="allow", + frozen=False, + ) + + +class ResponseBaseModel(BaseModel): + """ + Base model for API response models. + + - `extra="allow"` allows unexpected fields in responses to be accepted, + since the external API might introduce new attributes in the response. + """ + + model_config = ConfigDict( + extra="allow", + frozen=False, + ) diff --git a/packages/gen/gen_ai_hub/orchestration_v2/models/message.py b/packages/gen/gen_ai_hub/orchestration_v2/models/message.py index cecdde01..26179f34 100644 --- a/packages/gen/gen_ai_hub/orchestration_v2/models/message.py +++ b/packages/gen/gen_ai_hub/orchestration_v2/models/message.py @@ -10,11 +10,11 @@ from pydantic import field_validator, ValidationError -from gen_ai_hub.orchestration_v2.models.base import ABCBaseModel as BaseModel +from gen_ai_hub.orchestration_v2.models.base import ABCBaseModel as BaseModel, ResponseBaseModel from gen_ai_hub.orchestration_v2.models.multimodal_items import ContentPart, ImageItem, TextPart, ImageUrl, ImagePart -class FunctionCall(BaseModel): +class FunctionCall(ResponseBaseModel): """ Represents a function call with its name and arguments. @@ -44,7 +44,7 @@ def parse_arguments(self) -> dict: return json.loads(self.arguments) -class MessageToolCall(BaseModel): +class MessageToolCall(ResponseBaseModel): """ The tool calls generated by the model, such as function calls. @@ -59,7 +59,7 @@ class MessageToolCall(BaseModel): type: typing.Literal["function"] = "function" function: FunctionCall -class ReasoningBlock(BaseModel): +class ReasoningBlock(ResponseBaseModel): """ The reasoning content returned by the model. @@ -181,7 +181,7 @@ class DeveloperChatMessage(BaseModel): role: Role = Role.DEVELOPER content: Union[str, List[TextPart]] -class ResponseChatMessage(BaseModel): +class ResponseChatMessage(ResponseBaseModel): """ Represents a response message in a conversation. diff --git a/packages/gen/gen_ai_hub/orchestration_v2/models/response.py b/packages/gen/gen_ai_hub/orchestration_v2/models/response.py index 7e50a4ed..6b45c80d 100644 --- a/packages/gen/gen_ai_hub/orchestration_v2/models/response.py +++ b/packages/gen/gen_ai_hub/orchestration_v2/models/response.py @@ -6,27 +6,10 @@ from pydantic import ConfigDict, Field from gen_ai_hub.orchestration.models.response import ModuleResultsStreaming -from gen_ai_hub.orchestration_v2.models.base import ABCBaseModel as BaseModel +from gen_ai_hub.orchestration_v2.models.base import ResponseBaseModel from gen_ai_hub.orchestration_v2.models.message import ChatMessage, FunctionCall, ResponseChatMessage, ReasoningBlock -class ResponseBaseModel(BaseModel): - """ - Abstract base model that extends Pydantic's BaseModel and ABC. - - - `extra="allow"` allows unexpected fields in responses to be accepted, - since the external API might introduce new attributes in the response. - - This enforces consistent and safe serialization behavior across all - derived models. - """ - - model_config = ConfigDict( - extra="allow", - frozen=False, - ) - - class PromptTokensDetails(ResponseBaseModel): """ Represents the details of prompt tokens used in a specific operation. diff --git a/packages/gen/tests/orchestration_v2/test_flat_import.py b/packages/gen/tests/orchestration_v2/test_flat_import.py index 7606ffac..8031d898 100644 --- a/packages/gen/tests/orchestration_v2/test_flat_import.py +++ b/packages/gen/tests/orchestration_v2/test_flat_import.py @@ -36,7 +36,7 @@ # message "SystemMessage", "UserMessage", "AssistantMessage", "ToolChatMessage", "DeveloperChatMessage", - "ChatMessage", "ResponseChatMessage", "FunctionCall", "MessageToolCall", + "ChatMessage", "ResponseChatMessage", "FunctionCall", "MessageToolCall", "ReasoningBlock", # multimodal_items "ImageDetailLevel", "TextPart", "ImageUrl", "ImagePart", "ContentPart", "ImageItem", From 8581e1552c23a9a175c4012f0913bc017ce2c035 Mon Sep 17 00:00:00 2001 From: Sicheng Dong Date: Mon, 14 Sep 2026 17:37:48 +0200 Subject: [PATCH 06/12] cleaning --- .../gen_ai_hub/orchestration_v2/models/base.py | 15 --------------- 1 file changed, 15 deletions(-) diff --git a/packages/gen/gen_ai_hub/orchestration_v2/models/base.py b/packages/gen/gen_ai_hub/orchestration_v2/models/base.py index ce4bf475..3a29f32d 100644 --- a/packages/gen/gen_ai_hub/orchestration_v2/models/base.py +++ b/packages/gen/gen_ai_hub/orchestration_v2/models/base.py @@ -32,21 +32,6 @@ def model_dump(self, **kwargs): kwargs.setdefault("exclude_none", True) return super().model_dump(**kwargs) - -class ResponseBaseModel(BaseModel): - """ - Base model for API response models. - - - `extra="allow"` allows unexpected fields in responses to be accepted, - since the external API might introduce new attributes in the response. - """ - - model_config = ConfigDict( - extra="allow", - frozen=False, - ) - - class ResponseBaseModel(BaseModel): """ Base model for API response models. From 9971fc370799971cb5c29e12105d3f948023bbd1 Mon Sep 17 00:00:00 2001 From: Sicheng Dong Date: Mon, 14 Sep 2026 17:57:40 +0200 Subject: [PATCH 07/12] fix the ci checks --- packages/gen/gen_ai_hub/orchestration_v2/models/__init__.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/packages/gen/gen_ai_hub/orchestration_v2/models/__init__.py b/packages/gen/gen_ai_hub/orchestration_v2/models/__init__.py index 790b0b75..efb0d5f5 100644 --- a/packages/gen/gen_ai_hub/orchestration_v2/models/__init__.py +++ b/packages/gen/gen_ai_hub/orchestration_v2/models/__init__.py @@ -18,7 +18,7 @@ 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) + ResponseChatMessage, FunctionCall, MessageToolCall, ReasoningBlock) from .multimodal_items import ImageDetailLevel, TextPart, ImageUrl, ImagePart, ContentPart, ImageItem from .response import (PromptTokensDetails, CompletionTokensDetails, TokenUsage, GenericModuleResult, TopLogprob, ChatCompletionTokenLogprob, ChoiceLogprobs, LLMChoice, StreamFunctionObject, StreamToolCall, @@ -73,7 +73,7 @@ # message "SystemMessage", "UserMessage", "AssistantMessage", "ToolChatMessage", "DeveloperChatMessage", - "ChatMessage", "ResponseChatMessage", "FunctionCall", "MessageToolCall", + "ChatMessage", "ResponseChatMessage", "FunctionCall", "MessageToolCall", "ReasoningBlock", # multimodal_items "ImageDetailLevel", "TextPart", "ImageUrl", "ImagePart", "ContentPart", "ImageItem", From fe3169830d87284f4f3567e4162e628085b03877 Mon Sep 17 00:00:00 2001 From: Sicheng Dong Date: Tue, 15 Sep 2026 13:00:09 +0200 Subject: [PATCH 08/12] use ResponseBaseModel for embeddings response classes --- .../gen_ai_hub/orchestration_v2/models/embeddings.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/gen/gen_ai_hub/orchestration_v2/models/embeddings.py b/packages/gen/gen_ai_hub/orchestration_v2/models/embeddings.py index b51ca78f..2ef95b7c 100644 --- a/packages/gen/gen_ai_hub/orchestration_v2/models/embeddings.py +++ b/packages/gen/gen_ai_hub/orchestration_v2/models/embeddings.py @@ -7,7 +7,7 @@ from pydantic import Field -from gen_ai_hub.orchestration_v2.models.base import ABCBaseModel as BaseModel +from gen_ai_hub.orchestration_v2.models.base import ABCBaseModel as BaseModel, ResponseBaseModel from gen_ai_hub.orchestration_v2.models.data_masking import MaskingModuleConfig @@ -117,7 +117,7 @@ class EmbeddingsInput(BaseModel): type_: Optional[EmbeddingsInputType] = Field(default=None, alias="type") -class EmbeddingsUsage(BaseModel): +class EmbeddingsUsage(ResponseBaseModel): """ Token usage information for the embeddings request. @@ -129,7 +129,7 @@ class EmbeddingsUsage(BaseModel): total_tokens: int -class EmbeddingResult(BaseModel): +class EmbeddingResult(ResponseBaseModel): """ A single embedding result. @@ -143,7 +143,7 @@ class EmbeddingResult(BaseModel): index: int -class EmbeddingsResponse(BaseModel): +class EmbeddingsResponse(ResponseBaseModel): """ The response from the embedding model, following OpenAI specification. @@ -159,7 +159,7 @@ class EmbeddingsResponse(BaseModel): usage: EmbeddingsUsage -class EmbeddingsPostResponse(BaseModel): +class EmbeddingsPostResponse(ResponseBaseModel): """ Response for an embeddings POST request. From 61d757efb18ba66f3bf162fb152ba92dadeb2328 Mon Sep 17 00:00:00 2001 From: Sicheng Dong Date: Tue, 15 Sep 2026 15:58:22 +0200 Subject: [PATCH 09/12] set ResponseBaseModel to AssistantMessage --- packages/gen/gen_ai_hub/orchestration_v2/models/message.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/gen/gen_ai_hub/orchestration_v2/models/message.py b/packages/gen/gen_ai_hub/orchestration_v2/models/message.py index 26179f34..989f1740 100644 --- a/packages/gen/gen_ai_hub/orchestration_v2/models/message.py +++ b/packages/gen/gen_ai_hub/orchestration_v2/models/message.py @@ -149,7 +149,7 @@ def content_validation(cls, content): # pylint: disable=no-self-argument return mapped_content -class AssistantMessage(BaseModel): +class AssistantMessage(ResponseBaseModel): """ Represents an assistant message in a prompt or conversation template. From f084a7a4fdcfbf4e9aa9ec711e3aad6ccdec7157 Mon Sep 17 00:00:00 2001 From: Sicheng Dong Date: Tue, 15 Sep 2026 16:01:37 +0200 Subject: [PATCH 10/12] fix the test code style --- packages/gen/tests/orchestration_v2/test_message_v2.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/gen/tests/orchestration_v2/test_message_v2.py b/packages/gen/tests/orchestration_v2/test_message_v2.py index ed9ba38e..0ffdf9ec 100644 --- a/packages/gen/tests/orchestration_v2/test_message_v2.py +++ b/packages/gen/tests/orchestration_v2/test_message_v2.py @@ -15,7 +15,7 @@ def test_reasoning_content_deserialized_from_dict(self): "content": "Hello", "reasoning_content": [{"content": "I think...", "signature": "sig123"}], }) - assert msg.reasoning_content is not None + self.assert_IsNotNone(msg.reasoning_content) self.assertIsInstance(msg.reasoning_content[0], ReasoningBlock) def test_reasoning_content_optional(self): From 38c78595c8baa948155aceaa6984c38b32ee12c4 Mon Sep 17 00:00:00 2001 From: Sicheng Dong Date: Tue, 15 Sep 2026 16:18:52 +0200 Subject: [PATCH 11/12] fix the typo --- packages/gen/tests/orchestration_v2/test_message_v2.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/gen/tests/orchestration_v2/test_message_v2.py b/packages/gen/tests/orchestration_v2/test_message_v2.py index 0ffdf9ec..90ce2e77 100644 --- a/packages/gen/tests/orchestration_v2/test_message_v2.py +++ b/packages/gen/tests/orchestration_v2/test_message_v2.py @@ -15,7 +15,7 @@ def test_reasoning_content_deserialized_from_dict(self): "content": "Hello", "reasoning_content": [{"content": "I think...", "signature": "sig123"}], }) - self.assert_IsNotNone(msg.reasoning_content) + self.assertIsNotNone(msg.reasoning_content) self.assertIsInstance(msg.reasoning_content[0], ReasoningBlock) def test_reasoning_content_optional(self): From a452d8de52815663374ec2e9ba5b8d6dc170aca6 Mon Sep 17 00:00:00 2001 From: Sicheng Dong Date: Tue, 15 Sep 2026 17:32:11 +0200 Subject: [PATCH 12/12] switch AssistantMessage back to BaseModel --- packages/gen/gen_ai_hub/orchestration_v2/models/message.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/gen/gen_ai_hub/orchestration_v2/models/message.py b/packages/gen/gen_ai_hub/orchestration_v2/models/message.py index 989f1740..26179f34 100644 --- a/packages/gen/gen_ai_hub/orchestration_v2/models/message.py +++ b/packages/gen/gen_ai_hub/orchestration_v2/models/message.py @@ -149,7 +149,7 @@ def content_validation(cls, content): # pylint: disable=no-self-argument return mapped_content -class AssistantMessage(ResponseBaseModel): +class AssistantMessage(BaseModel): """ Represents an assistant message in a prompt or conversation template.