main -> aiws
This commit is contained in:
29
aiws.py
29
aiws.py
@@ -12,6 +12,7 @@ from aiogram.fsm.storage.mongo import MongoStorage
|
|||||||
from dotenv import load_dotenv
|
from dotenv import load_dotenv
|
||||||
from fastapi import FastAPI
|
from fastapi import FastAPI
|
||||||
from motor.motor_asyncio import AsyncIOMotorClient
|
from motor.motor_asyncio import AsyncIOMotorClient
|
||||||
|
from prometheus_client import Info
|
||||||
from starlette.middleware.cors import CORSMiddleware
|
from starlette.middleware.cors import CORSMiddleware
|
||||||
from prometheus_fastapi_instrumentator import Instrumentator
|
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.auth import router as api_auth_router
|
||||||
from api.endpoints.admin import router as api_admin_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.album_router import router as api_album_router
|
||||||
|
from api.endpoints.project_router import router as project_api_router
|
||||||
|
|
||||||
load_dotenv()
|
load_dotenv()
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
@@ -170,9 +172,6 @@ async def lifespan(app: FastAPI):
|
|||||||
# --- НАСТРОЙКА FASTAPI ---
|
# --- НАСТРОЙКА FASTAPI ---
|
||||||
app = FastAPI(title="Assets API", lifespan=lifespan)
|
app = FastAPI(title="Assets API", lifespan=lifespan)
|
||||||
|
|
||||||
# Prometheus Metrics
|
|
||||||
Instrumentator().instrument(app).expose(app)
|
|
||||||
|
|
||||||
# CORS
|
# CORS
|
||||||
app.add_middleware(
|
app.add_middleware(
|
||||||
CORSMiddleware,
|
CORSMiddleware,
|
||||||
@@ -181,21 +180,27 @@ app.add_middleware(
|
|||||||
allow_headers=["*"],
|
allow_headers=["*"],
|
||||||
)
|
)
|
||||||
|
|
||||||
# Подключаем роутер API
|
# Подключаем роутеры API
|
||||||
from api.endpoints.auth import router as auth_api_router
|
app.include_router(api_auth_router)
|
||||||
from api.endpoints.admin import router as admin_api_router
|
app.include_router(api_admin_router)
|
||||||
from api.endpoints.project_router import router as project_api_router
|
|
||||||
|
|
||||||
app.include_router(auth_api_router)
|
|
||||||
app.include_router(admin_api_router)
|
|
||||||
app.include_router(api_assets_router)
|
app.include_router(api_assets_router)
|
||||||
app.include_router(api_char_router)
|
app.include_router(api_char_router)
|
||||||
app.include_router(api_gen_router)
|
app.include_router(api_gen_router)
|
||||||
app.include_router(api_album_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)
|
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) ---
|
||||||
@main_router.message(Command("help"))
|
@main_router.message(Command("help"))
|
||||||
|
|||||||
Reference in New Issue
Block a user