aidial_sdk/chat_completion/base.py (29 lines of code) (raw):
from abc import ABC, abstractmethod
from aidial_sdk.chat_completion.request import Request
from aidial_sdk.chat_completion.response import Response
from aidial_sdk.deployment.configuration import (
ConfigurationRequest,
ConfigurationResponse,
)
from aidial_sdk.deployment.rate import RateRequest
from aidial_sdk.deployment.tokenize import TokenizeRequest, TokenizeResponse
from aidial_sdk.deployment.truncate_prompt import (
TruncatePromptRequest,
TruncatePromptResponse,
)
class ChatCompletion(ABC):
@abstractmethod
async def chat_completion(
self, request: Request, response: Response
) -> None:
"""Implement chat completion logic"""
async def rate_response(self, request: RateRequest) -> None:
"""Implement rate response logic"""
async def tokenize(self, request: TokenizeRequest) -> TokenizeResponse:
"""Implement tokenize logic"""
raise NotImplementedError()
async def truncate_prompt(
self, request: TruncatePromptRequest
) -> TruncatePromptResponse:
"""Implement truncate prompt logic"""
raise NotImplementedError()
async def configuration(
self, request: ConfigurationRequest
) -> ConfigurationResponse:
"""Implement configuration logic"""
raise NotImplementedError()