36 lines
1.2 KiB
Python
36 lines
1.2 KiB
Python
"""表单填写 AI 生成模块
|
|
|
|
根据用户简历、岗位信息和表单字段,调 LLM 生成填写内容。
|
|
依赖:LLM 枚举、browser_plug/prompts
|
|
"""
|
|
|
|
from app.ai.browser_plug.prompts import FORM_FILL_SYSTEM_PROMPT
|
|
from app.ai.models import LLM
|
|
from app.core.logger import log
|
|
|
|
|
|
async def generate_form_answer(resume_text: str, job_text: str, agent_config_text: str,
|
|
label: str, reference: str | None, field_type: str) -> str:
|
|
"""生成表单字段的填写内容"""
|
|
system_content = FORM_FILL_SYSTEM_PROMPT.format(
|
|
resume_text=resume_text,
|
|
job_text=job_text,
|
|
agent_config_text=agent_config_text,
|
|
)
|
|
|
|
# 构造用户消息
|
|
user_parts = [f"表单字段:{label}", f"字段类型:{field_type}"]
|
|
if reference:
|
|
user_parts.append(f"参考信息:{reference}")
|
|
user_message = "\n".join(user_parts)
|
|
|
|
messages = [("system", system_content), ("human", user_message)]
|
|
|
|
try:
|
|
llm = LLM.DOUBAO_PRO_32K.create(temperature=0.3)
|
|
result = await llm.ainvoke(messages)
|
|
return result.content.strip()
|
|
except Exception as e:
|
|
log.error(f"表单填写AI调用失败: {e}")
|
|
raise ValueError("AI生成回答失败,请稍后重试")
|