RAGSample / app.py
VietCat's picture
fix log and download file
7bc48c0
from fastapi import FastAPI, Request
from rag_core.business import answer_query, rescan_index
from ui import app_ui
import gradio as gr
import logging
from fastapi.responses import JSONResponse
import json
import os
logging.info("🚀 Khởi động ứng dụng FastAPI...")
app = FastAPI()
@app.post("/ask")
async def ask_api(req: Request):
data = await req.json()
query = data.get("query", "")
logging.info(f"📥 API /ask nhận query: {query}")
return answer_query(query)
@app.post("/rescan")
async def rescan_api():
logging.info("♻️ API /rescan được gọi")
return rescan_index()
@app.get("/get_structure_file")
def get_structure_file():
path = "faiss_index/chunk_structure.json"
if os.path.exists(path):
try:
with open(path, "r", encoding="utf-8") as f:
data = json.load(f)
return JSONResponse(content=data)
except Exception as e:
logging.error(f"❌ Lỗi đọc file JSON: {e}")
return {"error": f"Lỗi đọc file: {str(e)}"}
else:
logging.warning("⚠️ File chunk_structure.json không tồn tại.")
return {"error": "File không tồn tại."}
# Mount Gradio UI vào FastAPI tại root
app = gr.mount_gradio_app(app, app_ui, path="")
logging.info("✅ Gradio UI đã mount vào root /")