From c50d2c8ad9e54fd38805ce57de34216e386d53b5 Mon Sep 17 00:00:00 2001 From: xds Date: Wed, 18 Feb 2026 16:44:04 +0300 Subject: [PATCH] fixes --- api/endpoints/generation_router.py | 4 ++-- api/models/FinancialUsageDTO.py | 18 ++++++++++++++++++ api/models/__init__.py | 7 +++++++ api/service/generation_service.py | 4 ++-- 4 files changed, 29 insertions(+), 4 deletions(-) create mode 100644 api/models/FinancialUsageDTO.py diff --git a/api/endpoints/generation_router.py b/api/endpoints/generation_router.py index f035001..fa890c1 100644 --- a/api/endpoints/generation_router.py +++ b/api/endpoints/generation_router.py @@ -8,8 +8,8 @@ from api import service from api.dependency import get_generation_service, get_project_id, get_dao from repos.dao import DAO -from api.models.GenerationRequest import GenerationResponse, GenerationRequest, GenerationsResponse, PromptResponse, PromptRequest, GenerationGroupResponse -from api.models.FinancialUsageDTO import FinancialReport +from api.models import GenerationResponse, GenerationRequest, GenerationsResponse, PromptResponse, PromptRequest, GenerationGroupResponse +from api.models import FinancialReport from api.service.generation_service import GenerationService from models.Generation import Generation diff --git a/api/models/FinancialUsageDTO.py b/api/models/FinancialUsageDTO.py new file mode 100644 index 0000000..90f1afd --- /dev/null +++ b/api/models/FinancialUsageDTO.py @@ -0,0 +1,18 @@ +from pydantic import BaseModel +from typing import List, Optional + +class UsageStats(BaseModel): + total_runs: int + total_tokens: int + total_input_tokens: int + total_output_tokens: int + total_cost: float + +class UsageByEntity(BaseModel): + entity_id: Optional[str] = None + stats: UsageStats + +class FinancialReport(BaseModel): + summary: UsageStats + by_user: Optional[List[UsageByEntity]] = None + by_project: Optional[List[UsageByEntity]] = None diff --git a/api/models/__init__.py b/api/models/__init__.py index e69de29..de960aa 100644 --- a/api/models/__init__.py +++ b/api/models/__init__.py @@ -0,0 +1,7 @@ +from .AssetDTO import AssetResponse, AssetsResponse +from .CharacterDTO import CharacterCreateRequest, CharacterUpdateRequest +from .ExternalGenerationDTO import ExternalGenerationDTO +from .FinancialUsageDTO import FinancialReport, UsageStats, UsageByEntity +from .GenerationRequest import GenerationRequest, GenerationResponse, GenerationsResponse, GenerationGroupResponse, PromptRequest, PromptResponse +from .IdeaRequest import IdeaRequest +from .PostRequest import PostRequest diff --git a/api/service/generation_service.py b/api/service/generation_service.py index 8fc36aa..3a0df32 100644 --- a/api/service/generation_service.py +++ b/api/service/generation_service.py @@ -12,8 +12,8 @@ from aiogram import Bot from aiogram.types import BufferedInputFile from adapters.Exception import GoogleGenerationException from adapters.google_adapter import GoogleAdapter -from api.models.GenerationRequest import GenerationRequest, GenerationResponse, GenerationsResponse, GenerationGroupResponse -from api.models.FinancialUsageDTO import FinancialReport, UsageStats, UsageByEntity +from api.models import GenerationRequest, GenerationResponse, GenerationsResponse, GenerationGroupResponse +from api.models import FinancialReport, UsageStats, UsageByEntity # Импортируйте ваши модели DAO, Asset, Generation корректно from models.Asset import Asset, AssetType, AssetContentType from models.Generation import Generation, GenerationStatus