123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- from enum import StrEnum
- from typing import Any, Optional, Union
- from pydantic import BaseModel, Field
- from core.tools.entities.tool_entities import ToolInvokeMessage, ToolProviderType
- class AgentToolEntity(BaseModel):
- """
- Agent Tool Entity.
- """
- provider_type: ToolProviderType
- provider_id: str
- tool_name: str
- tool_parameters: dict[str, Any] = Field(default_factory=dict)
- plugin_unique_identifier: str | None = None
- class AgentPromptEntity(BaseModel):
- """
- Agent Prompt Entity.
- """
- first_prompt: str
- next_iteration: str
- class AgentScratchpadUnit(BaseModel):
- """
- Agent First Prompt Entity.
- """
- class Action(BaseModel):
- """
- Action Entity.
- """
- action_name: str
- action_input: Union[dict, str]
- def to_dict(self) -> dict:
- """
- Convert to dictionary.
- """
- return {
- "action": self.action_name,
- "action_input": self.action_input,
- }
- agent_response: Optional[str] = None
- thought: Optional[str] = None
- action_str: Optional[str] = None
- observation: Optional[str] = None
- action: Optional[Action] = None
- def is_final(self) -> bool:
- """
- Check if the scratchpad unit is final.
- """
- return self.action is None or (
- "final" in self.action.action_name.lower() and "answer" in self.action.action_name.lower()
- )
- class AgentEntity(BaseModel):
- """
- Agent Entity.
- """
- class Strategy(StrEnum):
- """
- Agent Strategy.
- """
- CHAIN_OF_THOUGHT = "chain-of-thought"
- FUNCTION_CALLING = "function-calling"
- provider: str
- model: str
- strategy: Strategy
- prompt: Optional[AgentPromptEntity] = None
- tools: Optional[list[AgentToolEntity]] = None
- max_iteration: int = 5
- class AgentInvokeMessage(ToolInvokeMessage):
- """
- Agent Invoke Message.
- """
- pass
|