|
|
from functools import lru_cache |
|
|
|
|
|
from app.core.config import settings |
|
|
from app.core.openai_client import openai_client |
|
|
from app.db.mongo import get_api_logs_collection, get_autocategory_collection, get_subcategory_collection |
|
|
from app.services.autocategorizer import AutoCategoryService |
|
|
from app.services.api_logger import ApiLogger |
|
|
|
|
|
|
|
|
@lru_cache |
|
|
def _get_service() -> AutoCategoryService: |
|
|
return AutoCategoryService( |
|
|
collection_getter=get_autocategory_collection, |
|
|
subcategory_collection_getter=get_subcategory_collection, |
|
|
openai_client=openai_client, |
|
|
model=settings.openai_model, |
|
|
cache_ttl_seconds=settings.category_cache_ttl_seconds, |
|
|
db_timeout_seconds=settings.db_query_timeout_seconds, |
|
|
model_timeout_seconds=settings.openai_api_timeout_seconds, |
|
|
) |
|
|
|
|
|
|
|
|
def get_category_service() -> AutoCategoryService: |
|
|
return _get_service() |
|
|
|
|
|
|
|
|
@lru_cache |
|
|
def _get_api_logger() -> ApiLogger: |
|
|
return ApiLogger(collection_getter=get_api_logs_collection) |
|
|
|
|
|
|
|
|
def get_api_logger() -> ApiLogger: |
|
|
return _get_api_logger() |
|
|
|