add action result analysis

This commit is contained in:
Tiger Ren 2024-08-21 17:22:55 +08:00
parent d2ac3e0472
commit 4e662a4e70
2 changed files with 93 additions and 1 deletions

90
analysis_action_result.py Normal file
View File

@ -0,0 +1,90 @@
import re
import pandas as pd
from AgentProxy import AgentProxy
result_category_list = [
"完成需求确认与收集",
"完成技术评估与测试",
"完成商务谈判与合同准备",
"完成内部审批与预算确认",
"完成项目立项与采购流程",
"完成关系建立与维护",
"完成市场调研与竞争分析",
"完成产品推广与市场活动",
"完成技术支持与售后服务",
"完成续约与增购谈判"
]
df = pd.read_excel('analysis_result_action_result_top200.xlsx')
data = []
for index, row in df.iterrows():
text = row["行动结果"]
# print(text)
action_pattern = re.compile(r'\*\*销售动作\*\*(.+?)\n')
category_pattern = re.compile(r'\*\*销售动作归类\*\*(.+?)\n')
result_pattern = re.compile(r'\*\*销售动作行动结果\*\*(.+?)\n')
abstract_result_pattern = re.compile(r'\*\*抽象销售动作行动结果\*\*(.+?)\n')
# Find all matches
actions = action_pattern.findall(text)
categories = category_pattern.findall(text)
results = result_pattern.findall(text)
abstract_results = abstract_result_pattern.findall(text)
if (len(actions) == len(categories) and len(actions) == len(results) and len(actions) == len(abstract_results)):
print("index result compliance: true")
else:
print("index result compliance: false")
continue
# Combine into a list of dictionaries
for action, category, result, abstract_result in zip(actions, categories, results, abstract_results):
data.append({
"action": action,
"action_category": category,
"result": result,
"result_category": abstract_result
})
result_list = []
for item in data:
print(item["result"])
result_list.append(item["result"])
# prompt_abstract_result = (f"以下列表为销售动作行动结果,请分析各个结果,将其抽象、总结成通用、概括性的销售行动结果,请注意要体现出结果,比如确定了需求,达成了签约,即完成了什么任务达成了什么效果"
# f"{','.join(result_list)}")
api_key = '25bda2c39c0f8ca0'
api_secret = 'e0008b9b9727cb8ceea5a132dbe62495'
assistant_id = "66bb09a84673b57506fe7bbd"
agent = AgentProxy(assistant_id, api_key, api_secret)
# res = agent.send_message(prompt_abstract_result)
# print(res)
statistics = {}
for index, row in df.iterrows():
try:
text = row["当前详细状态及Close节奏"]
stage = row["Sales stage"]
if stage not in statistics:
statistics[stage] = 0
statistics[stage] += 1
prompt_result_analysis = (f"以下是销售行动结果列表:"
f"{','.join(result_category_list)}"
f"请分析如下销售日志,提取出其中的销售动作,并且分析该销售动作是否达成了上述定义的销售动作结果之一,如达成,请将该销售动作映射到行动结果上,如果未达成,则映射到\"未达成\""
f"销售日志如下:{text}"
f"输出格式如下:"
f"**销售动作**:"
f"**销售动作行动结果**:"
)
print(prompt_result_analysis)
res = agent.send_message(prompt_result_analysis)
df.at[index, "销售动作行动结果"] = res
print(res)
except Exception as e:
print(f"Error processing row {index}: {e}")
df.at[index, "销售动作行动结果"] = f"Error: {e}"
df.to_excel('analysis_result_action_result_stage2.xlsx')

View File

@ -97,4 +97,6 @@ if json_match:
mapping = json.loads(json_data)
else:
mapping = []
print(mapping)
print(mapping)