maitrang04 commited on
Commit
ecd976b
·
verified ·
1 Parent(s): 7ed5d66

Update backend/ai/main.py

Browse files
Files changed (1) hide show
  1. backend/ai/main.py +25 -10
backend/ai/main.py CHANGED
@@ -4,7 +4,7 @@ from fastapi.responses import HTMLResponse
4
  from fastapi.staticfiles import StaticFiles
5
  from fastapi.templating import Jinja2Templates
6
  import os
7
- from backend.ai.database import db # singleton database
8
 
9
  app = FastAPI(title="VNPT AI Call Center MVP")
10
 
@@ -14,15 +14,32 @@ app.mount("/static", StaticFiles(directory="frontend"), name="static")
14
  # --- Templates ---
15
  templates = Jinja2Templates(directory="frontend")
16
 
17
- # --- Entry point: base.html với 3 tab ---
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
18
  @app.get("/", response_class=HTMLResponse)
19
  async def base(request: Request):
20
- """
21
- Trang chính của app Space: base.html với 3 tab
22
- """
23
  return templates.TemplateResponse("base.html", {"request": request})
24
 
25
- # --- Các tab HTML ---
26
  @app.get("/call_desktop", response_class=HTMLResponse)
27
  async def call_desktop(request: Request):
28
  return templates.TemplateResponse("call_desktop.html", {"request": request})
@@ -35,15 +52,13 @@ async def call_mobile(request: Request):
35
  async def dashboard(request: Request):
36
  return templates.TemplateResponse("dashboard.html", {"request": request})
37
 
38
- # --- API dashboard ---
39
  @app.get("/api/dashboard-stats")
40
  async def dashboard_stats():
41
  try:
42
- calls = db.get_all_calls()
43
- print(f"[DEBUG API] Lấy {len(calls)} bản ghi")
44
  return {"status": "success", "data": calls}
45
  except Exception as e:
46
- print(f"[DEBUG API Error] {e}")
47
  return {"status": "error", "message": str(e)}
48
 
49
  # --- Run app ---
 
4
  from fastapi.staticfiles import StaticFiles
5
  from fastapi.templating import Jinja2Templates
6
  import os
7
+ import sqlite3
8
 
9
  app = FastAPI(title="VNPT AI Call Center MVP")
10
 
 
14
  # --- Templates ---
15
  templates = Jinja2Templates(directory="frontend")
16
 
17
+ # --- SQLite local database ---
18
+ DB_FILE = os.path.join(os.path.dirname(__file__), "backend/ai/db.sqlite")
19
+
20
+ # Tạo database nếu chưa có
21
+ conn = sqlite3.connect(DB_FILE, check_same_thread=False)
22
+ cursor = conn.cursor()
23
+ cursor.execute("""
24
+ CREATE TABLE IF NOT EXISTS calls (
25
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
26
+ name TEXT,
27
+ duration INTEGER
28
+ )
29
+ """)
30
+ conn.commit()
31
+
32
+ # --- Database helper ---
33
+ def get_all_calls():
34
+ cursor.execute("SELECT * FROM calls")
35
+ rows = cursor.fetchall()
36
+ return [{"id": r[0], "name": r[1], "duration": r[2]} for r in rows]
37
+
38
+ # --- Routes HTML ---
39
  @app.get("/", response_class=HTMLResponse)
40
  async def base(request: Request):
 
 
 
41
  return templates.TemplateResponse("base.html", {"request": request})
42
 
 
43
  @app.get("/call_desktop", response_class=HTMLResponse)
44
  async def call_desktop(request: Request):
45
  return templates.TemplateResponse("call_desktop.html", {"request": request})
 
52
  async def dashboard(request: Request):
53
  return templates.TemplateResponse("dashboard.html", {"request": request})
54
 
55
+ # --- API ---
56
  @app.get("/api/dashboard-stats")
57
  async def dashboard_stats():
58
  try:
59
+ calls = get_all_calls()
 
60
  return {"status": "success", "data": calls}
61
  except Exception as e:
 
62
  return {"status": "error", "message": str(e)}
63
 
64
  # --- Run app ---