File size: 2,590 Bytes
e9462cd 3198c6f 051ac24 3198c6f 98481b8 051ac24 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 | from __future__ import annotations
from dataclasses import dataclass, field
from typing import Any, Dict, List, Optional
from pydantic import BaseModel
class ChatRequest(BaseModel):
message: Optional[str] = None
prompt: Optional[str] = None
query: Optional[str] = None
text: Optional[str] = None
user_message: Optional[str] = None
input: Optional[str] = None
content: Optional[str] = None
tone: Optional[float] = 0.5
verbosity: Optional[float] = 0.5
transparency: Optional[float] = 0.5
help_mode: Optional[str] = None
intent: Optional[str] = None
category: Optional[str] = None
chat_history: Optional[List[Dict[str, Any]]] = None
history: Optional[List[Dict[str, Any]]] = None
session_state: Optional[Dict[str, Any]] = None
question_text: Optional[str] = None
options_text: Optional[List[str]] = None
question_id: Optional[str] = None
session_id: Optional[str] = None
user_id: Optional[str] = None
class SessionStartRequest(BaseModel):
session_id: str
user_id: Optional[str] = None
condition: Optional[str] = None
metadata: Optional[Dict[str, Any]] = None
class EventLogRequest(BaseModel):
session_id: str
event_type: str
timestamp: Optional[str] = None
payload: Optional[Dict[str, Any]] = None
class SessionFinalizeRequest(BaseModel):
session_id: str
summary: Optional[Dict[str, Any]] = None
@dataclass
class RetrievedChunk:
text: str
topic: str = "general"
source: str = "local"
score: float = 0.0
@dataclass
class SolverResult:
reply: str = ""
domain: str = "fallback"
solved: bool = False
help_mode: str = "answer"
answer_letter: Optional[str] = None
answer_value: Optional[str] = None
topic: Optional[str] = None
used_retrieval: bool = False
used_generator: bool = False
internal_answer: Optional[str] = None
steps: List[str] = field(default_factory=list)
teaching_chunks: List[RetrievedChunk] = field(default_factory=list)
meta: Dict[str, Any] = field(default_factory=dict)
@dataclass
class ExplainerResult:
understood: bool = False
topic: Optional[str] = None
asks_for: Optional[str] = None
givens: List[str] = field(default_factory=list)
constraints: List[str] = field(default_factory=list)
relationships: List[str] = field(default_factory=list)
needed_concepts: List[str] = field(default_factory=list)
trap_notes: List[str] = field(default_factory=list)
strategy_hint: Optional[str] = None
plain_english: Optional[str] = None
|