Nevar pievienot vairāk kā 25 tēmas Tēmai ir jāsākas ar burtu vai ciparu, tā var saturēt domu zīmes ('-') un var būt līdz 35 simboliem gara.

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. from enum import StrEnum
  2. from typing import Any, Optional, Union
  3. from pydantic import BaseModel, Field
  4. from core.tools.entities.tool_entities import ToolInvokeMessage, ToolProviderType
  5. class AgentToolEntity(BaseModel):
  6. """
  7. Agent Tool Entity.
  8. """
  9. provider_type: ToolProviderType
  10. provider_id: str
  11. tool_name: str
  12. tool_parameters: dict[str, Any] = Field(default_factory=dict)
  13. plugin_unique_identifier: str | None = None
  14. credential_id: str | None = None
  15. class AgentPromptEntity(BaseModel):
  16. """
  17. Agent Prompt Entity.
  18. """
  19. first_prompt: str
  20. next_iteration: str
  21. class AgentScratchpadUnit(BaseModel):
  22. """
  23. Agent First Prompt Entity.
  24. """
  25. class Action(BaseModel):
  26. """
  27. Action Entity.
  28. """
  29. action_name: str
  30. action_input: Union[dict, str]
  31. def to_dict(self) -> dict:
  32. """
  33. Convert to dictionary.
  34. """
  35. return {
  36. "action": self.action_name,
  37. "action_input": self.action_input,
  38. }
  39. agent_response: Optional[str] = None
  40. thought: Optional[str] = None
  41. action_str: Optional[str] = None
  42. observation: Optional[str] = None
  43. action: Optional[Action] = None
  44. def is_final(self) -> bool:
  45. """
  46. Check if the scratchpad unit is final.
  47. """
  48. return self.action is None or (
  49. "final" in self.action.action_name.lower() and "answer" in self.action.action_name.lower()
  50. )
  51. class AgentEntity(BaseModel):
  52. """
  53. Agent Entity.
  54. """
  55. class Strategy(StrEnum):
  56. """
  57. Agent Strategy.
  58. """
  59. CHAIN_OF_THOUGHT = "chain-of-thought"
  60. FUNCTION_CALLING = "function-calling"
  61. provider: str
  62. model: str
  63. strategy: Strategy
  64. prompt: Optional[AgentPromptEntity] = None
  65. tools: Optional[list[AgentToolEntity]] = None
  66. max_iteration: int = 10
  67. class AgentInvokeMessage(ToolInvokeMessage):
  68. """
  69. Agent Invoke Message.
  70. """
  71. pass