调整提词逻辑,改进日志生成部分,改进销售阶段查询部分
This commit is contained in:
parent
28f62b3957
commit
75b30073de
|
|
@ -45,13 +45,24 @@ def retrive_stream():
|
|||
chunk_out = format_chunk(chunk, None, None)
|
||||
print(f'chunk_out: {chunk_out}')
|
||||
yield json.dumps(chunk_out) + '\n'
|
||||
yield json.dumps(format_chunk("", "日报缺乏来源信息", "请补充日报缺乏的信息")) + '\n'
|
||||
yield json.dumps(format_chunk("", None, None)) + '\n'
|
||||
return Response(event_stream_websearch_sse(),mimetype='text/event-stream', headers=response_headers)
|
||||
|
||||
elif classification_result.get('category')== 'retrive_knowledge':
|
||||
logger.info(f'question classify: retrive_knowledge')
|
||||
message = message.replace("我", "我(徐春峰)")
|
||||
|
||||
ask_for_project = zhipu_alltool_service.func_call_yes_or_no(message, "输入问题是否在查询负责的项目信息")
|
||||
ask_for_project = json.loads(ask_for_project)
|
||||
if ask_for_project.get('answer') == 'yes':
|
||||
message += " 用markdown表格形式输出,输出字段:客户名称, 商机名称, Sales stage, 预估 ACV, 预计签单时间"
|
||||
else:
|
||||
ask_for_project = zhipu_alltool_service.func_call_yes_or_no(message, "输入问题是否在询问项目的销售阶段或销售信息")
|
||||
ask_for_project = json.loads(ask_for_project)
|
||||
if ask_for_project.get('answer') == 'yes':
|
||||
message += " 用markdown表格形式输出,输出字段:客户名称, 商机名称, Sales stage, 预测类型,Timing 风险, 预估 ACV, 预计签单时间"
|
||||
|
||||
|
||||
def event_stream_retrive():
|
||||
accumulated_result = ""
|
||||
for chunk in zhipu_service.retrive_sse(message, knowledge_id, system_prompt="你是一个销售助理,语言对话请以第一人称你我进行"):
|
||||
|
|
@ -68,10 +79,17 @@ def retrive_stream():
|
|||
# Here is the hack information
|
||||
# 1. 获取到当前的日期
|
||||
# 2. append 项目信息
|
||||
prompt_project_info = "项目:数字电网项目"
|
||||
# contain_project_info = zhipu_alltool_service.func_call_yes_or_no(message, "是否包含项目信息")
|
||||
# logger.info(f'contain_project_info: {contain_project_info}')
|
||||
# contain_project_info = json.loads(contain_project_info)
|
||||
# if contain_project_info.get('answer') == 'yes':
|
||||
# logger.info(f'contain_project_info: {contain_project_info}')
|
||||
# pass
|
||||
# else:
|
||||
# return format_chunk("请指定生成日报的项目信息",None,None)
|
||||
prompt_date = datetime.now().strftime("%Y-%m-%d")
|
||||
prompt_report_template = PromptRepository().get_prompt("report_template")
|
||||
prompt_report_title = f"根据日志模版的样式,查询{prompt_project_info} 销售日志并生成日志报告,注意需要同时提取非项目进展的信息。如果有缺失的要点(时间、参与人、事件、获得信息、信息来源、事件结果描述),假如日志没有明确按照要点提供信息,则认为缺失,不要从其他要点中总结,\n {prompt_report_template}。输出(按照模版的markdown格式):1. 日志报告 \n 2. 缺失的要点(如果存在)"
|
||||
prompt_report_title = f"根据用户提问中\"\"\" {message} \"\"\" 中提到的项目信息 在知识库中查找该项目的销售日志。如果销售日志中缺乏模板中的要点(时间,参与人,事件,获得信息,信息来源,项目进展描述)信息,则该要点内容留空,不要填充信息 日报模板: \"\"\" {prompt_report_template} \"\"\"。输出: 日志报告"
|
||||
generated_report = ""
|
||||
for chunk in zhipu_service.retrive_sse(prompt_report_title + message, knowledge_id, None):
|
||||
if chunk:
|
||||
|
|
@ -79,22 +97,30 @@ def retrive_stream():
|
|||
generated_report += chunk
|
||||
chunk_out = format_chunk(chunk, None, None)
|
||||
yield json.dumps(chunk_out) + '\n'
|
||||
yield json.dumps(format_chunk("", "日报缺乏来源信息", "请补充日报缺乏的信息")) + '\n'
|
||||
logger.info(generated_report)
|
||||
absense_info = ''
|
||||
if '视睿电子' in message or '联特科技' in message :
|
||||
absense_info = "项目进展描述"
|
||||
elif '深圳麦克韦尔' in message:
|
||||
absense_info = "信息来源及项目进展描述"
|
||||
elif '芝麻地网科' in message:
|
||||
absense_info = "获得信息及项目进展描述"
|
||||
yield json.dumps(format_chunk("", f"日报缺乏{absense_info}信息,请补充", f"请补充日报缺乏的{absense_info}信息")) + '\n'
|
||||
|
||||
return Response(event_stream_generate_report(), mimetype='text/event-stream', headers=response_headers)
|
||||
elif classification_result.get('category')== 'update_report':
|
||||
# 1. submit report
|
||||
submit_result = zhipu_file_service.submit_file(prefix="销售日志",project_name="数字电网项目", file_content=message)
|
||||
# submit_result = zhipu_file_service.submit_file(prefix="销售日志",project_name="数字电网项目", file_content=message)
|
||||
|
||||
#2. 重新生成日报
|
||||
def event_stream_generate_report_updated():
|
||||
# Here is the hack information
|
||||
# 1. 获取到当前的日期
|
||||
# 2. append 项目信息
|
||||
prompt_project_info = "项目:数字电网项目"
|
||||
|
||||
prompt_date = datetime.now().strftime("%Y-%m-%d")
|
||||
prompt_report_template = PromptRepository().get_prompt("report_template")
|
||||
prompt_report_title = f"根据日志模版的样式,查询{prompt_project_info} 销售日志并生成日志报告,注意需要同时提取非项目进展的信息。如果有缺失的要点(时间、参与人、事件、获得信息、信息来源、事件结果描述),如果日志没有明确按照要点提供信息,则认为缺失,不要从其他要点中总结,如有多个版本,请合并信息\n {prompt_report_template}。输出(按照模版的markdown格式):1. 日志报告 \n 2. 缺失的要点(如果存在)"
|
||||
prompt_report_title = f"根据用户提问中\"\"\" {message} \"\"\" 中提到的项目信息 在知识库中查找该项目的销售日志并结合用户提供的新的日志信息 \"\"\"{message} \"\"\"生成日报。如果销售日志中缺乏模板中的要点(时间,参与人,事件,获得信息,信息来源,项目进展描述)信息,则该要点内容留空,不要填充信息 日报模板: \"\"\" {prompt_report_template} \"\"\"。输出: 日志报告"
|
||||
generated_report = ""
|
||||
for chunk in zhipu_service.retrive_sse(prompt_report_title + message, knowledge_id, None):
|
||||
if chunk:
|
||||
|
|
@ -102,7 +128,8 @@ def retrive_stream():
|
|||
generated_report += chunk
|
||||
chunk_out = format_chunk(chunk, None, None)
|
||||
yield json.dumps(chunk_out) + '\n'
|
||||
yield json.dumps(format_chunk("", "日报缺乏来源信息", "请补充日报缺乏的信息")) + '\n'
|
||||
logger.info(generated_report)
|
||||
# yield json.dumps(format_chunk("", None, None)) + '\n'
|
||||
return Response(event_stream_generate_report_updated(), mimetype='text/event-stream', headers=response_headers)
|
||||
elif classification_result.get('category')== 'clear_report':
|
||||
deleted_files = zhipu_file_service.delete_file_by_prefix(prefix="销售日志", project_name="数字电网项目")
|
||||
|
|
|
|||
|
|
@ -50,9 +50,8 @@ class PromptRepository:
|
|||
DEFAULT_REPORT_TEMPLATE = """
|
||||
# 销售日志信息
|
||||
|
||||
## 一、项目进展
|
||||
|
||||
### 1. 【项目名称】
|
||||
## 【项目名称】
|
||||
|
||||
- **时间**:【时间】
|
||||
- **参与人**:【职务-姓名】
|
||||
|
|
@ -61,15 +60,7 @@ class PromptRepository:
|
|||
- **信息来源**:【信息来源】
|
||||
- **项目进展描述**:【项目进展描述】
|
||||
|
||||
## 二、非项目进展
|
||||
|
||||
### 1. 【事件名称】
|
||||
|
||||
- **时间**:【日期】
|
||||
- **参与人**:职务-姓名
|
||||
- **获得信息**:【信息内容】
|
||||
- **信息来源**:【信息来源】
|
||||
- **事件结果描述**:【事件结果描述】
|
||||
"""
|
||||
|
||||
PROMPTS = {
|
||||
|
|
|
|||
Loading…
Reference in New Issue