删除提示词中多余空格、换行等。减少不必要的token

This commit is contained in:
2025-09-26 11:31:18 +08:00
parent 2b13fdab99
commit bc6c907872
3 changed files with 26 additions and 53 deletions
-8
View File
@@ -142,14 +142,6 @@ class DialogueToWorkorder:
"base_url": os.getenv("OPENAI_API_BASE"),
"timeout": httpx.Timeout(600.0)
}
# self.llm_params = llm_params or {
# "temperature": 0.2,
# "top_p":0.95,
# "model": "deepseek-r1",
# "api_key": "25t%Syu6I9yxX2IuTN",
# "base_url": "http://10.1.0.154:8000/v1",
# "timeout": httpx.Timeout(600.0)
# }
self.llm = self._get_llm_instance()
# 创建工单JSON文件目录
+14 -31
View File
@@ -109,31 +109,20 @@ class Classification(BaseModel):
@classmethod
def get_format_instructions(cls):
return """
格式如下,必须严格以纯JSON格式输出
{
"vertical_classification": "垂直领域一级分类",
"sub_classification": "一级分类下的二级分类"
}
字段说明:
vertical_classification 类型:str 描述:垂直领域一级分类
sub_classification 类型:str 描述:一级分类下的二级分类
"""
return """格式如下,必须严格以纯JSON格式输出
{"vertical_classification": "垂直领域一级分类","sub_classification": "一级分类下的二级分类"}
字段说明:
vertical_classification 类型:str 描述:垂直领域一级分类
sub_classification 类型:str 描述:一级分类下的二级分类"""
class QueryRewrite(BaseModel):
rewrite:str = Field(description="问题改写")
@classmethod
def get_format_instructions(cls):
return """
格式如下:必须严格以纯JSON格式输出
{
"rewrite": "问题改写"
}
字段说明:
"rewrite" 类型:str 描述:问题改写之后的内容
"""
return """格式如下:必须严格以纯JSON格式输出{"rewrite": "问题改写"}
字段说明:
rewrite 类型:str 描述:问题改写之后的内容"""
# 意图优化环节数据模型
@@ -145,18 +134,12 @@ class StepBackPrompt(BaseModel):
@classmethod
def get_format_instructions(cls):
return """
格式如下,必须严格以纯JSON格式输出
{
"original_query": "原始查询",
"can_use_back_prompt": "原始查询是否可以进行后退提示(true/false),如果原始查询没有限定词或其他限定词语,则不能进行后退提示",
"step_back_query": "后退提示生成的抽象查询(多个)"
}
字段说明:
"original_query" 类型:str 描述:用户输入的原始查询
"can_use_back_prompt" 类型:bool 描述:原始查询是否可以进行后退提示(true/false),如果原始查询没有限定词或其他限定词语,则不能进行后退提示
"step_back_query" 类型:list[str] 描述:后退提示生成的抽象查询(多个)
"""
return """格式如下,必须严格以纯JSON格式输出
{"original_query": "原始查询","can_use_back_prompt": "原始查询是否可以进行后退提示(true/false),如果原始查询没有限定词或其他限定词语,则不能进行后退提示","step_back_query": "后退提示生成的抽象查询(多个)"}
字段说明:
original_query 类型:str 描述:用户输入的原始查询
can_use_back_prompt 类型:bool 描述:原始查询是否可以进行后退提示(true/false),如果原始查询没有限定词或其他限定词语,则不能进行后退提示
step_back_query 类型:list[str] 描述:后退提示生成的抽象查询(多个)"""
class FollowUpQuestions(BaseModel):
+12 -14
View File
@@ -28,14 +28,14 @@ extract_nouns_prompt="""
"""
classification_info="""【垂直领域分类】:
1. 软件问题 -- 涉及软件使用功能询问、软件故障排查等方面的提问或请求
2. 业务问题 -- 涉及电力造价领域专业知识、造价费用计算等电力造价业务知识
3. 安装下载注册 -- 指涉及软件(或插件)安装下载、注册、激活等操作类问题
4. 固定话术类 -- 指涉及需要固定话术回的问题,如:规费咨询、调差下载更新。
5. 其他 -- 与软件或电力造价专业无关的日常对话问候、感慨、情绪表达等
1. 软件问题 -- 涉及软件使用/功能/操作或故障排查
2. 业务问题 -- 涉及电力造价专业知识、计价规则或造价数据计算等。
3. 安装下载注册 -- 及软件或插件安装下载、注册、激活、文件扩展名、软件锁等。
4. 固定话术类 -- 需用固定话术回的问题,如:规费咨询、调差下载更新。
5. 其他 -- 与软件或电力造价无关的一般对话问候、情绪等)
【软件问题包括以下两类】:
1. 软件功能:询问软件功能的使用、功能操作(调整)、功能位置、如何设置、如何转换、如何导入到软件、如何安装到软件等侧重软件主体
1. 软件功能:询问软件如何使用、设置、导入、在软件中安装/转换等(以软件主体)。
示例:ywlk怎么安装到软件中? ywlk是文件后缀名 ---> 将文件导入到软件中
2. 故障排查:软件运行异常、软件报错、软件显示错误等
@@ -65,7 +65,7 @@ classification_info="""【垂直领域分类】:
**以下两种情况才属于该类**
1、询问如何下载导入调差文件、调差插件
2、询问如何更新导入调差文件、调差插件
调差价格水平差异调整
调差 = 价格水平差异调整
**其余涉及调差的属于其他垂直领域分类**
【其他】:
@@ -73,7 +73,7 @@ classification_info="""【垂直领域分类】:
分类优先级:固定话术类 > 软件问题 、 业务问题 、 安装下载注册 > 其他"""
classification_prompt="""用户在使用电力造价软件或想询问电力造价领域相关知识,你需要根据用户输入内容集合历史对话(如果存在),将其归类为以下垂直领域之一:
classification_prompt="""用户在使用电力造价软件或咨询电力造价相关问题,请将用户输入(结合历史对话,如有)归为以下垂直领域之一:
{classification_info}
## 【历史对话记录】
@@ -187,13 +187,11 @@ slot_filling_prompt = """
# 意图优化环节提示词模板
step_back_prompt = """# 后退提示生成器
你是一个专业的电力造价领域问题抽象专家。你的任务是根据用户的具体问题,提出一个更抽象、更高层次的问题,帮助系统更好地理解用户的意图。
你是电力造价领域的问题抽象专家。任务是把用户的具体问题抽象成更高层次的问题,帮助理解其核心意图。
## 任务说明
1. 分析用户原始问题,理解其核心意图和需求
2. 考虑历史对话和会话背景,理解用户当前问题的上下文
3. 生成更抽象、更高层次的问题,称为"后退问题",后退问题可以生成多个,依次后退到更抽象、更高层次的问题
1. 理解用户原始问题的核心
2. 考虑上下文
3. 生成逐级抽象的“后退问题”
4. 后退问题应该:
- 更加通用和抽象,不应包含原始问题的具体细节(包括场景限定、界面限定等其他限定词语)
- 涵盖原始问题的核心主题