| from uuid import UUID | |
| from datetime import datetime | |
| from typing import Optional, List | |
| from pydantic import BaseModel, Field | |
| class Agent(BaseModel): | |
| id: str | |
| name: str | |
| project_id: str | |
| input_variables: Optional[List[str]] | |
| prompt: str | |
| is_template: Optional[bool] | |
| routes: Optional[List[str]] | |
| routes_description: Optional[List[str]] | |
| output_collector: Optional[str] | |
| output_variables: Optional[List[str]] | |
| input_api_endpoints: Optional[List[str]] | |
| output_api_endpoints: Optional[List[str]] | |
| conversation_style: float = Field(..., ge=-9.9, le=9.9) | |
| creativity: float = Field(..., ge=0.0, le=1.0) | |
| fallback_message: str | |
| fallback_threshold: float | |
| class OutputCollector(BaseModel): | |
| id: str | |
| project_id: str | |
| keys: List[str] | |
| descriptions: List[str] | |
| data_types: List[str] | |
| class APIEndpoint(BaseModel): | |
| id: str | |
| project_id: str | |
| name: str | |
| description: Optional[str] | |
| input_variables: Optional[list] | |
| url: str | |
| method: str | |
| headers: Optional[dict] | |
| params: Optional[dict] | |
| request_body: Optional[dict] | |
| html_to_markdown: Optional[bool] | |
| html_tags_to_extract: Optional[list] | |
| response_type: Optional[str] | |