12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879 |
- from enum import Enum
- from typing import Any, Literal, Optional, Union
- from pydantic import BaseModel
- class AgentToolEntity(BaseModel):
- """
- Agent Tool Entity.
- """
- provider_type: Literal["builtin", "api", "workflow"]
- provider_id: str
- tool_name: str
- tool_parameters: dict[str, Any] = {}
- 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(Enum):
- """
- Agent Strategy.
- """
- CHAIN_OF_THOUGHT = 'chain-of-thought'
- FUNCTION_CALLING = 'function-calling'
- provider: str
- model: str
- strategy: Strategy
- prompt: Optional[AgentPromptEntity] = None
- tools: list[AgentToolEntity] = None
- max_iteration: int = 5
|