Selaa lähdekoodia

fix(promptMessage): correct field_serializer implementation for content serialization (#18458)

tags/1.3.0
Novice 6 kuukautta sitten
vanhempi
commit
f191d372f0
No account linked to committer's email address
1 muutettua tiedostoa jossa 12 lisäystä ja 2 poistoa
  1. 12
    2
      api/core/model_runtime/entities/message_entities.py

+ 12
- 2
api/core/model_runtime/entities/message_entities.py Näytä tiedosto

@@ -1,8 +1,8 @@
from collections.abc import Sequence
from enum import Enum, StrEnum
from typing import Optional
from typing import Any, Optional, Union

from pydantic import BaseModel, Field, field_validator
from pydantic import BaseModel, Field, field_serializer, field_validator


class PromptMessageRole(Enum):
@@ -135,6 +135,16 @@ class PromptMessage(BaseModel):
"""
return not self.content

@field_serializer("content")
def serialize_content(
self, content: Optional[Union[str, Sequence[PromptMessageContent]]]
) -> Optional[str | list[dict[str, Any] | PromptMessageContent] | Sequence[PromptMessageContent]]:
if content is None or isinstance(content, str):
return content
if isinstance(content, list):
return [item.model_dump() if hasattr(item, "model_dump") else item for item in content]
return content


class UserPromptMessage(PromptMessage):
"""

Loading…
Peruuta
Tallenna