1. 实际应用场景描述
在销售过程中,客户常会提出一些典型异议,如:
- “你们的价格太高了”
- “我们暂时没有这个需求”
- “我再考虑一下”
销售团队需要快速找到最合适的话术来应对,避免临场卡壳。
传统方式是靠经验或翻文档,效率低且容易遗漏优质话术。
本工具将话术按异议类型分类,并利用关键词匹配(可扩展为向量搜索/语义匹配)快速返回最优话术,同时支持动态添加新话术,形成可迭代的销售知识库。
2. 痛点分析
痛点 影响 解决方案
话术分散在个人笔记或文档中 查找慢,易丢失 集中管理,分类存储
新人缺乏应对经验 成交率下降 提供标准化话术参考
无法快速匹配最佳话术 错失机会 关键词检索,优先返回高匹配度
话术更新不及时 信息滞后 支持动态新增/修改
3. 核心逻辑讲解
1. 数据结构使用 JSON 文件存储话术,结构如下:
{
"价格高": [
{"text": "我们的产品虽然价格略高,但性价比...", "keywords": ["价格", "性价比", "质量"]},
...
],
"没需求": [...],
"再考虑": [...]
}
2. 检索逻辑
- 输入客户异议类型 + 关键词
- 在对应分类中计算关键词匹配度(出现次数/权重)
- 按匹配度排序,返回 Top N 话术
3. 扩展性
- 可升级为 TF-IDF / Word2Vec / BERT 语义匹配
- 可接入数据库(MySQL/MongoDB)替代 JSON
- 可做 Web API(Flask/FastAPI)
4. 项目结构
sales_scripts/
├── data/
│ └── scripts.json # 话术数据
├── modules/
│ ├── __init__.py
│ ├── loader.py # 加载话术数据
│ ├── matcher.py # 匹配逻辑
│ └── manager.py # 增删改话术
├── main.py # 命令行入口
├── README.md # 说明文档
└── requirements.txt # 依赖
5. 核心代码
"modules/loader.py"
import json
import os
DATA_PATH = "../data/scripts.json"
def load_scripts():
"""加载话术JSON文件"""
if not os.path.exists(DATA_PATH):
return {}
with open(DATA_PATH, 'r', encoding='utf-8') as f:
return json.load(f)
"modules/matcher.py"
from collections import defaultdict
def match_scripts(scripts, category, keywords, top_n=3):
"""根据关键词匹配话术"""
if category not in scripts:
return []
candidates = scripts[category]
scored = []
for item in candidates:
score = sum(1 for kw in keywords if kw in item["text"])
scored.append((score, item["text"]))
# 按分数降序
scored.sort(key=lambda x: x[0], reverse=True)
return [text for _, text in scored[:top_n] if _ > 0]
"modules/manager.py"
import json
import os
DATA_PATH = "../data/scripts.json"
def add_script(category, text, keywords):
"""新增话术"""
scripts = {}
if os.path.exists(DATA_PATH):
with open(DATA_PATH, 'r', encoding='utf-8') as f:
scripts = json.load(f)
if category not in scripts:
scripts[category] = []
scripts[category].append({"text": text, "keywords": keywords})
with open(DATA_PATH, 'w', encoding='utf-8') as f:
json.dump(scripts, f, ensure_ascii=False, indent=2)
"main.py"
from modules.loader import load_scripts
from modules.matcher import match_scripts
from modules.manager import add_script
def main():
scripts = load_scripts()
while True:
print("\n=== 销售话术检索工具 ===")
print("1. 查询话术")
print("2. 新增话术")
print("3. 退出")
choice = input("选择操作: ").strip()
if choice == "1":
category = input("输入客户异议类型(价格高/没需求/再考虑): ").strip()
keywords = input("输入关键词(空格分隔): ").strip().split()
results = match_scripts(scripts, category, keywords)
if results:
print("\n推荐话术:")
for i, text in enumerate(results, 1):
print(f"{i}. {text}")
else:
print("未找到匹配话术")
elif choice == "2":
category = input("异议类型: ").strip()
text = input("话术内容: ").strip()
keywords = input("关键词(空格分隔): ").strip().split()
add_script(category, text, keywords)
print("话术已添加")
scripts = load_scripts() # 重新加载
elif choice == "3":
break
else:
print("无效选择")
if __name__ == "__main__":
main()
6. README.md
# 销售话术库检索工具
基于 Python 开发的销售话术管理工具,支持按客户异议分类存储、关键词检索、动态新增话术。
## 功能
- 按异议类型分类存储话术
- 关键词快速匹配最优话术
- 支持新增话术
## 使用方法
1. 安装依赖:`pip install -r requirements.txt`
2. 运行:`python main.py`
3. 选择查询或新增话术
## 数据存储
话术存储在 `data/scripts.json`,格式示例:
json
{
"价格高": [
{"text": "我们的产品虽然价格略高,但性价比...", "keywords": ["价格", "性价比"]}
]
}
7. 核心知识点卡片
知识点 说明
JSON 数据存储 轻量级数据交换格式,适合小型知识库
关键词匹配 基于字符串包含的简单检索,可升级为语义搜索
模块化设计 分离加载、匹配、管理逻辑,便于维护
文件 I/O 读写 JSON 文件实现持久化
可扩展性 可升级为数据库+Web API+AI匹配
8. 总结
本项目是一个轻量级销售话术检索工具,结合了大数据与商务智能中的数据管理与快速检索思想,适用于销售团队的知识沉淀与效率提升。
后续可引入:
- TF-IDF / 词向量 提升匹配精度
- FastAPI 提供 Web 服务
- MySQL/MongoDB 支持多用户协作
- 用户权限管理 与 话术评分系统
如果你需要,可以生成
"requirements.txt" 和
"scripts.json" 的初始数据,并打包成完整可运行的项目。
利用AI高效解决实际问题,如果你觉得这个工具好用,欢迎关注我!