29 lines
642 B
Python
29 lines
642 B
Python
from abc import ABC, abstractmethod
|
|
from typing import Optional
|
|
|
|
|
|
class LLMProvider(ABC):
|
|
@abstractmethod
|
|
async def generate(
|
|
self,
|
|
system_prompt: str,
|
|
user_message: str,
|
|
context_chunks: list,
|
|
max_tokens: int = 512,
|
|
) -> Optional[str]:
|
|
"""실패 시 None 반환. 예외 raise 금지."""
|
|
...
|
|
|
|
|
|
class NullLLMProvider(LLMProvider):
|
|
"""LLM_PROVIDER=none 기본값"""
|
|
|
|
async def generate(
|
|
self,
|
|
system_prompt: str = "",
|
|
user_message: str = "",
|
|
context_chunks: list = None,
|
|
max_tokens: int = 512,
|
|
) -> None:
|
|
return None
|