-
Notifications
You must be signed in to change notification settings - Fork 2.1k
Expand file tree
/
Copy pathresponses.py
More file actions
92 lines (64 loc) · 2.27 KB
/
Copy pathresponses.py
File metadata and controls
92 lines (64 loc) · 2.27 KB
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
"""Response models for API endpoints"""
from typing import Optional, Dict, Any, List
from datetime import datetime
from pydantic import BaseModel, Field
class TaskResponse(BaseModel):
"""Response model for task creation"""
task_id: str
session_id: Optional[str] = None
task_short_id: Optional[str] = None
status: str = "created"
message: str = "Task created successfully"
created_at: datetime = Field(default_factory=datetime.utcnow)
class WorkflowStatusResponse(BaseModel):
"""Response model for workflow status"""
task_id: str
status: str
progress: int = 0
message: str = ""
result: Optional[Dict[str, Any]] = None
error: Optional[str] = None
error_details: Optional[Dict[str, Any]] = None
started_at: Optional[datetime] = None
completed_at: Optional[datetime] = None
class QuestionsResponse(BaseModel):
"""Response model for generated questions"""
questions: List[Dict[str, Any]]
status: str = "success"
class RequirementsSummaryResponse(BaseModel):
"""Response model for requirements summary"""
summary: str
status: str = "success"
class ConfigResponse(BaseModel):
"""Response model for configuration"""
llm_provider: str
available_providers: List[str]
models: Dict[str, str]
indexing_enabled: bool
class SettingsResponse(BaseModel):
"""Response model for settings"""
llm_provider: str
models: Dict[str, str]
indexing_enabled: bool
document_segmentation: Dict[str, Any]
class OpenRouterModelInfo(BaseModel):
"""One OpenRouter model option shown in the settings UI."""
id: str
name: str
context_length: Optional[int] = None
top_provider: Dict[str, Any] = Field(default_factory=dict)
supported_parameters: List[str] = Field(default_factory=list)
pricing: Dict[str, Any] = Field(default_factory=dict)
expiration_date: Optional[str] = None
source: str = "openrouter"
class OpenRouterModelsResponse(BaseModel):
"""Response model for OpenRouter model catalog."""
models: List[OpenRouterModelInfo]
source: str
cached_at: Optional[int] = None
stale: bool = False
class ErrorResponse(BaseModel):
"""Response model for errors"""
error: str
detail: Optional[str] = None
code: Optional[str] = None