forked from stacklok/codegate
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmodels.py
More file actions
102 lines (78 loc) · 2.02 KB
/
models.py
File metadata and controls
102 lines (78 loc) · 2.02 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
93
94
95
96
97
98
99
100
101
102
import datetime
import re
from typing import Any, Optional
from pydantic import BaseModel, field_validator
class Alert(BaseModel):
id: Any
prompt_id: Any
code_snippet: Optional[Any]
trigger_string: Optional[Any]
trigger_type: Any
trigger_category: Optional[Any]
timestamp: Any
class Output(BaseModel):
id: Any
prompt_id: Any
timestamp: Any
output: Any
class Prompt(BaseModel):
id: Any
timestamp: Any
provider: Optional[Any]
request: Any
type: Any
workspace_id: Optional[str]
class Setting(BaseModel):
id: Any
ip: Optional[Any]
port: Optional[Any]
llm_model: Optional[Any]
system_prompt: Optional[Any]
other_settings: Optional[Any]
class Workspace(BaseModel):
id: str
name: str
@field_validator("name", mode="plain")
@classmethod
def name_must_be_alphanumeric(cls, value):
if not re.match(r"^[a-zA-Z0-9_-]+$", value):
raise ValueError("name must be alphanumeric and can only contain _ and -")
return value
class Session(BaseModel):
id: str
active_workspace_id: str
last_update: datetime.datetime
# Models for select queries
class GetAlertsWithPromptAndOutputRow(BaseModel):
id: Any
prompt_id: Any
code_snippet: Optional[Any]
trigger_string: Optional[Any]
trigger_type: Any
trigger_category: Optional[Any]
timestamp: Any
prompt_timestamp: Optional[Any]
provider: Optional[Any]
request: Optional[Any]
type: Optional[Any]
output_id: Optional[Any]
output: Optional[Any]
output_timestamp: Optional[Any]
class GetPromptWithOutputsRow(BaseModel):
id: Any
timestamp: Any
provider: Optional[Any]
request: Any
type: Any
output_id: Optional[Any]
output: Optional[Any]
output_timestamp: Optional[Any]
class WorkspaceActive(BaseModel):
id: str
name: str
active_workspace_id: Optional[str]
class ActiveWorkspace(BaseModel):
id: str
name: str
session_id: str
last_update: datetime.datetime