1bfc8333e9
Per PLAN item 6. Legacy files moved to archive/legacy-pipeline/.
31 lines
844 B
Python
31 lines
844 B
Python
"""LLM service — DeepSeek API"""
|
|
|
|
import logging
|
|
from openai import AsyncOpenAI
|
|
from config import settings
|
|
|
|
logger = logging.getLogger("kira.llm")
|
|
|
|
|
|
def _get_client() -> AsyncOpenAI:
|
|
return AsyncOpenAI(
|
|
api_key=settings.deepseek_api_key,
|
|
base_url=settings.deepseek_base_url,
|
|
)
|
|
|
|
|
|
async def get_kira_response(messages: list[dict]) -> str:
|
|
"""Get Kira's response from the LLM."""
|
|
try:
|
|
client = _get_client()
|
|
resp = await client.chat.completions.create(
|
|
model=settings.deepseek_model,
|
|
messages=messages,
|
|
max_tokens=300,
|
|
temperature=0.7,
|
|
)
|
|
return resp.choices[0].message.content or "Mhm, I'm here!"
|
|
except Exception as e:
|
|
logger.error(f"LLM error: {e}")
|
|
return "I'm still here with you! Could you say that again?"
|