Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -1,7 +1,7 @@
|
|
| 1 |
"""
|
| 2 |
Gradio Space для интерактивного использования модели Code Analyzer
|
| 3 |
Модель анализирует код студента на основе условия задачи
|
| 4 |
-
Поддерживает как веб-интерфейс, так и API endpoint
|
| 5 |
"""
|
| 6 |
import gradio as gr
|
| 7 |
from transformers import AutoModelForCausalLM, AutoTokenizer
|
|
@@ -107,7 +107,7 @@ with gr.Blocks(title="Code Analyzer Model") as demo:
|
|
| 107 |
3. Нажмите "Анализировать код"
|
| 108 |
4. Получите детальный анализ в формате JSON
|
| 109 |
|
| 110 |
-
**API Endpoint:**
|
| 111 |
""")
|
| 112 |
|
| 113 |
with gr.Row():
|
|
@@ -176,47 +176,5 @@ with gr.Blocks(title="Code Analyzer Model") as demo:
|
|
| 176 |
outputs=[result_output, result_text]
|
| 177 |
)
|
| 178 |
|
| 179 |
-
# Добавляем FastAPI endpoint для API доступа
|
| 180 |
-
from fastapi import FastAPI
|
| 181 |
-
from fastapi.middleware.cors import CORSMiddleware
|
| 182 |
-
from pydantic import BaseModel
|
| 183 |
-
|
| 184 |
-
api_app = FastAPI(title="Code Analyzer API")
|
| 185 |
-
|
| 186 |
-
api_app.add_middleware(
|
| 187 |
-
CORSMiddleware,
|
| 188 |
-
allow_origins=["*"],
|
| 189 |
-
allow_credentials=True,
|
| 190 |
-
allow_methods=["*"],
|
| 191 |
-
allow_headers=["*"],
|
| 192 |
-
)
|
| 193 |
-
|
| 194 |
-
class AnalyzeRequest(BaseModel):
|
| 195 |
-
task: str
|
| 196 |
-
code: str
|
| 197 |
-
|
| 198 |
-
@api_app.post("/api/analyze")
|
| 199 |
-
async def api_analyze(request: AnalyzeRequest):
|
| 200 |
-
"""API endpoint для анализа кода"""
|
| 201 |
-
result_str = analyze_code(request.task, request.code)
|
| 202 |
-
try:
|
| 203 |
-
result_json = json.loads(result_str)
|
| 204 |
-
return {"success": True, "analysis": result_json}
|
| 205 |
-
except:
|
| 206 |
-
return {"success": True, "analysis": {"raw_response": result_str}}
|
| 207 |
-
|
| 208 |
-
@api_app.get("/api/health")
|
| 209 |
-
async def health():
|
| 210 |
-
"""Проверка здоровья API"""
|
| 211 |
-
return {
|
| 212 |
-
"status": "ok",
|
| 213 |
-
"model_loaded": model is not None and tokenizer is not None
|
| 214 |
-
}
|
| 215 |
-
|
| 216 |
-
# Интегрируем FastAPI с Gradio
|
| 217 |
-
app = gr.mount_gradio_app(api_app, demo, path="/")
|
| 218 |
-
|
| 219 |
if __name__ == "__main__":
|
| 220 |
-
|
| 221 |
-
import uvicorn
|
| 222 |
-
uvicorn.run(app, host="0.0.0.0", port=7860)
|
|
|
|
| 1 |
"""
|
| 2 |
Gradio Space для интерактивного использования модели Code Analyzer
|
| 3 |
Модель анализирует код студента на основе условия задачи
|
| 4 |
+
Поддерживает как веб-интерфейс, так и API endpoint
|
| 5 |
"""
|
| 6 |
import gradio as gr
|
| 7 |
from transformers import AutoModelForCausalLM, AutoTokenizer
|
|
|
|
| 107 |
3. Нажмите "Анализировать код"
|
| 108 |
4. Получите детальный анализ в формате JSON
|
| 109 |
|
| 110 |
+
**API Endpoint:** Используйте встроенный API Gradio через `/api/predict`
|
| 111 |
""")
|
| 112 |
|
| 113 |
with gr.Row():
|
|
|
|
| 176 |
outputs=[result_output, result_text]
|
| 177 |
)
|
| 178 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 179 |
if __name__ == "__main__":
|
| 180 |
+
demo.launch(theme=gr.themes.Soft(), server_name="0.0.0.0")
|
|
|
|
|
|