File size: 678 Bytes
0f8b3a0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
from abc import ABC
from dataclasses import dataclass, field
from typing import List

from PIL.Image import Image

from velai.services.generator_service import BaseGeneratorService, GenerationInput, GenerationResult


@dataclass
class TextGenerationInput(GenerationInput):
    prompt: str = ""
    images: List[Image] = field(default_factory=list)
    reasoning: bool | None = None
    temperature: float | None = None
    max_tokens: int | None = None


@dataclass
class TextGenerationResult(GenerationResult):
    """Result of a text generation call."""

    text: str = ""


class TextGenerator(BaseGeneratorService[TextGenerationInput, TextGenerationResult], ABC):
    pass