Initial commit: VoIdeaAI - voice-first AI idea assistant
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
"""Pipeline config and stats schemas for VoIdea."""
|
||||
|
||||
from datetime import datetime
|
||||
from typing import Any, Optional
|
||||
|
||||
from pydantic import BaseModel, Field
|
||||
|
||||
|
||||
class PipelineStageConfig(BaseModel):
|
||||
enabled: bool = True
|
||||
noise_threshold: float | None = None
|
||||
silence_timeout_ms: int | None = None
|
||||
min_audio_duration_ms: int | None = None
|
||||
word: str | None = None
|
||||
timeout_minutes: int | None = None
|
||||
sensitivity: float | None = None
|
||||
mode: str | None = None
|
||||
timeout_ms: int | None = None
|
||||
verified_threshold: int | None = None
|
||||
warning_threshold: int | None = None
|
||||
max_agents_per_dialog: int | None = None
|
||||
min_samples: int | None = None
|
||||
learning_rate: float | None = None
|
||||
|
||||
|
||||
class PipelineConfigResponse(BaseModel):
|
||||
vad: PipelineStageConfig = Field(default_factory=PipelineStageConfig)
|
||||
wake_word: PipelineStageConfig = Field(default_factory=PipelineStageConfig)
|
||||
semantic_validation: PipelineStageConfig = Field(default_factory=PipelineStageConfig)
|
||||
confidence: PipelineStageConfig = Field(default_factory=PipelineStageConfig)
|
||||
agent_chaining: PipelineStageConfig = Field(default_factory=PipelineStageConfig)
|
||||
auto_tuning: PipelineStageConfig = Field(default_factory=PipelineStageConfig)
|
||||
stages_order: list[str] = [
|
||||
"vad", "wake_word", "semantic_validation", "routing", "verification"
|
||||
]
|
||||
|
||||
|
||||
class PipelineConfigUpdate(BaseModel):
|
||||
vad: Optional[dict[str, Any]] = None
|
||||
wake_word: Optional[dict[str, Any]] = None
|
||||
semantic_validation: Optional[dict[str, Any]] = None
|
||||
confidence: Optional[dict[str, Any]] = None
|
||||
agent_chaining: Optional[dict[str, Any]] = None
|
||||
auto_tuning: Optional[dict[str, Any]] = None
|
||||
stages_order: Optional[list[str]] = None
|
||||
|
||||
|
||||
class PipelineStatsEntry(BaseModel):
|
||||
id: str
|
||||
user_id: str | None
|
||||
stage: str
|
||||
passed: bool
|
||||
reason: str | None
|
||||
duration_ms: int | None
|
||||
created_at: datetime
|
||||
|
||||
|
||||
class PipelineStatsSummary(BaseModel):
|
||||
total_entries: int
|
||||
stages: dict[str, int]
|
||||
passed_ratio: float
|
||||
avg_duration_ms: float | None
|
||||
fail_reasons: list[tuple[str, int]]
|
||||
Reference in New Issue
Block a user