S01Nour commited on
Commit
65bf3d8
·
1 Parent(s): 6db5781

refactor: Remove notebook and establish API routing structure.

Browse files
Files changed (5) hide show
  1. config.py +1 -3
  2. kpa-t5-improved.ipynb +0 -0
  3. main.py +0 -50
  4. routes/__init__.py +3 -11
  5. services/__init__.py +0 -3
config.py CHANGED
@@ -20,15 +20,13 @@ HUGGINGFACE_STANCE_MODEL_ID = os.getenv("HUGGINGFACE_STANCE_MODEL_ID")
20
  HUGGINGFACE_LABEL_MODEL_ID = os.getenv("HUGGINGFACE_LABEL_MODEL_ID")
21
  HUGGINGFACE_GENERATE_MODEL_ID = os.getenv("HUGGINGFACE_GENERATE_MODEL_ID", "YOUR_ORG/kpa-t5-improved")
22
 
23
- <<<<<<< HEAD
24
  # Use Hugging Face model ID instead of local path
25
  STANCE_MODEL_ID = HUGGINGFACE_STANCE_MODEL_ID
26
  LABEL_MODEL_ID = HUGGINGFACE_LABEL_MODEL_ID
27
  GENERATE_MODEL_ID = HUGGINGFACE_GENERATE_MODEL_ID
28
- =======
29
  # ============ GROQ MODELS ============
30
  GROQ_API_KEY = os.getenv("GROQ_API_KEY", "")
31
- >>>>>>> 45e145b23965e35eefb7990d09b535073040e40a
32
 
33
  # **Speech-to-Text**
34
  GROQ_STT_MODEL = "whisper-large-v3-turbo"
 
20
  HUGGINGFACE_LABEL_MODEL_ID = os.getenv("HUGGINGFACE_LABEL_MODEL_ID")
21
  HUGGINGFACE_GENERATE_MODEL_ID = os.getenv("HUGGINGFACE_GENERATE_MODEL_ID", "YOUR_ORG/kpa-t5-improved")
22
 
 
23
  # Use Hugging Face model ID instead of local path
24
  STANCE_MODEL_ID = HUGGINGFACE_STANCE_MODEL_ID
25
  LABEL_MODEL_ID = HUGGINGFACE_LABEL_MODEL_ID
26
  GENERATE_MODEL_ID = HUGGINGFACE_GENERATE_MODEL_ID
27
+
28
  # ============ GROQ MODELS ============
29
  GROQ_API_KEY = os.getenv("GROQ_API_KEY", "")
 
30
 
31
  # **Speech-to-Text**
32
  GROQ_STT_MODEL = "whisper-large-v3-turbo"
kpa-t5-improved.ipynb DELETED
The diff for this file is too large to render. See raw diff
 
main.py CHANGED
@@ -4,49 +4,6 @@ import logging
4
  from contextlib import asynccontextmanager
5
  import atexit
6
  import shutil
7
-
8
- from fastapi import FastAPI
9
- from fastapi.middleware.cors import CORSMiddleware
10
- from fastapi.responses import RedirectResponse
11
- import uvicorn
12
-
13
- <<<<<<< HEAD
14
- from config import (
15
- API_TITLE,
16
- API_DESCRIPTION,
17
- API_VERSION,
18
- STANCE_MODEL_ID,
19
- LABEL_MODEL_ID,
20
- HUGGINGFACE_API_KEY,
21
- HUGGINGFACE_STANCE_MODEL_ID,
22
- HUGGINGFACE_LABEL_MODEL_ID,
23
- HUGGINGFACE_GENERATE_MODEL_ID,
24
- HOST,
25
- PORT,
26
- RELOAD,
27
- CORS_ORIGINS,
28
- CORS_CREDENTIALS,
29
- CORS_METHODS,
30
- CORS_HEADERS,
31
- )
32
- from services import stance_model_manager, kpa_model_manager, generate_model_manager
33
- from routes import api_router
34
-
35
- # Configure logging
36
- logging.basicConfig(level=logging.INFO)
37
- =======
38
- # --- Logging ---
39
- logging.basicConfig(
40
- level=logging.INFO,
41
- format="%(asctime)s - %(name)s - %(levelname)s - %(message)s"
42
- )
43
- >>>>>>> 45e145b23965e35eefb7990d09b535073040e40a
44
- logger = logging.getLogger(__name__)
45
-
46
- # --- Ajouter app dir au PATH ---
47
- app_dir = Path(__file__).parent
48
- sys.path.insert(0, str(app_dir))
49
-
50
  # --- Config ---
