""" PolyglotRAG — assistant documentaire multilingue cross-lingue. Point d'entrée de l'application Gradio (compatible Hugging Face Spaces, SDK "gradio"). Onglets : - Chat : interface de question/réponse multilingue avec citations. - Architecture : schéma du pipeline complet. - Admin : métriques du RAG (volume, latence, langues, abstention). """ from __future__ import annotations import gradio as gr from core.ui.admin_tab import build_admin_tab from core.ui.architecture_tab import build_architecture_tab from core.ui.chat_tab import build_chat_tab from core.ui.theme import CUSTOM_CSS from config import settings HEADER_HTML = """

🌍 PolyglotRAG

Assistant documentaire multilingue cross-lingue — EN · FR · RU · ES · AR (RTL) · PT · propulsé par DeepSeek-V4.1-Flash

""" def build_app() -> gr.Blocks: with gr.Blocks( title="PolyglotRAG", css=CUSTOM_CSS, theme=gr.themes.Soft(primary_hue="blue", neutral_hue="slate"), ) as demo: gr.HTML(HEADER_HTML) config_errors = settings.validate() if config_errors: gr.Markdown( "⚠️ **Configuration incomplète** : " + " ".join(config_errors) ) with gr.Tabs(): with gr.TabItem("💬 Chat"): build_chat_tab() with gr.TabItem("🏗️ Architecture"): build_architecture_tab() with gr.TabItem("🔐 Admin"): build_admin_tab() return demo demo = build_app() if __name__ == "__main__": import os # 0.0.0.0 + $PORT (par défaut 7860) : fonctionne à l'identique en local, # dans le conteneur Docker fourni, et sur un Hugging Face Space # (SDK "gradio" ou "docker" — voir Dockerfile / README). demo.queue().launch( server_name="0.0.0.0", server_port=int(os.environ.get("PORT", 7860)), )