# This is a sample Python script. import os from analysis.call_keyword import CallKeyword from analysis.call_rating import CallRating # Press ⌃R to execute it or replace it with your code. # Press Double ⇧ to search everywhere for classes, files, tool windows, actions, and settings. # Press the green button in the gutter to run the script. from service.ui import WinGUI import tkinter as tk if __name__ == '__main__': # 加载文件 file_path = os.path.join(os.getcwd(), "excel" + "/问题泛化/" + "20250107.xlsx") # 金融 规则 # rules = [ # {'rule': '1. 如果客户因年龄等原因不符合要求(高领、未成年、没文化听不懂)即使继续沟通也无任何意义。 \n2. 用户客套了一句就直接挂断。\n3. 客户语无伦次。\n4. 客户调戏机器人或明显态度不好。\n以上情况分配为"非目标人群"。', 'score': '非目标人群'}, # {'rule': '如果客户虽然在交谈中意向不高,但却询问了有关,贷款程序、流程、利息等业务问题,那么应标记为"问贷款信息"。', 'score': '问贷款信息'}, # {'rule': '如果客户明确表示有贷款需求,且愿意进一步和客户经理沟通,并安排了后续的联系,且电话沟通顺利,在没有任何异常的情况下结束对话,则分配为"成功结束"。', 'score': '成功结束'}, # {'rule': '如果客户明确表示自己是黑户、逾期、信用记录等原因无法申请到贷款,则分配为"贷不了"。', 'score': '贷不了'}, # {'rule': '如果客户明确表明不需要贷款,且对贷款业务毫无兴趣,那么应标记为"不需要"。', 'score': '不需要'}, # {'rule': '如果客户在对话中未明确表示拒绝,并且明确表示目前很忙、在开会、路上、在开车等,无法继续沟通,或者由于其他原因暂时挂断电话,则分配为"在忙待跟进"。', 'score': '在忙待跟进'}, # {'rule': '如果客户没有明确显示出是否同意贷款的倾向,且没有表现出进一步的意愿,但也没有明确拒绝贷款,或者表示需要进一步考虑和了解,则分配为"待跟进"。', 'score': '待跟进'}, # {'rule': '如果在整个对话中,用户一句话也没说,则分配为"接通挂机"。请注:意哪怕用户说了一个字也不算"接通挂机"', 'score': '接通挂机'}, # {'rule': '1. 如果客户说英文。2. 客户上来说 (任意文字)+“通话”两字。那么应标记为"语音助手"','score': '语音助手'} # ] # 教育规则1 # rules = [ # {'rule': "用户表现出愿意了解更多信息,或者在电话中同意接收进一步的细节,例如加入微信、确认联系方式等。", 'score': '有意向'}, # {'rule': "几乎所有的对话中用户均表现出没有兴趣或者拒绝接受机器人提供的提升课。", 'score': '无意向'}, # {'rule': "用户介于有意向和无意向之间。人机对话并不完美,且客户资源宝贵,请尽量挖掘用户潜力,不要过于苛刻", 'score': '不确定'} # ] # pos 规则1 # rules = [ # {'rule': "用户表现出对产品有积极回应,询问有关产品的问题,或愿意进行后续操作,如确认微信号、询问发货地址或表达接受产品(例:'行'、'好'、'可以'、'是的')。", 'score': '有意向'}, # {'rule': "用户拒绝产品、没有POS机、明确表示不需要更换刷卡机,或表现出拒绝产品的意向(例:'打错了'、'不需要'、'没有刷卡机')。", 'score': '无意向'}, # {'rule': "用户介于有意向和无意向之间,不太确定", 'score': '不确定'} # ] # 通用规则1 # rules = [ # {'rule': "用户表现出对产品有积极回应,询问有关产品的问题,或愿意进行后续操作,如确认微信号、询问发货地址或表达接受产品(例:'行'、'好'、'可以'、'是的')。", 'score': '有意向'}, # {'rule': "用户拒绝产品、明确表示不需要、不适合,或表现出拒绝产品的意向(例:'打错了'、'不需要'、'没有刷卡机')。", 'score': '无意向'}, # {'rule': "用户介于有意向和无意向之间,不太确定", 'score': '不确定'} # ] # 通用规则2 (保守) # rules = [ # {'rule': "用户表现出对产品有积极回应,询问有关产品的问题,或愿意进行后续操作,如确认微信号、询问发货地址或表达接受产品(例:'行'、'好'、'可以'、'是的')。", 'score': '有意向'}, # {'rule': "用户拒绝产品、明确表示不需要、不适合,或表现出拒绝产品的意向(例:'打错了'、'不需要' 等)。", 'score': '无意向'}, # {'rule': "用户介于有意向和无意向之间,例如用户虽然拒绝,但是却符合目标客户定位,或着询问了相关问题有一定兴趣", 'score': '不确定'} # ] # 通用规则3 (宽松) # rules = [ # {'rule': "用户表现出对产品有积极回应,询问有关产品的问题,或愿意进行后续操作,如确认微信号、询问发货地址或表达接受产品(例:'行'、'好'、'可以'、'是的')。", 'score': '有意向'}, # {'rule': "用户或有相关需求(即便暂时满足不了)、或询问了相关问题(即便对答案不满或不感兴趣)、或具备某项购买条件、或使用过相关产品、或建议先了解后同意沟通(即便是敷衍或后面疲软)、或当前在忙还无法沟通(开会、在忙、在工作等)、或听不清听不懂、或怀疑是诈骗电话,有后续人工沟通跟进商讨的可能,即便目前没有需求也不感兴趣但未来可能会成为潜在客户。以上均为关键条件,满足任何一项即算做不确定", 'score': '不确定'}, # {'rule': "用户不符合不确定的情况,什么问题也没问 且没有在忙 且没有购买条件。客户资源很珍贵,不要轻易打无意向的标签,请尽量归类为不确定", 'score': '无意向'} # ] # 通用规则4 (宽松) # rules = [ # {'rule': "用户表现出对产品有积极回应,询问有关产品的问题,或愿意进行后续操作,如确认微信号、询问发货地址或表达接受产品(例:'行'、'好'、'可以'、'是的')。", 'score': '有意向'}, # {'rule': "用户或有相关需求(即便暂时满足不了)、或询问了相关问题(即便对答案不满或不感兴趣)、或具备某项购买条件、或使用过相关产品、或建议先了解后同意沟通(即便是敷衍或后面疲软)、或当前在忙还无法沟通(开会、在忙、在工作等)、或听不清听不懂、或怀疑是诈骗电话,有后续人工沟通跟进商讨的可能,即便目前没有需求也不感兴趣但未来可能会成为潜在客户。", 'score': '不确定'}, # {'rule': "用户不符合不确定的情况,什么问题也没问 且没有在忙 且没有购买条件。客户资源很珍贵,不要轻易打无意向的标签,请尽量归类为不确定", 'score': '无意向'} # ] # 通用规则5 (宽松) # rules = [ # {'rule': "用户表现出对产品有积极回应,询问有关产品的问题,或愿意进行后续操作,如确认微信号、询问发货地址或表达接受产品(例:'行'、'好'、'可以'、'是的')。", 'score': '有意向'}, # {'rule': "用户虽然未积极回应或表示不需要,但却有相关需求、或着符合某项购买条件、又或着询问了机器人问题,即便后期疲软或持否定态度,可移交销售顾问进行进一步的需求分析,以便改善产品或定制符合客户要求的产品", 'score': '待进一步分析'}, # {'rule': "用户表示自己在忙、在开会等,现在不太方便沟通。又或者对电话的真实性存疑,怀疑是诈骗电话,可后续让专业客服继续跟进", 'score': '暂时无法沟通'}, # {'rule': "除上述规则外的其他用户,请注意客户资源珍贵,请尽量归类为'有意向'或'待进一步分析',后续再由销售专家定性。", 'score': '其他'} # ] # 推理规则 # new_rules = CallRating(file_path).inference_scoring_rule() # print(f"new_rules:{new_rules}") # 评分 # CallRating(file_path).rating_score(rules) # 关键词优化 # chat_history = """机器人:欸您好,请问您这边是王永虎吗? # 客户:是的。 # 机器人:欸,您好王永虎,您申请的內个点点借款的话是已经逾期1535天了,目前的话应还总金额是629.8元啊,为了避免影响到您这个的信用记录啊,请您在两小时之内结清欠款可以吧? # 客户:平台登不上去啊。 # 机器人:您在点点有一笔借款已经逾期,为了避免影响到您的信用记录,呃请您在两小时之内结清欠款,可以吧? # 客户:你的平台登不上去。""" # # unmatched = "你的平台登不上去。" # CallKeyword().single_record(chat_history, unmatched) CallKeyword().from_excel(file_path) # See PyCharm help at https://www.jetbrains.com/help/pycharm/