testbed / src /models /models.py
sunwpark
Restrict Space to Plato Claude Haiku and isolate Langfuse traces
59832d5
Raw
History Blame Contribute Delete
1.04 kB
from pydantic import BaseModel
from typing import List, Optional, Dict, Any
from enum import Enum
class APIType(str, Enum):
OPENAI = "openai"
GEMINI = "gemini"
CLAUDE = "claude"
class Message(BaseModel):
role: str # "user", "assistant", "system"
content: str
timestamp: Optional[str] = None
class ChatRequest(BaseModel):
message: str
api_type: APIType = APIType.CLAUDE
model: Optional[str] = None # 특정 모델 선택
system_prompt: Optional[str] = None
character_name: Optional[str] = None
session_id: Optional[str] = None
conversation_history: Optional[List[Message]] = None
temperature: float = 0.7
max_tokens: Optional[int] = None
class ChatResponse(BaseModel):
response: str
api_type: APIType
character_name: str
timestamp: str
usage: Optional[Dict[str, Any]] = None
class CharacterConfig(BaseModel):
name: str
system_prompt: str
api_type: APIType = APIType.OPENAI
temperature: float = 0.7
max_tokens: Optional[int] = None