Initial commit: VoIdeaAI - voice-first AI idea assistant
This commit is contained in:
@@ -0,0 +1,70 @@
|
||||
"""Voice schemas for VoIdeaAI."""
|
||||
|
||||
from datetime import datetime
|
||||
from typing import Optional
|
||||
|
||||
from pydantic import BaseModel, Field
|
||||
|
||||
|
||||
class ChatRequest(BaseModel):
|
||||
text: str
|
||||
session_id: str | None = None
|
||||
vad_enabled: bool | None = None
|
||||
wake_word_detected: bool | None = None
|
||||
audio_duration_ms: int | None = None
|
||||
pipeline_mode: str | None = None # "fast" | "full" | "off"
|
||||
|
||||
|
||||
class ChatResponse(BaseModel):
|
||||
response: str
|
||||
agent_name: str
|
||||
agent_description: str
|
||||
confidence: int
|
||||
verification_status: str
|
||||
processing_time_ms: float
|
||||
interaction_id: str
|
||||
session_id: str
|
||||
suggested_command: str | None = None
|
||||
|
||||
|
||||
class CommandCreate(BaseModel):
|
||||
phrase: str = Field(min_length=1, max_length=255)
|
||||
action: str = Field(min_length=1, max_length=50)
|
||||
agent_name: str | None = None
|
||||
|
||||
|
||||
class CommandResponse(BaseModel):
|
||||
id: str
|
||||
phrase: str
|
||||
action: str
|
||||
agent_name: str | None
|
||||
count: int
|
||||
is_active: bool
|
||||
|
||||
|
||||
class RateRequest(BaseModel):
|
||||
interaction_id: str
|
||||
rating: int = Field(ge=1, le=5)
|
||||
|
||||
|
||||
class SessionResponse(BaseModel):
|
||||
id: str
|
||||
title: str
|
||||
status: str
|
||||
idea_id: Optional[str] = None
|
||||
created_at: datetime
|
||||
updated_at: datetime
|
||||
|
||||
|
||||
class CreateSessionRequest(BaseModel):
|
||||
title: str = "Новое обсуждение"
|
||||
|
||||
|
||||
class SaveIdeaRequest(BaseModel):
|
||||
session_id: str
|
||||
|
||||
|
||||
class SaveIdeaResponse(BaseModel):
|
||||
idea_id: str
|
||||
title: str
|
||||
exported: bool = False
|
||||
Reference in New Issue
Block a user