32 lines
738 B
Python
32 lines
738 B
Python
|
|
from typing import List, Optional
|
||
|
|
from pydantic import BaseModel
|
||
|
|
|
||
|
|
class CodeRequest(BaseModel):
|
||
|
|
code: str
|
||
|
|
language: str
|
||
|
|
task_type: str # "explain" 或 "fix"
|
||
|
|
depth: str = "detailed"
|
||
|
|
|
||
|
|
class CodeExplanation(BaseModel):
|
||
|
|
explanation: str
|
||
|
|
line_by_line: Optional[List[dict]] = None
|
||
|
|
key_concepts: Optional[List[str]] = None
|
||
|
|
suggestions: Optional[List[str]] = None
|
||
|
|
|
||
|
|
class BugFix(BaseModel):
|
||
|
|
original_code: str
|
||
|
|
fixed_code: str
|
||
|
|
problems_found: List[str]
|
||
|
|
fixes_applied: List[str]
|
||
|
|
explanation: str
|
||
|
|
|
||
|
|
class CodeResponse(BaseModel):
|
||
|
|
success: bool
|
||
|
|
task_type: str
|
||
|
|
result: CodeExplanation | BugFix
|
||
|
|
error: Optional[str] = None
|
||
|
|
|
||
|
|
class ChatMessage(BaseModel):
|
||
|
|
role: str
|
||
|
|
content: str
|