import subprocess import tempfile # ------------------------- # 코드 실행기 # ------------------------- def run_code(code): try: with tempfile.NamedTemporaryFile(suffix=".py", delete=False) as f: f.write(code.encode("utf-8")) path = f.name result = subprocess.run( ["python", path], capture_output=True, timeout=3 ) return result.stdout.decode(), result.stderr.decode() except Exception as e: return "", str(e) # ------------------------- # 코드 수정 루프 # ------------------------- def fix_loop(model_generate, prompt, max_iter=3): code = model_generate(prompt) for i in range(max_iter): out, err = run_code(code) if err == "": return code # 성공 fix_prompt = f""" 다음 코드 오류를 수정해주십시오. 코드: {code} 에러: {err} 한국어 존댓말로 수정된 코드만 출력하십시오. """ code = model_generate(fix_prompt) return code