Files

20 lines
794 B
Python
Raw Permalink Normal View History

from abc import ABC, abstractmethod
class LLMClient(ABC):
@abstractmethod
async def chat(self, model: str, messages: list[dict]) -> str:
"""Send a text chat request and return the response content string."""
@abstractmethod
async def chat_vision(self, model: str, messages: list[dict]) -> str:
"""Send a multimodal (vision) chat request and return the response content string."""
@abstractmethod
async def submit_finetune(self, jsonl_url: str, base_model: str, hyperparams: dict) -> str:
"""Submit a fine-tune job and return the job_id."""
@abstractmethod
async def get_finetune_status(self, job_id: str) -> dict:
"""Return a dict with keys: job_id, status (raw SDK string), progress (int|None), error_message (str|None)."""