32 lines
1002 B
Python
32 lines
1002 B
Python
"""Nova Chat AI 引擎
|
|
|
|
构造 prompt + 调 LLM,直接返回 Markdown 文本。
|
|
依赖:LLM 枚举、nova_chat/prompts
|
|
"""
|
|
|
|
from app.ai.model_config import NovaChatModel
|
|
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:
|
|
result = await NovaChatModel.CHAT.ainvoke(messages)
|
|
return result.content.strip()
|
|
except Exception as e:
|
|
log.error(f"Nova Chat AI 调用失败: {e}")
|
|
return "抱歉,我暂时无法回复,请稍后再试。"
|