Public Access
MAJ Phase 10 : Support KubeJS, bouton RAG UI et Modale d'upload admin
Build and Push Docker Image / build-and-push (push) Successful in 37s
Build and Push Docker Image / build-and-push (push) Successful in 37s
This commit is contained in:
1 parent
f17ef384f6
commit
a2261ab8dd
3 files changed
+79
-5
No files matched your search
@@ -3,6 +3,7 @@ from dotenv import load_dotenv
|
||||
load_dotenv() # Force la lecture du fichier .env en local
|
||||
import uuid
|
||||
import json
|
||||
import threading
|
||||
from fasthtml.common import *
|
||||
from starlette.staticfiles import StaticFiles
|
||||
from starlette.responses import FileResponse, Response, HTMLResponse, RedirectResponse
|
||||
@@ -10,13 +11,14 @@ from starlette.middleware.base import BaseHTTPMiddleware
|
||||
|
||||
from modules.theme import get_theme_hdrs
|
||||
from modules.database import nettoyer_vieilles_discussions, HISTORY_FILE, load_history, save_history
|
||||
from modules.ui_components import render_main_page, render_sidebar, render_login_page
|
||||
from modules.ui_components import render_main_page, render_sidebar, render_login_page, render_rag_upload_modal
|
||||
from modules.chat_handler import handle_chat_request
|
||||
from modules.security import verifier_et_bloquer_vpn, journaliser_ip
|
||||
from modules.auth_manager import IDENTIFIANTS_ADMIN, verifier_mot_de_passe
|
||||
from modules.logger import log_event
|
||||
from modules.billing_manager import charger_soldes, sauvegarder_soldes
|
||||
from modules.rag_manager import auto_apprendre_rag
|
||||
from modules.vector_rag import indexer_dossier_thematique
|
||||
|
||||
# Lancement du module d'auto-mise à jour en arrière-plan
|
||||
import modules.model_updater
|
||||
@@ -152,5 +154,42 @@ def post(prompt: str, reponse: str, theme: str):
|
||||
auto_apprendre_rag(prompt, reponse, theme)
|
||||
return Span("✅ Indexé", cls="msg-action-btn", style="background-color: #4caf50; color: white; border: none; cursor: default;")
|
||||
|
||||
# --- NOUVELLES ROUTES POUR L'UPLOAD MODAL DU RAG ---
|
||||
@rt('/admin/rag_modal')
|
||||
def get(session):
|
||||
if session.get('user', '') != 'xavier':
|
||||
return HTMLResponse("Accès refusé.")
|
||||
return render_rag_upload_modal()
|
||||
|
||||
@rt('/api/upload_rag')
|
||||
async def post(request, session):
|
||||
if session.get('user', '') != 'xavier':
|
||||
return Span("❌ Accès refusé", style="color: red;")
|
||||
|
||||
form = await request.form()
|
||||
theme = form.get("theme")
|
||||
fichiers = form.getlist("fichiers_rag")
|
||||
|
||||
if not theme or not fichiers:
|
||||
return Span("❌ Thème ou fichiers manquants", style="color: red;")
|
||||
|
||||
dossier_cible = f"/DATA/AppData/MULTI-IA-AETHAS38/RAG/{theme}"
|
||||
os.makedirs(dossier_cible, exist_ok=True)
|
||||
|
||||
fichiers_sauves = 0
|
||||
for f in fichiers:
|
||||
if f.filename:
|
||||
chemin_fichier = os.path.join(dossier_cible, f.filename)
|
||||
contenu = await f.read()
|
||||
with open(chemin_fichier, "wb") as out:
|
||||
out.write(contenu)
|
||||
fichiers_sauves += 1
|
||||
|
||||
if fichiers_sauves > 0:
|
||||
threading.Thread(target=indexer_dossier_thematique, args=(theme,)).start()
|
||||
return Span(f"✅ {fichiers_sauves} fichier(s) sauvé(s). Indexation FAISS démarrée en arrière-plan !", style="color: #4caf50;")
|
||||
else:
|
||||
return Span("❌ Aucun fichier valide détecté.", style="color: red;")
|
||||
|
||||
if __name__ == '__main__':
|
||||
serve(port=5001)
|
||||
Reference in new issue
Block a user