"""Nova Chat AI 引擎 构造 prompt + 调 LLM,直接返回 Markdown 文本。 依赖:LLM 枚举、nova_chat/prompts """ from app.ai.models import LLM from app.ai.nova_chat.prompts import SYSTEM_PROMPT from app.core.logger import log async def nova_chat(resume_text: str, message: str, history: list[dict], job_context: str) -> str: """Nova 对话:拼 prompt → 拼历史 → 调 LLM → 返回 Markdown 文本""" system_content = SYSTEM_PROMPT.format( resume_text=resume_text, job_context=job_context, ) messages = [("system", system_content)] for msg in history: messages.append((msg["role"], msg["content"])) messages.append(("human", message)) try: llm = LLM.JIAYU_CLAUDE_SONNET_4_5.create(temperature=0.7) result = await llm.ainvoke(messages) return result.content.strip() except Exception as e: log.error(f"Nova Chat AI 调用失败: {e}") return "抱歉,我暂时无法回复,请稍后再试。"