market_assistant/criteria_reflection.py

244 lines
16 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.

# This Python file uses the following encoding: utf-8
"""
File: criteria_reflection.py
Description: 以专业咨询机构的赢单路径为参考,结合公司实际统计数据进行反思,提出改进版本的赢单路径
Author: [Your Name]
Date: [Current Date]
"""
from AgentProxy import AgentProxy
import pandas as pd
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.投标确认状态为输单"
}
]
actual_won_path = [
{
"销售阶段名称": "01-prospecting",
"客户采购行为": "",
"销售阶段任务": "",
"关键获取信息": "1.联系人姓名\n2.部门\n3.职务\n4.手机\n5.预估整体项目节点数\n6.CRM情况\n7.是否是独立预算",
"销售关键动作": "",
"售前关键动作": "",
"客户支持行为": "1. 交流中客户较为开放,能告知需求,计划较为清晰;\n2. 愿意进一步需求沟通;\n3. 交流有多人甚至有多部门参与讨论;",
"阶段转化标准": ""
},
{
"销售阶段名称": "02-evaluation",
"客户采购行为": "",
"销售阶段任务": "完成需求确认与收集\n完成技术评估与测试\n完成商务评估与商机确认\n完成市场调研与竞争分析",
"关键获取信息": "1.预算是否完成申批\n2.是否进PCC\n3.PCC是否已申批\n4.PCC状态\n5.测试类型\n6.测试项(用例)",
"销售关键动作": "**客户接触与需求识别**\n**商务调研与合同准备**\n**项目支持与优化**\n**内部协调与支持**",
"售前关键动作": "",
"客户支持行为": "1. **客户需求的深入理解与确认**:\n- 积极主动地与客户沟通,深入理解客户的需求、预算和业务目标。确保和明确预算。\n- 客户愿意参与并进行多次沟通,以确认需求的具体细节,并帮助解决方案能够准确匹配需求。\n\n2. **产品或服务的匹配度评估**:\n- 协助组织产品演示或服务方案说明会,充分展示我们产品的特点,包括技术能力、功能特性和性能指标。\n- 需要进行必要的技术评估和测试,以证明产品或服务的有效性和可靠性。\n\n3. **客户的积极认知与接受度**:\n- 客户对我们的解决方案表现出浓厚兴趣,并对其潜在价值有清晰认识。",
"阶段转化标准": ""
},
{
"销售阶段名称": "03-qualification",
"客户采购行为": "",
"销售阶段任务": "完成需求确认与收集\n完成技术评估与测试\n完成商务评估与商机确认\n完成项目立项与合同准备",
"关键获取信息": "1.立项批复\n2.立项时间\n3.立项金额\n(立项报告的内容)\n4.招标方式",
"销售关键动作": "**客户关系管理**\n**项目支持与优化**\n**内部协调与支持**\n**商务谈判与合同准备**",
"售前关键动作": "",
"客户支持行为": "1. 支持对我方有利的测试方案\n2. 提供内部真实的测试报告\n3.决策链人员认同测试效果,客户愿意引荐更高层领导汇报\n4.双方沟通项目计划且达成一致\n5.主动邀请提供招标参数或汇报材料",
"阶段转化标准": "1. **需求与方案的匹配度**:确认客户的需求是否与公司的产品或服务有力匹配,包括技术能力、产品特性、服务范围等。\n\n2. **技术评估与测试**:评估完成技术验证或试用阶段,包括技术风险、兼容问题、服务水平等,并有足够的保障措施。\n\n3. **商务条款与定价**:初步确定商务条款和定价策略,以及客户对公司的信任程度。\n\n4. **内部准备就绪**:确保公司内部对于承接项目的服务能力已经就绪,包括技术支持、交付能力、服务团队、人力资源等。\n\n5. **客户意愿与定位**:明确在客户采购决策链中的竞争优势定位,包括定价策略、合同条款、竞争优势等。\n\n6. **合规性与法律审查**:确保所有商务活动符合相关法律法规,合同草案已经过法律审核,没有潜在的法律风险。"
},
{
"销售阶段名称": "04-bidding/negotiating",
"客户采购行为": "",
"销售阶段任务": "完成需求确认与收集\n完成技术评估与测试\n完成项目立项与合同准备\n完成商务谈判与竞争分析",
"关键获取信息": "1.是否投标\n2.发标时间\n3.投标时间\n4.竞争对手\n5.对手产配置\n6.对手投标金额",
"销售关键动作": "**客户关系管理**\n**合同审查与订单处理**\n**客户接触与需求识别**\n**商务谈判与合同准备**",
"售前关键动作": "",
"客户支持行为": "1.反馈客户内部的进展和计划\n2. 客户内部立项成功\n3.采纳我们提交的招标参数(或有利于我方)\n3. 对黑马和灰犀牛的处理,愿意提供应对处理",
"阶段转化标准": "1. **客户需求与解决方案的匹配度确认**:\n- 确保所提供的解决方案完全符合客户的需求和预期。\n- 与客户共同验证解决方案的有效性和可行性。\n\n2. **中标主张的确定与沟通**:\n- 明确并强化产品或服务的独特卖点USP和价值主张。\n- 确认客户对产品或服务的认可度和采购意愿维持在较高水平。"
},
{
"销售阶段名称": "05-contract review",
"客户采购行为": "",
"销售阶段任务": "",
"关键获取信息": "",
"销售关键动作": "",
"售前关键动作": "",
"客户支持行为": "",
"阶段转化标准": ""
},
{
"销售阶段名称": "06-closed won",
"客户采购行为": "",
"销售阶段任务": "完成需求确认与收集\n完成合同签订与归档",
"关键获取信息": "",
"销售关键动作": "",
"售前关键动作": "",
"客户支持行为": "",
"阶段转化标准": ""
},
{
"销售阶段名称": "06-cancel",
"客户采购行为": "",
"销售阶段任务": "",
"关键获取信息": "取消原因",
"销售关键动作": "",
"售前关键动作": "",
"客户支持行为": "",
"阶段转化标准": ""
}
]
api_key = 'c6bbe7f48063a2c1'
api_secret = '5f8e7d3a97465cc099bf19bd1b70c266'
assistant_id = "66bb09a84673b57506fe7bbd"
agent = AgentProxy(assistant_id, api_key, api_secret)
reflection_path = [] # 记录反思后的赢单路径
# Iterate over professional_won_path and get index in the loop
for index, pro_stage in enumerate(professional_won_path):
print(f"Index: {index}")
custom_stage = actual_won_path[index]
# 反思销售阶段任务
prompt_reflection_task = f"""
任务:
以专业咨询机构提出的销售阶段任务为参考和蓝本,结合客户自行总结的销售任务,提出改进版本的销售阶段任务,注意尽可能以专业机构的版本为主,语言、风格也按照专业机构的版本。
若客户自行总结的销售阶段任务为空或没有内容,则直接使用专业咨询机构提出的销售阶段任务。
输入:
专业咨询机构提出的销售阶段任务:
{pro_stage['销售阶段任务']}
客户自行总结的销售任务
{custom_stage['销售阶段任务']}
输出:
反思后的销售阶段任务,以及反思后的销售阶段任务与专业咨询机构提出的销售阶段任务的差异,以及该改进的方法、依据、逻辑等
"""
print(f"prompt_reflection_task: {prompt_reflection_task}")
reflection_task = agent.send_message(prompt_reflection_task)
print(f"反思后的销售阶段任务: {reflection_task}")
reflection_stage = pro_stage.copy()
reflection_stage['销售阶段任务'] = reflection_task
# 反思销售关键动作
prompt_reflection_action = f"""
任务:
以专业咨询机构提出的销售关键动作为参考和蓝本,结合客户自行总结的销售关键动作,提出改进版本的销售关键动作,注意尽可能以专业机构的版本为主,语言、风格也比照专业机构的版本。
若结合客户自行总结的销售关键动作为空或没有内容,则直接使用专业咨询机构提出的销售关键动作。
输入:
专业咨询机构提出的销售关键动作:
{pro_stage['销售关键动作']}
通过客户自行总结得到的销售关键动作:
{custom_stage['销售关键动作']}
输出:
反思后的销售关键动作,以及反思后的销售关键动作与专业咨询机构提出的销售关键动作的差异,以及该改进的方法、依据、逻辑等
"""
print(f"prompt_reflection_action: {prompt_reflection_action}")
reflection_action = agent.send_message(prompt_reflection_action)
print(f"反思后的销售关键动作: {reflection_action}")
reflection_stage['销售关键动作'] = reflection_action
# 反思阶段转化标准
prompt_reflection_standard = f"""
任务:
以专业咨询机构提出的阶段转化标准为参考和蓝本,结合客户自行总结的阶段转化标准,提出改进版本的阶段转化标准,注意尽可能以专业机构的版本为主,语言、风格也比照专业机构的版本。
若通过客户自行总结得到的阶段转化标准为空或没有内容,则直接使用专业咨询机构提出的阶段转化标准。
输入:
专业咨询机构提出的阶段转化标准:
{pro_stage['阶段转化标准']}
通过客户自行总结得到的阶段转化标准:
{custom_stage['阶段转化标准']}
输出:
反思后的阶段转化标准,以及反思后的阶段转化标准与专业咨询机构提出的阶段转化标准的差异,以及该改进的方法、依据、逻辑等
"""
print(f"prompt_reflection_standard: {prompt_reflection_standard}")
reflection_standard = agent.send_message(prompt_reflection_standard)
print(f"反思后的阶段转化标准: {reflection_standard}")
reflection_stage['阶段转化标准'] = reflection_standard
reflection_path.append(reflection_stage)
# Write reflection_path to Excel
df = pd.DataFrame(reflection_path)
# Reorder columns to match the original structure
column_order = [
"销售阶段名称", "客户采购行为", "销售阶段任务", "关键获取信息",
"销售关键动作", "售前关键动作", "客户支持行为", "阶段转化标准"
]
df = df.reindex(columns=column_order)
# Write to Excel
excel_file_path = 'reflection_path_results.xlsx'
df.to_excel(excel_file_path, index=False)
print(f"Reflection path results have been written to {excel_file_path}")