支持fastapi服务

This commit is contained in:
puke
2025-10-28 01:33:36 +08:00
committed by puke
parent c387137446
commit c200761b97
28 changed files with 1854 additions and 4 deletions

45
api/dependencies.py Normal file
View File

@@ -0,0 +1,45 @@
"""
FastAPI Dependencies
Provides dependency injection for ReelForgeCore and other services.
"""
from typing import Annotated
from fastapi import Depends
from loguru import logger
from reelforge.service import ReelForgeCore
# Global ReelForge instance
_reelforge_instance: ReelForgeCore = None
async def get_reelforge() -> ReelForgeCore:
"""
Get ReelForge core instance (dependency injection)
Returns:
ReelForgeCore instance
"""
global _reelforge_instance
if _reelforge_instance is None:
_reelforge_instance = ReelForgeCore()
await _reelforge_instance.initialize()
logger.info("✅ ReelForge initialized for API")
return _reelforge_instance
async def shutdown_reelforge():
"""Shutdown ReelForge instance"""
global _reelforge_instance
if _reelforge_instance:
logger.info("Shutting down ReelForge...")
_reelforge_instance = None
# Type alias for dependency injection
ReelForgeDep = Annotated[ReelForgeCore, Depends(get_reelforge)]