178 lines
12 KiB
Python
178 lines
12 KiB
Python
# This Python file uses the following encoding: utf-8
|
||
|
||
import pandas as pd
|
||
from AgentProxy import AgentProxy
|
||
from datetime import datetime # Add this import
|
||
|
||
# Here you need to replace the API Key and API Secret with your,I provide a test key and secret here
|
||
api_key = '25bda2c39c0f8ca0'
|
||
api_secret = 'e0008b9b9727cb8ceea5a132dbe62495'
|
||
assistant_id = "66bb09a84673b57506fe7bbd"
|
||
agent = AgentProxy(assistant_id, api_key, api_secret)
|
||
|
||
# Prospecting
|
||
# Evaluation
|
||
# Qualification
|
||
# Bidding / Negotiating
|
||
# Contract Review
|
||
# Closed Won
|
||
# Cancel
|
||
# Closed Lost
|
||
sales_stages = ["Prospecting", "Evaluation", "Qualification", "Bidding / Negotiating", "Contract Review", "Closed Won", "Cancel", "Closed Lost"]
|
||
|
||
prompt = "某公司销售阶段分为如下几个定义,你能告诉我什么信息 "+ str(sales_stages)
|
||
print(prompt)
|
||
# print(agent.send_message(prompt))
|
||
|
||
|
||
professional_won_path = [
|
||
{
|
||
"销售阶段名称": "01-prospecting",
|
||
"客户采购行为": "",
|
||
"销售阶段任务": "了解客户信息、与客户进行交流,初步了解客户需求,并确定项目对接人,进入客户供应商名单",
|
||
"关键获取信息": "1.联系人姓名\n2.部门\n3.职务\n4.手机\n5.预估整体项目节点数\n6.CRM情况\n7.是否是独立预算",
|
||
"销售关键动作": "1、了解客户组织架构,了解客户现有系统使用情况、竞品使用情况\n2、判断匹配度\n3、明确关键部门及其关键人\n4、明确客户是否有对应预算",
|
||
"售前关键动作": "",
|
||
"客户支持行为": "1. 交流中客户较为开放,能告知需求,计划较为清晰;\n2. 愿意进一步需求沟通;\n3. 交流有多人甚至有多部门参与讨论;",
|
||
"阶段转化标准": "1.客户有需求\n2.有明确的项目联系人"
|
||
},
|
||
{
|
||
"销售阶段名称": "02-evaluation",
|
||
"客户采购行为": "",
|
||
"销售阶段任务": "收集客户信息,了解客户内部预算情况、预期的项目落地时间、产品和数量等,判断商机可靠性;组织技术交流,讲解公司解决方案,传递公司价值",
|
||
"关键获取信息": "1、整理需求确认文档,客户确认\n2.在CRM录入组织架构,明确决策链和决策人\n3.预算是否完成申批\n4.是否进PCC\n5.PCC是否已申批:6.PcC状态\n7.测试类型\n8.测试项(用例)",
|
||
"销售关键动作": "1、整理需求确认文档,客户确认\n2、在CRM录入组织架构,明确决策链和决策人\n3、了解决策链的每个客户动力;\n4.发展线人\n5、组织技术交流,传递公司及产品价值,引导客户的场景和我们的特性结合\n6、组织技术交流,了解预期的项目落地时间、产品和数量等\n7.和客户确认是否需要测试\n8、对客户提出的测试需求进行评估,确定需求我们优势够,决定是否跟进测试",
|
||
"售前关键动作": "",
|
||
"客户支持行为": "1.愿意透露决策链信息,预算信息,友商信息,时间信息。\n2. 能介绍高title的人\n3. 客户有对我们产品的测试计划;",
|
||
"阶段转化标准": "1.客户有预算\n2.有明确的项目时间\n3.有预期的产品和数量"
|
||
},
|
||
{
|
||
"销售阶段名称": "03-qualification",
|
||
"客户采购行为": "",
|
||
"销售阶段任务": "收集、确认项目立项信息,明确产品和数量;\n组织测试必要性并引导客户做poc测试,验证应用场景和技术适用性、平鼎成功入围",
|
||
"关键获取信息": "1.立项批复\n2.立项时间\n3.立项金额\n(立项报告的内容)\n4.招标方式",
|
||
"销售关键动作": "1、和客户确认是否需要测试\n2、对客户提出的测试需求进行评估,确定需求我们优势够,决定是否跟进测试\n3、引导客户的测试方案制定,引导将我们优势点,加入到测试方案中,如:性能、扩展性、边界\n4、在公司内部组织测试资源\n5、获取客户内部的测试报告,了解真实的测试结论\n6、了解客户对测试结果的态度和对手情况\n7、做测试正式汇报,和客户达成一致",
|
||
"售前关键动作": "",
|
||
"客户支持行为": "1.支持对我方有利的测试方案\n2. 提供内部真实的测试报告\n3.决策链人员认同测试效果,客户愿意引荐更高层领导汇报\n4.双方沟通项目计划且达成一致\n5.主动邀请提供招标参数或汇报材料",
|
||
"阶段转化标准": "1.项目预算批准、项目已立项\n2.有确定产品和数量、或\n3.完成场景应用/技术适用性验证、客户确定平鼎入围(完成poc)"
|
||
},
|
||
{
|
||
"销售阶段名称": "04-bidding/negotiating",
|
||
"客户采购行为": "",
|
||
"销售阶段任务": "确认项目是否需要招标,提前影响招投标结果并赢得标书;若不需要招标,则完成商务谈判,确认价格和产品可交付沟通与评审",
|
||
"关键获取信息": "1.是否投标\n2.发标时间\n3.投标时间\n4.竞争对手\n5.对手产配置\n6.对手投标金额",
|
||
"销售关键动作": "1.制定关单策略及竞争策略\n2.控制立项报告(对对手不利的参数)\n3.如果无法控制立项,制定应对策略\n4.创造机会与高层沟通汇报\n5.沟通交付计划及SOW\n6. 确定关键联系人",
|
||
"售前关键动作": "",
|
||
"客户支持行为": "1.反馈客户内部的进展和计划\n2. 客户内部立项成功\n3.采纳我们提交的标参数(或有利于我方)\n3. 对黑马和灰犀牛的处理,愿意提供应对处理",
|
||
"阶段转化标准": "1.完成可交付评审;\n2.投标通过审批;\n3.投标结果确认赢标或完成商务谈判,确定价格和产品"
|
||
},
|
||
{
|
||
"销售阶段名称": "05-contract review",
|
||
"客户采购行为": "",
|
||
"销售阶段任务": "发起合同协议审批申请,确认合同条款",
|
||
"关键获取信息": "无",
|
||
"销售关键动作": "",
|
||
"售前关键动作": "",
|
||
"客户支持行为": "",
|
||
"阶段转化标准": "合同评审通过,完成合同协商审批,确认合同条款"
|
||
},
|
||
{
|
||
"销售阶段名称": "06-closed won",
|
||
"客户采购行为": "",
|
||
"销售阶段任务": "合同归档,项目赢单",
|
||
"关键获取信息": "无",
|
||
"销售关键动作": "",
|
||
"售前关键动作": "",
|
||
"客户支持行为": "",
|
||
"阶段转化标准": "合同归档"
|
||
},
|
||
{
|
||
"销售阶段名称": "06-closed cancel",
|
||
"客户采购行为": "确认项目取消原因",
|
||
"销售阶段任务": "复盘项目输单原因",
|
||
"关键获取信息": "取消原因",
|
||
"销售关键动作": "",
|
||
"售前关键动作": "",
|
||
"客户支持行为": "",
|
||
"阶段转化标准": "1.客户明确表示取消项目\n2.投标确认状态为输单"
|
||
}
|
||
]
|
||
|
||
pro_sales_stage_definition = """
|
||
1. 01-prospecting:
|
||
- 销售阶段任务: 了解客户信息、与客户进行交流,初步了解客户需求,并确定项目对接人,进入客户供应商名单
|
||
- 销售关键动作: 1、了解客户组织架构,了解客户现有系统使用情况、竞品使用情况 2、判断匹配度 3、明确关键部门及其关键人 4、明确客户是否有对应预算
|
||
- 阶段转化标准: 1.客户有需求 2.有明确的项目联系人
|
||
|
||
2. 02-evaluation:
|
||
- 销售阶段任务: 收集客户信息,了解客户内部预算情况、预期的项目落地时间、产品和数量等,判断商机可靠性;组织技术交流,讲解公司解决方案,传递公司价值
|
||
- 销售关键动作: 1、整理需求确认文档,客户确认 2、在CRM录入组织架构,明确决策链和决策人 3、了解决策链的每个客户动力; 4.发展线人 5、组织技术交流,传递公司及产品价值,引导客户的场景和我们的特性结合 6、组织技术交流,了解预期的项目落地时间、产品和数量等 7.和客户确认是否需要测试 8、对客户提出的测试需求进行评估,确定需求我们优势够,决定是否跟进测试
|
||
- 阶段转化标准: 1.客户有预算 2.有明确的项目时间 3.有预期的产品和数量
|
||
|
||
3. 03-qualification:
|
||
- 销售阶段任务: 收集、确认项目立项信息,明确产品和数量;组织测试必要性并引导客户做poc测试,验证应用场景和技术适用性、平鼎成功入围
|
||
- 销售关键动作: 1、和客户确认是否需要测试 2、对客户提出的测试需求进行评估,确定需求我们优势够,决定是否跟进测试 3、引导客户的测试方案制定,引导将我们优势点,加入到测试方案中,如:性能、扩展性、边界 4、在公司内部组织测试资源 5、获取客户内部的测试报告,了解真实的测试结论 6、了解客户对测试结果的态度和对手情况 7、做测试正式汇报,和客户达成一致
|
||
- 阶段转化标准: 1.项目预算批准、项目已立项 2.有确定产品和数量、或 3.完成场景应用/技术适用性验证、客户确定平鼎入围(完成poc)
|
||
|
||
4. 04-bidding/negotiating:
|
||
- 销售阶段任务: 确认项目是否需要招标,提前影响招投标结果并赢得标书;若不需要招标,则完成商务谈判,确认价格和产品可交付沟通与评审
|
||
- 销售关键动作: 1.制定关单策略及竞争策略 2.控制立项报告(对对手不利的参数) 3.如果无法控制立项,制定应对策略 4.创造机会与高层沟通汇报 5.沟通交付计划及SOW 6. 确定关键联系人
|
||
- 阶段转化标准: 1.完成可交付评审; 2.投标通过审批; 3.投标结果确认赢标或完成商务谈判,确定价格和产品
|
||
|
||
5. 05-contract review:
|
||
- 销售阶段任务: 发起合同协议审批申请,确认合同条款
|
||
- 销售关键动作:
|
||
- 阶段转化标准: 合同评审通过,完成合同协商审批,确认合同条款
|
||
|
||
6. 06-closed won:
|
||
- 销售阶段任务: 合同归档,项目赢单
|
||
- 销售关键动作:
|
||
- 阶段转化标准: 合同归档
|
||
|
||
7. 06-closed cancel:
|
||
- 销售阶段任务: 复盘项目输单原因
|
||
- 销售关键动作:
|
||
- 阶段转化标准: 1.客户明确表示取消项目 2.投标确认状态为输单
|
||
"""
|
||
|
||
|
||
# Read the Excel file
|
||
df = pd.read_excel('./data_intermediate/pingcap_pipeline_top_sales.xlsx')
|
||
|
||
# Iterate over each row in the DataFrame
|
||
for index, row in df.iterrows():
|
||
# Extract the information from the column "当前详细状态及Close节奏"
|
||
|
||
try:
|
||
detailed_status = row['当前详细状态及Close节奏']
|
||
print(f"Processing row {index} at current time: {datetime.now()}")
|
||
detailed_current_stage = row['Sales stage']
|
||
prompt = (f"某公司当前销售定义为 {pro_sales_stage_definition}, "
|
||
f"当前销售阶段为 {detailed_current_stage}, "
|
||
f"销售人员填写的销售动作日志为: {detailed_status} , "
|
||
f"请分析当前销售阶段以及销售动作日志,判断其销售动作是否完成了前一阶段的准出标准,以及是否支持将销售阶段转化到当前阶段{detailed_current_stage},按照如下要点给出分析:"
|
||
f"1. **销售阶段分析**"
|
||
f"2. **销售动作日志分析**"
|
||
f"3. **销售动作与销售阶段的关系**"
|
||
f"4. **判断结果**"
|
||
f"5. **销售阶段分析报告**")
|
||
analysis_result = agent.send_message(prompt)
|
||
print(analysis_result)
|
||
df.at[index, '分析结果'] = analysis_result # Directly update the DataFrame
|
||
|
||
prompt_sales_action_analysis = (f"某公司当前销售定义为 {pro_sales_stage_definition}, "
|
||
f"当前销售阶段为 {detailed_current_stage}, "
|
||
f"销售人员填写的销售动作日志为: {detailed_status} , "
|
||
f"请分析当前销售阶段以及销售动作日志,分析、总结、提炼出销售动作,给出一个概括的销售动作列表,比如拜访客户,需求讨论这种形式的动作描述")
|
||
sales_action_analysis_result = agent.send_message(prompt_sales_action_analysis)
|
||
print(sales_action_analysis_result)
|
||
df.at[index, '销售动作分析'] = sales_action_analysis_result # Directly update the DataFrame
|
||
except Exception as e:
|
||
print(f"Error processing row {index}: {e}")
|
||
df.at[index, '分析结果'] = f"Error: {e}" # Log the error in the DataFrame
|
||
df.at[index, '销售动作分析'] = f"Error: {e}" # Log the error in the DataFrame
|
||
|
||
|
||
df.to_excel('./data_output/analysis_result_top_sales.xlsx', index=False)
|
||
|