import logging from openai import AsyncOpenAI # Use AsyncOpenAI from typing import final from app.core.providers.base import LLMProvider from app.config import settings @final class DeepSeekProvider(LLMProvider): """Provider for the DeepSeek API.""" def __init__(self, model_name: str, client: AsyncOpenAI): # Type hint with AsyncOpenAI self.model = model_name self._client = client async def generate_response(self, prompt: str) -> str: messages = [{"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": prompt}] try: # This await is now correct for AsyncOpenAI chat_completion = await self._client.chat.completions.create(model=self.model, messages=messages) return chat_completion.choices[0].message.content except Exception as e: logging.error("DeepSeek Provider Error", exc_info=True) raise