77from app .utils .common_utils import create_work_dir , simple_chat , get_config_template
88from app .models .user_output import UserOutput
99from app .config .setting import settings
10+ from app .tools .interpreter_factory import create_interpreter
1011from app .core .llm import DeepSeekModel
11- from app .tools .code_interpreter import E2BCodeInterpreter
1212import json
1313from app .utils .redis_manager import redis_manager
1414from app .utils .notebook_serializer import NotebookSerializer
15+ from app .tools .base_interpreter import BaseCodeInterpreter
1516
1617
1718class WorkFlow :
@@ -58,9 +59,10 @@ async def execute(self, problem: Problem):
5859 SystemMessage (content = "正在创建代码沙盒环境" ),
5960 )
6061
61- e2b_code_interpreter = await E2BCodeInterpreter . create (
62- workd_dir = self . work_dir ,
62+ code_interpreter = await create_interpreter (
63+ kind = "local" ,
6364 task_id = self .task_id ,
65+ work_dir = self .work_dir ,
6466 notebook_serializer = notebook_serializer ,
6567 timeout = 3000 ,
6668 )
@@ -81,7 +83,7 @@ async def execute(self, problem: Problem):
8183 work_dir = self .work_dir ,
8284 max_chat_turns = settings .MAX_CHAT_TURNS ,
8385 max_retries = settings .MAX_RETRIES ,
84- code_interpreter = e2b_code_interpreter ,
86+ code_interpreter = code_interpreter ,
8587 )
8688
8789 ################################################ solution steps
@@ -106,7 +108,7 @@ async def execute(self, problem: Problem):
106108
107109 # TODO: 是否可以不需要coder_response
108110 writer_prompt = self .get_writer_prompt (
109- key , coder_response , e2b_code_interpreter , config_template
111+ key , coder_response , code_interpreter , config_template
110112 )
111113
112114 await redis_manager .publish_message (
@@ -125,7 +127,7 @@ async def execute(self, problem: Problem):
125127 ## TODO: 图片引用错误
126128 writer_response = await writer_agent .run (
127129 writer_prompt ,
128- available_images = await e2b_code_interpreter .get_created_images (key ),
130+ available_images = await code_interpreter .get_created_images (key ),
129131 sub_title = key ,
130132 )
131133
@@ -138,7 +140,7 @@ async def execute(self, problem: Problem):
138140
139141 # 关闭沙盒
140142
141- await e2b_code_interpreter . shutdown_sandbox ()
143+ await code_interpreter . cleanup ()
142144 logger .info (user_output .get_res ())
143145
144146 ################################################ write steps
@@ -223,7 +225,7 @@ def get_writer_prompt(
223225 self ,
224226 key : str ,
225227 coder_response : str ,
226- code_interpreter : E2BCodeInterpreter ,
228+ code_interpreter : BaseCodeInterpreter ,
227229 config_template : dict ,
228230 ) -> str :
229231 """根据不同的key生成对应的writer_prompt
0 commit comments