| 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 |
|
|