Skip to content

Commit 4ebe7ce

Browse files
committed
Add CompileAndFixRequest model and implement compile-and-fix endpoint
1 parent be1a967 commit 4ebe7ce

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

app/main.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
from app.compiler import RustCompiler
1919
from app.llm_client import LlamaEdgeClient
2020
from app.vector_store import QdrantStore
21+
from app.mcp_service import RustCompilerMCP
2122

2223
app = FastAPI(title="Rust Project Generator API")
2324

@@ -65,6 +66,16 @@ class ProjectResponse(BaseModel):
6566
build_output: Optional[str] = None
6667
run_output: Optional[str] = None
6768

69+
# Add the CompileAndFixRequest model
70+
class CompileAndFixRequest(BaseModel):
71+
code: str
72+
description: str
73+
max_attempts: int = 3
74+
75+
# Define the get_vector_store function
76+
def get_vector_store():
77+
return vector_store
78+
6879
@app.post("/generate", response_model=ProjectResponse)
6980
async def generate_project(request: ProjectRequest, background_tasks: BackgroundTasks):
7081
"""Generate a Rust project based on description"""
@@ -144,6 +155,31 @@ async def compile_rust(request: dict):
144155
"error_details": error_context
145156
}
146157

158+
@app.post("/compile-and-fix")
159+
async def compile_and_fix(request: CompileAndFixRequest):
160+
"""Compile Rust code and fix errors with LLM"""
161+
code = request.code
162+
description = request.description
163+
max_attempts = request.max_attempts
164+
165+
# Create MCP service instance
166+
mcp_service = RustCompilerMCP(
167+
vector_store=get_vector_store(),
168+
llm_client=llm_client,
169+
compiler=compiler,
170+
parser=parser,
171+
prompt_generator=prompt_gen
172+
)
173+
174+
# Compile and fix code
175+
result = mcp_service.compile_and_fix_rust_code(
176+
code_content=code,
177+
description=description,
178+
max_attempts=max_attempts
179+
)
180+
181+
return result
182+
147183
@app.post("/compile-and-fix")
148184
async def compile_and_fix_rust(request: dict):
149185
"""Endpoint to compile and fix Rust code"""

0 commit comments

Comments
 (0)