diff options
| author | blackhao <13851610112@163.com> | 2025-12-05 20:40:40 -0600 |
|---|---|---|
| committer | blackhao <13851610112@163.com> | 2025-12-05 20:40:40 -0600 |
| commit | d9868550e66fe8aaa7fff55a8e24b871ee51e3b1 (patch) | |
| tree | 147757f77def085c5649c4d930d5a51ff44a1e3d /backend/app/schemas.py | |
| parent | d87c364dc43ca241fadc9dccbad9ec8896c93a1e (diff) | |
init: add project files and ignore secrets
Diffstat (limited to 'backend/app/schemas.py')
| -rw-r--r-- | backend/app/schemas.py | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/backend/app/schemas.py b/backend/app/schemas.py new file mode 100644 index 0000000..ac90bc1 --- /dev/null +++ b/backend/app/schemas.py @@ -0,0 +1,52 @@ +from pydantic import BaseModel, Field +from typing import List, Optional, Dict, Any, Union +from enum import Enum +import time + +class Role(str, Enum): + USER = "user" + ASSISTANT = "assistant" + SYSTEM = "system" + +class Message(BaseModel): + id: str = Field(..., description="Unique ID for the message") + role: Role + content: str + timestamp: float = Field(default_factory=time.time) + # Metadata to track where this message came from + source_node_id: Optional[str] = None + model_used: Optional[str] = None + +class Context(BaseModel): + messages: List[Message] = [] + +class ModelProvider(str, Enum): + OPENAI = "openai" + GOOGLE = "google" + +class LLMConfig(BaseModel): + provider: ModelProvider + model_name: str + temperature: float = 0.7 + max_tokens: int = 1000 + system_prompt: Optional[str] = None + api_key: Optional[str] = None # Optional override, usually from env + +class MergeStrategy(str, Enum): + RAW = "raw" + SMART = "smart" + +class NodeRunRequest(BaseModel): + node_id: str + incoming_contexts: List[Context] = [] + user_prompt: str + config: LLMConfig + merge_strategy: MergeStrategy = MergeStrategy.SMART + +class NodeRunResponse(BaseModel): + node_id: str + output_context: Context + response_content: str + raw_response: Optional[Dict[str, Any]] = None + usage: Optional[Dict[str, Any]] = None + |
