entities.py 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. from typing import Any, Literal, Optional, Union
  2. from pydantic import BaseModel
  3. from core.prompt.entities.advanced_prompt_entities import ChatModelMessage, CompletionModelPromptTemplate, MemoryConfig
  4. from core.workflow.entities.base_node_data_entities import BaseNodeData
  5. class ModelConfig(BaseModel):
  6. """
  7. Model Config.
  8. """
  9. provider: str
  10. name: str
  11. mode: str
  12. completion_params: dict[str, Any] = {}
  13. class ContextConfig(BaseModel):
  14. """
  15. Context Config.
  16. """
  17. enabled: bool
  18. variable_selector: Optional[list[str]] = None
  19. class VisionConfig(BaseModel):
  20. """
  21. Vision Config.
  22. """
  23. class Configs(BaseModel):
  24. """
  25. Configs.
  26. """
  27. detail: Literal['low', 'high']
  28. enabled: bool
  29. configs: Optional[Configs] = None
  30. class LLMNodeData(BaseNodeData):
  31. """
  32. LLM Node Data.
  33. """
  34. model: ModelConfig
  35. prompt_template: Union[list[ChatModelMessage], CompletionModelPromptTemplate]
  36. memory: Optional[MemoryConfig] = None
  37. context: ContextConfig
  38. vision: VisionConfig