Files
2026-07-13 13:32:05 +08:00

30 lines
819 B
Python

from abc import ABC, abstractmethod
from typing import Union, List, Dict, Tuple
from deepeval.models.base_model import DeepEvalBaseLLM
from deepeval.optimizer.scorer.base import BaseScorer
from deepeval.prompt.prompt import Prompt
from deepeval.dataset.golden import Golden, ConversationalGolden
class BaseAlgorithm(ABC):
name: str
optimizer_model: DeepEvalBaseLLM
scorer: BaseScorer
@abstractmethod
def execute(
self,
prompt: Prompt,
goldens: Union[List[Golden], List[ConversationalGolden]],
) -> Tuple[Prompt, Dict]:
raise NotImplementedError
@abstractmethod
async def a_execute(
self,
prompt: Prompt,
goldens: Union[List[Golden], List[ConversationalGolden]],
) -> Tuple[Prompt, Dict]:
raise NotImplementedError