This commit is contained in:
xds
2026-02-06 21:54:25 +03:00
parent b8e96a2dca
commit 2f8de7a298
7 changed files with 7 additions and 9 deletions

Binary file not shown.

View File

@@ -25,7 +25,7 @@ def get_bot_client(request: Request) -> Bot:
return request.app.state.bot
def get_s3_adapter(request: Request) -> Optional[S3Adapter]:
return getattr(request.app.state, "s3_adapter", None)
return request.app.state.s3_adapter
# Провайдер DAO (собирается из mongo_client)
def get_dao(
@@ -40,6 +40,7 @@ def get_dao(
def get_generation_service(
dao: DAO = Depends(get_dao),
gemini: GoogleAdapter = Depends(get_gemini_client),
s3_adapter: S3Adapter = Depends(get_s3_adapter),
bot: Bot = Depends(get_bot_client),
) -> GenerationService:
return GenerationService(dao, gemini, bot)
return GenerationService(dao, gemini, s3_adapter, bot)

View File

@@ -153,8 +153,8 @@ class GenerationService:
reference_assets: List[Asset] = []
media_group_bytes: List[bytes] = []
generation_prompt = f"""
You are an expert prompt engineer for Google Imagen 3.
Create a single, detailed, natural language prompt for image generation based on these inputs:
Create detailed image of character in scene.
$char_bio_inserted
2. SCENE DESCRIPTION: {generation.prompt}

View File

@@ -10,12 +10,9 @@ services:
restart: unless-stopped
depends_on:
- minio
env_file:
- .env
environment:
# Важно: внутри докера к другим контейнерам обращаемся по имени сервиса!
MINIO_ENDPOINT: "http://minio:9000"
MODE: production
minio:
image: minio/minio:latest

View File

@@ -38,6 +38,7 @@ from api.endpoints.character_router import router as api_char_router # Роут
from api.endpoints.generation_router import router as api_gen_router
load_dotenv()
logger = logging.getLogger(__name__)
# --- КОНФИГУРАЦИЯ ---
BOT_TOKEN = os.getenv("BOT_TOKEN")
@@ -66,7 +67,7 @@ char_repo = CharacterRepo(mongo_client)
# S3 Adapter
s3_adapter = S3Adapter(
endpoint_url=os.getenv("MINIO_ENDPOINT", "http://localhost:9000"),
endpoint_url=os.getenv("MINIO_ENDPOINT", "http://31.59.58.220:9000"),
aws_access_key_id=os.getenv("MINIO_ACCESS_KEY", "minioadmin"),
aws_secret_access_key=os.getenv("MINIO_SECRET_KEY", "minioadmin"),
bucket_name=os.getenv("MINIO_BUCKET", "ai-char")
@@ -195,7 +196,6 @@ if __name__ == "__main__":
setup_logging()
async def main():
# Создаем конфигурацию uvicorn вручную
# loop="asyncio" заставляет использовать стандартный цикл