33 lines
1.0 KiB
Python
33 lines
1.0 KiB
Python
"""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 "抱歉,我暂时无法回复,请稍后再试。"
|