hashan-7 commited on
Commit
c895815
·
verified ·
1 Parent(s): 757450d

add the code

Browse files
Files changed (1) hide show
  1. schemas.py +58 -0
schemas.py CHANGED
@@ -0,0 +1,58 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from enum import Enum
2
+ from typing import List, Optional
3
+
4
+ from pydantic import BaseModel, Field
5
+
6
+
7
+ class CodeTaskType(str, Enum):
8
+ GENERATE = "generate"
9
+ FIX = "fix"
10
+ EXPLAIN = "explain"
11
+ REFACTOR = "refactor"
12
+ REVIEW = "review"
13
+ UNKNOWN = "unknown"
14
+
15
+
16
+ class SourceType(str, Enum):
17
+ STACKOVERFLOW = "stackoverflow"
18
+ GITHUB = "github"
19
+ MODEL = "model"
20
+
21
+
22
+ class RetrievedEvidence(BaseModel):
23
+ source_type: SourceType
24
+ title: str
25
+ snippet: str
26
+ url: Optional[str] = None
27
+ score: Optional[float] = None
28
+
29
+
30
+ class ResponseMeta(BaseModel):
31
+ used_model: str
32
+ fallback_used: bool = False
33
+ retrieval_used: bool = False
34
+ source_count: int = 0
35
+ processing_time_ms: Optional[int] = None
36
+
37
+
38
+ class CodeXRequest(BaseModel):
39
+ message: str = Field(..., min_length=1)
40
+ mode: Optional[CodeTaskType] = None
41
+ language: Optional[str] = None
42
+ code: Optional[str] = None
43
+ error_message: Optional[str] = None
44
+ framework: Optional[str] = None
45
+ file_name: Optional[str] = None
46
+ previous_context: Optional[str] = None
47
+ use_retrieval: bool = True
48
+
49
+
50
+ class CodeXResponse(BaseModel):
51
+ answer: str
52
+ task_type: CodeTaskType
53
+ code_output: Optional[str] = None
54
+ explanation: Optional[str] = None
55
+ warnings: List[str] = []
56
+ sources: List[RetrievedEvidence] = []
57
+ needs_clarification: bool = False
58
+ meta: ResponseMeta