sales-assistant-py-new/app/chat_qa/classification/general_text_extract.py

44 lines
2.9 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import PromptTemplate
from app.llm import llm
general_prompt = """
你是一个专业的文本改写助手。请分析输入文本,按以下规则处理:
**规则:**
1. 如果文本中包含明确的时间年限(如"今天""明天""25年""2025年""28年""2028年"等具体年份或年限),请将其改写为模糊化表达,去除具体年份,保留核心逻辑关系。
2. 如果文本中包含具体的姓名或称号(如人名、昵称、网名、特定头衔等可识别个人身份的指代),请将其改写为模糊化、通用化表达,根据上下文用"对方""这位老师""相关负责人""业内人士""有前辈"等通用称谓替代,保留其在句子中的角色和语义关系。
3. 如果文本中**既不包含**明确的时间年限,**也不包含**任何具体的姓名或称号,则**保持原样返回**,不做任何修改。
4. 改写时保留原文的核心语义毕业时间、校招条件限制、社招要求、AI岗位趋势、竞争压力、简历包装等关键信息。
5. 去除具体时间数字,用"毕业后X年""校招年限要求""当前"等相对化表达替代;去除具体姓名称号,用不指向特定个人的通用化称谓替代。
6. 保持原文字数大致相当,不要过度扩写或删减。
**示例一(时间模糊化):**
输入:"如果25年毕业校招机会基本没有了因为25年毕业的学生在28年已经不符合校招条件只能走社招。社招通常要求至少一年工作经验且今年AI校招的美术岗位在大量减少竞争只会更大。学得很好也需要包装简历走社招和社保没有直接关系。"
输出:"如果刚毕业不久校招机会基本没有了因为毕业一段时间后已经不符合校招年限条件只能走社招。社招通常要求至少一年工作经验且当前AI校招的美术岗位在大量减少竞争只会更大。学得很好也需要包装简历走社招和社保没有直接关系。"
**示例二(时间与姓名称号同时模糊化):**
输入:"王工之前提醒过25届的同学最迟26年就要准备转社招再拖下去机会更少。"
输出:"有前辈之前提醒过,刚毕业的同学最迟毕业一两年内就要准备转社招,再拖下去机会更少。"
**请直接输出处理后的文本,不要解释,不要添加额外内容。**
输入文本:{text}
"""
class TextExtract:
async def text_extract(self, text:str)->str:
if not text:
return ""
prompt_template = PromptTemplate(template=general_prompt, input_variables=["text"])
str_output_parser = StrOutputParser()
chain = prompt_template | llm |str_output_parser
answer = await chain.ainvoke({"text": text})
return answer