hashan-7 commited on
Commit
464bae0
·
verified ·
1 Parent(s): 7f32d95

add the code

Browse files
Files changed (1) hide show
  1. code_engine.py +67 -0
code_engine.py CHANGED
@@ -0,0 +1,67 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from schemas import CodeXRequest, CodeXResponse, CodeTaskType
2
+ from code_router import detect_task_type
3
+ from prompt_builder import build_prompt
4
+ from model_client import model_client
5
+ from response_formatter import build_response, build_error_response
6
+ from config import settings
7
+
8
+
9
+ def should_use_retrieval(task_type: CodeTaskType, request: CodeXRequest) -> bool:
10
+ if not request.use_retrieval:
11
+ return False
12
+
13
+ if task_type == CodeTaskType.FIX and settings.ENABLE_RETRIEVAL_FOR_FIX:
14
+ return True
15
+
16
+ if task_type == CodeTaskType.GENERATE and settings.ENABLE_RETRIEVAL_FOR_GENERATE:
17
+ return True
18
+
19
+ if task_type == CodeTaskType.EXPLAIN and settings.ENABLE_RETRIEVAL_FOR_EXPLAIN:
20
+ return True
21
+
22
+ return False
23
+
24
+
25
+ def get_retrieved_evidence(task_type: CodeTaskType, request: CodeXRequest):
26
+ return []
27
+
28
+
29
+ def process_codex_request(request: CodeXRequest) -> CodeXResponse:
30
+ try:
31
+ task_type = detect_task_type(
32
+ message=request.message,
33
+ code=request.code,
34
+ error_message=request.error_message,
35
+ mode_hint=request.mode,
36
+ )
37
+
38
+ evidence_list = []
39
+ if should_use_retrieval(task_type, request):
40
+ evidence_list = get_retrieved_evidence(task_type, request)
41
+
42
+ prompt = build_prompt(
43
+ task_type=task_type,
44
+ message=request.message,
45
+ code=request.code,
46
+ error_message=request.error_message,
47
+ language=request.language,
48
+ framework=request.framework,
49
+ previous_context=request.previous_context,
50
+ evidence_list=evidence_list,
51
+ )
52
+
53
+ model_output, model_used, used_fallback = model_client.generate(prompt)
54
+
55
+ return build_response(
56
+ task_type=task_type,
57
+ model_output=model_output,
58
+ model_used=model_used,
59
+ used_fallback=used_fallback,
60
+ )
61
+
62
+ except Exception as e:
63
+ fallback_task = request.mode if request.mode else CodeTaskType.UNKNOWN
64
+ return build_error_response(
65
+ task_type=fallback_task,
66
+ error_message=str(e),
67
+ )