51
  from config import (
52
  API_TITLE, API_DESCRIPTION, API_VERSION,
@@ -108,7 +65,6 @@ async def lifespan(app: FastAPI):
108
  logger.info("🚀 DÉMARRAGE API - Chargement des modèles et vérification des APIs...")
109
  logger.info("="*60)
110
 
111
- <<<<<<< HEAD
112
  # Load stance detection model
113
  try:
114
  logger.info(f"Loading stance model from Hugging Face: {HUGGINGFACE_STANCE_MODEL_ID}")
@@ -136,11 +92,6 @@ async def lifespan(app: FastAPI):
136
  logger.info("✓ API startup complete")
137
  logger.info("https://nlp-debater-project-fastapi-backend-models.hf.space/docs")
138
 
139
- yield # Application runs here
140
-
141
- # Shutdown: Cleanup (if needed)
142
- # Currently no cleanup needed, but you can add it here if necessary
143
- =======
144
  # Vérifier les clés API
145
  if not GROQ_API_KEY:
146
  logger.warning("⚠ GROQ_API_KEY non configurée. Fonctions STT/TTS désactivées.")
@@ -151,7 +102,6 @@ async def lifespan(app: FastAPI):
151
  logger.warning("⚠ HUGGINGFACE_API_KEY non configurée. Modèles locaux désactivés.")
152
  else:
153
  logger.info("✓ HUGGINGFACE_API_KEY configurée")
154
- >>>>>>> 45e145b23965e35eefb7990d09b535073040e40a
155
 
156
  # Précharger les modèles Hugging Face si configuré
157
  if PRELOAD_MODELS_ON_STARTUP:
 
4
  from contextlib import asynccontextmanager
5
  import atexit
6
  import shutil
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
7
  # --- Config ---
8
  from config import (
9
  API_TITLE, API_DESCRIPTION, API_VERSION,
 
65
  logger.info("🚀 DÉMARRAGE API - Chargement des modèles et vérification des APIs...")
66
  logger.info("="*60)
67
 
 
68
  # Load stance detection model
69
  try:
70
  logger.info(f"Loading stance model from Hugging Face: {HUGGINGFACE_STANCE_MODEL_ID}")
 
92
  logger.info("✓ API startup complete")
93
  logger.info("https://nlp-debater-project-fastapi-backend-models.hf.space/docs")
94
 
 
 
 
 
 
95
  # Vérifier les clés API
96
  if not GROQ_API_KEY:
97
  logger.warning("⚠ GROQ_API_KEY non configurée. Fonctions STT/TTS désactivées.")
 
102
  logger.warning("⚠ HUGGINGFACE_API_KEY non configurée. Modèles locaux désactivés.")
103
  else:
104
  logger.info("✓ HUGGINGFACE_API_KEY configurée")
 
105
 
106
  # Précharger les modèles Hugging Face si configuré
107
  if PRELOAD_MODELS_ON_STARTUP:
routes/__init__.py CHANGED
@@ -1,26 +1,18 @@
1
  """API route handlers"""
2
 
3
  from fastapi import APIRouter
4
- <<<<<<< HEAD
5
  from . import root, health, stance, label, generate
6
-
7
- =======
8
- from . import root, health, stance, label
9
- from routes.tts_routes import router as audio_router
10
- >>>>>>> 45e145b23965e35eefb7990d09b535073040e40a
11
  # Create main router
12
  api_router = APIRouter()
13
-
14
  # Include all route modules
15
  api_router.include_router(root.router)
16
  api_router.include_router(health.router)
17
  api_router.include_router(stance.router, prefix="/stance")
18
  api_router.include_router(label.router, prefix="/label")
19
- <<<<<<< HEAD
20
  api_router.include_router(generate.router, prefix="/generate")
21
- =======
22
- api_router.include_router(audio_router)
23
- >>>>>>> 45e145b23965e35eefb7990d09b535073040e40a
24
 
25
  __all__ = ["api_router"]
26
 
 
1
  """API route handlers"""
2
 
3
  from fastapi import APIRouter
 
4
  from . import root, health, stance, label, generate
5
+ from routes.tts_routes import router as audio_router
 
 
 
 
6
  # Create main router
7
  api_router = APIRouter()
8
+
9
  # Include all route modules
10
  api_router.include_router(root.router)
11
  api_router.include_router(health.router)
12
  api_router.include_router(stance.router, prefix="/stance")
13
  api_router.include_router(label.router, prefix="/label")
 
14
  api_router.include_router(generate.router, prefix="/generate")
15
+ api_router.include_router(audio_router)
 
 
16
 
17
  __all__ = ["api_router"]
18
 
services/__init__.py CHANGED
@@ -13,13 +13,10 @@ __all__ = [
13
  "stance_model_manager",
14
  "KpaModelManager",
15
  "kpa_model_manager",
16
- <<<<<<< HEAD
17
  "GenerateModelManager",
18
  "generate_model_manager",
19
- =======
20
 
21
  # NEW exports
22
  "speech_to_text",
23
  "text_to_speech",
24
- >>>>>>> 45e145b23965e35eefb7990d09b535073040e40a
25
  ]
 
13
  "stance_model_manager",
14
  "KpaModelManager",
15
  "kpa_model_manager",
 
16
  "GenerateModelManager",
17
  "generate_model_manager",
 
18
 
19
  # NEW exports
20
  "speech_to_text",
21
  "text_to_speech",
 
22
  ]