Platform bundle: marketing publish, IT ops, packaging, agents mesh.
Volledige Foodlinkk Command Center uitbreiding met social automatisering, reclamefolder filters, Proxmox monitoring en documentatie.
This commit is contained in:
@@ -0,0 +1,52 @@
|
||||
"""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"],
|
||||
},
|
||||
)
|
||||
Reference in New Issue
Block a user