You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

123456789101112131415161718192021222324252627
  1. import pydantic
  2. from pydantic import BaseModel
  3. from core.model_runtime.entities.message_entities import PromptMessageContentUnionTypes
  4. def dump_model(model: BaseModel) -> dict:
  5. if hasattr(pydantic, "model_dump"):
  6. # FIXME mypy error, try to fix it instead of using type: ignore
  7. return pydantic.model_dump(model) # type: ignore
  8. else:
  9. return model.model_dump()
  10. def convert_llm_result_chunk_to_str(content: None | str | list[PromptMessageContentUnionTypes]) -> str:
  11. if content is None:
  12. message_text = ""
  13. elif isinstance(content, str):
  14. message_text = content
  15. elif isinstance(content, list):
  16. # Assuming the list contains PromptMessageContent objects with a "data" attribute
  17. message_text = "".join(
  18. item.data if hasattr(item, "data") and isinstance(item.data, str) else str(item) for item in content
  19. )
  20. else:
  21. message_text = str(content)
  22. return message_text