Files
foodlinkk-command-center/cockpit/app/routes/hermes.py
T
Aissa 5d60d33db1 Platform bundle: marketing publish, IT ops, packaging, agents mesh.
Volledige Foodlinkk Command Center uitbreiding met social automatisering,
reclamefolder filters, Proxmox monitoring en documentatie.
2026-06-09 00:41:27 +00:00

53 lines
1.8 KiB
Python

"""Hermes Telegram Command Center UI."""
from __future__ import annotations
import httpx
from fastapi import APIRouter, Request
from fastapi.responses import HTMLResponse
from fastapi.templating import Jinja2Templates
from pathlib import Path
from app.config import settings
router = APIRouter(prefix="/hermes", tags=["hermes"])
BASE_DIR = Path(__file__).resolve().parent.parent.parent
templates = Jinja2Templates(directory=str(BASE_DIR / "templates"))
CEO_CHAT_ID = 8859782446
CTO_CHAT_ID = 789036463
CEO_NAME = "Aïssa"
CTO_NAME = "Mo"
@router.get("", response_class=HTMLResponse)
async def hermes_dashboard(request: Request) -> HTMLResponse:
stats = {"conversations": 0, "messages": 0, "edges": 0, "embeddings": 0}
conversations = []
try:
async with httpx.AsyncClient(timeout=15.0) as client:
r = await client.get(f"{settings.TOOLS_API_URL.rstrip('/')}/brain/stats")
if r.status_code == 200:
data = r.json()
stats = data.get("stats") or stats
conversations_resp = await client.get(
f"{settings.TOOLS_API_URL.rstrip('/')}/brain/conversations", params={"limit": 20}
)
if conversations_resp.status_code == 200:
conversations = conversations_resp.json().get("items") or []
except Exception:
pass
return templates.TemplateResponse(
"hermes.html",
{
"request": request,
"page_title": "Hermes",
"stats": stats,
"conversations": conversations,
"ceo_chat_id": CEO_CHAT_ID,
"cto_chat_id": CTO_CHAT_ID,
"allowed_sites": ["Airbnb", "Booking.com", "DuckDuckGo", "HolidayCheck"],
"blocked_sites": ["Google", "Vrbo", "Expedia", "Hotels.com", "TUI", "TripAdvisor"],
},
)