File size: 629 Bytes
5db30ac
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
from __future__ import annotations

from abc import ABC, abstractmethod

from elbench.schemas.config import ModelConfig, ProviderConfig
from elbench.schemas.evaluation import GenerationRequest, ModelResponse, Sample


class ModelClient(ABC):
    def __init__(self, provider_config: ProviderConfig, model_config: ModelConfig) -> None:
        self.provider_config = provider_config
        self.model_config = model_config

    @abstractmethod
    async def generate(self, sample: Sample, request: GenerationRequest) -> ModelResponse:
        raise NotImplementedError

    async def aclose(self) -> None:
        return None