Просмотр исходного кода

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

tags/1.3.0
Novice 6 месяцев назад
Родитель
Сommit
f191d372f0
Аккаунт пользователя с таким Email не найден
1 измененных файлов: 12 добавлений и 2 удалений
  1. 12
    2
      api/core/model_runtime/entities/message_entities.py

+ 12
- 2
api/core/model_runtime/entities/message_entities.py Просмотреть файл

@@ -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):
"""

Загрузка…
Отмена
Сохранить