feat: Implement video generation functionality and integrate with Kling API.

This commit is contained in:
xds
2026-02-12 10:27:07 +03:00
parent d1f67c773f
commit 32ff77e04b
13 changed files with 405 additions and 5 deletions

15
aiws.py
View File

@@ -18,6 +18,7 @@ from prometheus_fastapi_instrumentator import Instrumentator
# --- ИМПОРТЫ ПРОЕКТА ---
from adapters.google_adapter import GoogleAdapter
from adapters.kling_adapter import KlingAdapter
from adapters.s3_adapter import S3Adapter
from api.service.generation_service import GenerationService
from api.service.album_service import AlbumService
@@ -83,7 +84,18 @@ s3_adapter = S3Adapter(
dao = DAO(mongo_client, s3_adapter) # Главный DAO для бота
gemini = GoogleAdapter(api_key=GEMINI_API_KEY)
generation_service = GenerationService(dao, gemini, bot)
# Kling Adapter (optional, for video generation)
kling_access_key = os.getenv("KLING_ACCESS_KEY", "")
kling_secret_key = os.getenv("KLING_SECRET_KEY", "")
kling_adapter = None
if kling_access_key and kling_secret_key:
kling_adapter = KlingAdapter(access_key=kling_access_key, secret_key=kling_secret_key)
logger.info("Kling adapter initialized")
else:
logger.warning("KLING_ACCESS_KEY / KLING_SECRET_KEY not set — video generation disabled")
generation_service = GenerationService(dao, gemini, s3_adapter, bot, kling_adapter)
album_service = AlbumService(dao)
# Dispatcher
@@ -138,6 +150,7 @@ async def lifespan(app: FastAPI):
app.state.gemini_client = gemini
app.state.bot = bot
app.state.s3_adapter = s3_adapter
app.state.kling_adapter = kling_adapter
app.state.album_service = album_service
app.state.users_repo = users_repo # Добавляем репозиторий в state