Mind-Reframe / ai-core /app /services /completion_service.py
cuongpm-cs's picture
Initial commit
f171e60
Raw
History Blame Contribute Delete
1.27 kB
from typing import List, Dict, Any, AsyncGenerator
from app.core.llm.client import llm_client
from app.models.requests import CompletionRequest
from app.models.responses import CompletionResponse, Usage
from app.utils.errors import LLMResponseError
class CompletionService:
async def process_completion(self, request: CompletionRequest) -> CompletionResponse:
try:
provider=llm_client.get_provider(request.provider)
response_data=await provider.completion(
prompt=request.prompt,
system_prompt=request.system_prompt,
model=request.model,
temperature=request.temperature,
max_tokens=request.max_tokens
)
return CompletionResponse(
id=response_data["id"],
text=response_data["text"],
model=response_data["model"],
provider=response_data["provider"],
usage=Usage(**response_data["usage"]) if response_data.get("usage") else None
)
except Exception as e:
raise LLMResponseError(
message=f"Failed to process chat: {str(e)}",
detail=str(e)
)
completion_service = CompletionService()