morphik-core/core/completion/base_completion.py

29 lines
691 B
Python
Raw Normal View History

2024-12-26 08:52:25 -05:00
from abc import ABC, abstractmethod
from typing import List, Optional, Dict
from pydantic import BaseModel
class CompletionResponse(BaseModel):
"""Response from completion generation"""
2024-12-26 08:52:25 -05:00
completion: str
usage: Dict[str, int]
class CompletionRequest(BaseModel):
"""Request for completion generation"""
2024-12-26 08:52:25 -05:00
query: str
context_chunks: List[str]
max_tokens: Optional[int] = 1000
temperature: Optional[float] = 0.7
class BaseCompletionModel(ABC):
"""Base class for completion models"""
@abstractmethod
async def complete(self, request: CompletionRequest) -> CompletionResponse:
"""Generate completion from query and context"""
pass