File size: 566 Bytes
1061354
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
from abc import ABC, abstractmethod
from typing import AsyncIterator, Dict, Any
from src.models.requests import AdGenerationRequest


class BaseAdGenerator(ABC):
    """Abstract base class for ad generators"""
    
    @abstractmethod
    async def generate(self, request: AdGenerationRequest, **kwargs):
        """Generate advertisement"""
        pass
    
    @abstractmethod
    async def generate_streaming(self, request: AdGenerationRequest, **kwargs) -> AsyncIterator[Dict[str, Any]]:
        """Generate advertisement with streaming response"""
        pass