Spaces:
Running
Running
from fastapi import FastAPI | |
from pydantic import BaseModel | |
from transformers import pipeline | |
import os | |
import os | |
from pathlib import Path | |
# 验证缓存目录可写 | |
cache_dir = Path(os.getenv("HF_HOME", "")) | |
if not cache_dir.exists(): | |
cache_dir.mkdir(parents=True, exist_ok=True) | |
test_file = cache_dir / "permission_test.txt" | |
try: | |
with open(test_file, "w") as f: | |
f.write("test") | |
os.remove(test_file) | |
print("✅ Cache directory is writable") | |
except Exception as e: | |
print(f"❌ Cache directory write failed: {str(e)}") | |
raise | |
# 正确加载模型(从缓存或下载) | |
classifier = pipeline( | |
"text-classification", | |
model="mrm8488/codebert-base-finetuned-detect-insecure-code" | |
) | |
app = FastAPI() | |
class CodeRequest(BaseModel): | |
code: str # 输入参数定义 | |
async def detect_insecure_code(request: CodeRequest): | |
try: | |
# 直接传递代码字符串到分类器 | |
result = classifier(request.code) | |
return {"status": "success", "result": result[0]} | |
except Exception as e: | |
return {"status": "error", "message": str(e)} |