15 lines
442 B
Python
15 lines
442 B
Python
from __future__ import annotations
|
|
from dataclasses import dataclass
|
|
from typing import Protocol, AsyncIterator, Sequence
|
|
|
|
|
|
@dataclass
|
|
class Message:
|
|
role: str # "system" | "user" | "assistant"
|
|
content: str
|
|
|
|
|
|
class LLMClient(Protocol):
|
|
async def generate(self, messages: Sequence[Message], *, model: str, **params) -> str: ...
|
|
def stream(self, messages: Sequence[Message], *, model: str, **params) -> AsyncIterator[str]: ...
|