File size: 1,242 Bytes
9c84f9d
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
29
30
31
32
33
34
from abc import ABC, abstractmethod

from solar_eval.models.sample import EvalSample
from solar_eval.providers.base import BaseProvider


class BasePipeline(ABC):
    @abstractmethod
    async def run(
        self,
        sample: EvalSample,
        *,
        prompts: str,
        provider: BaseProvider,
        model: str,
        temperature: float = 0.0,
        max_tokens: int = 8000,
        reasoning_effort: str | None = None,
        messages: list[dict[str, str]] | None = None,
    ) -> EvalSample:
        """`sample.input` ์„ ์ฝ์–ด `sample.output` ์„ ์ฑ„์šฐ๊ณ  ๋˜๋Œ๋ ค์ค€๋‹ค.

        ๋ฉ€ํ‹ฐ์Šคํ… ํŒŒ์ดํ”„๋ผ์ธ์€ ์Šคํ…๋งˆ๋‹ค `sample.output` ์„ ๋ฎ์–ด์“ฐ๋ฉด์„œ
        `sample.artifacts["step_outputs"]` ์— {์Šคํ… ์ด๋ฆ„: ๊ทธ ์Šคํ… ์งํ›„ output} ์„
        ๋ˆ„์ ํ•œ๋‹ค. usage/timing ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋Š” `sample.artifacts["usage"]` /
        `sample.artifacts["inference_time_ms"]` ์— ๋‹ด๋Š”๋‹ค.

        Args:
            sample: ์ฑ„์šธ ์ƒ˜ํ”Œ. `sample.input` ์ด ํŒŒ์ดํ”„๋ผ์ธ ์ž…๋ ฅ์ด๋‹ค.
            prompts: single-step ์˜ ์‹œ์Šคํ…œ ํ”„๋กฌํ”„ํŠธ. multi-step ์€ ์Šคํ…๋ณ„
                ํ”„๋กฌํ”„ํŠธ๊ฐ€ ์ƒ์„ฑ์ž์—์„œ ์ด๋ฏธ ์ฃผ์ž…๋ผ ์žˆ์–ด ์ด ์ธ์ž๋ฅผ ์“ฐ์ง€ ์•Š๋Š”๋‹ค.
        """
        ...