mirror of
https://git.mirrors.martin98.com/https://github.com/langgenius/dify.git
synced 2025-05-18 04:26:54 +08:00
28 lines
967 B
Python
28 lines
967 B
Python
import pydantic
|
|
from pydantic import BaseModel
|
|
|
|
from core.model_runtime.entities.message_entities import PromptMessageContentUnionTypes
|
|
|
|
|
|
def dump_model(model: BaseModel) -> dict:
|
|
if hasattr(pydantic, "model_dump"):
|
|
# FIXME mypy error, try to fix it instead of using type: ignore
|
|
return pydantic.model_dump(model) # type: ignore
|
|
else:
|
|
return model.model_dump()
|
|
|
|
|
|
def convert_llm_result_chunk_to_str(content: None | str | list[PromptMessageContentUnionTypes]) -> str:
|
|
if content is None:
|
|
message_text = ""
|
|
elif isinstance(content, str):
|
|
message_text = content
|
|
elif isinstance(content, list):
|
|
# Assuming the list contains PromptMessageContent objects with a "data" attribute
|
|
message_text = "".join(
|
|
item.data if hasattr(item, "data") and isinstance(item.data, str) else str(item) for item in content
|
|
)
|
|
else:
|
|
message_text = str(content)
|
|
return message_text
|