main -> aiws

This commit is contained in:
xds
2026-02-11 12:46:35 +03:00
parent 482bc1d9b7
commit be92c766ac

29
aiws.py
View File

@@ -12,6 +12,7 @@ from aiogram.fsm.storage.mongo import MongoStorage
from dotenv import load_dotenv
from fastapi import FastAPI
from motor.motor_asyncio import AsyncIOMotorClient
from prometheus_client import Info
from starlette.middleware.cors import CORSMiddleware
from prometheus_fastapi_instrumentator import Instrumentator
@@ -41,6 +42,7 @@ from api.endpoints.generation_router import router as api_gen_router
from api.endpoints.auth import router as api_auth_router
from api.endpoints.admin import router as api_admin_router
from api.endpoints.album_router import router as api_album_router
from api.endpoints.project_router import router as project_api_router
load_dotenv()
logger = logging.getLogger(__name__)
@@ -170,9 +172,6 @@ async def lifespan(app: FastAPI):
# --- НАСТРОЙКА FASTAPI ---
app = FastAPI(title="Assets API", lifespan=lifespan)
# Prometheus Metrics
Instrumentator().instrument(app).expose(app)
# CORS
app.add_middleware(
CORSMiddleware,
@@ -181,21 +180,27 @@ app.add_middleware(
allow_headers=["*"],
)
# Подключаем роутер API
from api.endpoints.auth import router as auth_api_router
from api.endpoints.admin import router as admin_api_router
from api.endpoints.project_router import router as project_api_router
app.include_router(auth_api_router)
app.include_router(admin_api_router)
# Подключаем роутеры API
app.include_router(api_auth_router)
app.include_router(api_admin_router)
app.include_router(api_assets_router)
app.include_router(api_char_router)
app.include_router(api_gen_router)
app.include_router(api_album_router)
app.include_router(api_admin_router)
app.include_router(api_auth_router)
app.include_router(project_api_router)
# Prometheus Metrics (Instrument after all routers are added)
Instrumentator(
should_group_status_codes=False, # 200/201/204 отдельно (по желанию)
should_ignore_untemplated=False, # НЕ игнорировать "сырые" пути
# should_group_untemplated=False, # (опционально) не схлопывать untemplated в "none"
).instrument(
app,
metric_namespace="ai_bot",
).expose(app, endpoint="/metrics", include_in_schema=False)
app_info = Info("fastapi_app_info", "FastAPI application info")
app_info.info({"app_name": "ai-bot"})
# --- ХЕНДЛЕРЫ БОТА (Main Router) ---
@main_router.message(Command("help"))