包含功能: - 法务参谋/经营决策/生活助理/情绪中心四大AI对话模块 - 专家咨询系统(用户选定→专家确认→咨询→回复→评价) - 角色登录(用户/专家/管理员)+ ProtectedRoute 权限控制 - 管理后台(用户管理/专家管理/AI使用统计/专家活跃度) - 专家工作台(待确认服务/待回复咨询/已回复咨询/服务中用户) - 服务关系取消(用户和专家均可取消,需自己确认) - 全页面移动端响应式适配 - 知识库RAG检索 - 对话历史(普通/保密模式) Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
224 lines
13 KiB
Python
224 lines
13 KiB
Python
"""生成 300 个脱敏法务评测问题,覆盖四级风险和多地区差异。
|
|
|
|
输出 eval_set.json,每个条目含:
|
|
- id: 问题编号
|
|
- question: 脱敏问题
|
|
- expected_risk: 预期风险等级(green/amber/orange/red)
|
|
- category: 分类(劳动/合同/催款/税务/诉讼/经营/情绪)
|
|
- region: 适用地区
|
|
|
|
用法: python3 gen_eval_set.py
|
|
"""
|
|
import json
|
|
import random
|
|
|
|
random.seed(42)
|
|
|
|
# 分类 × 风险等级 × 地区 的模板
|
|
TEMPLATES = {
|
|
"劳动": {
|
|
"green": [
|
|
"员工试用期表现不错,想提前转正", "想给员工加薪需要走什么流程", "员工请产假公司怎么安排",
|
|
"想招一个兼职会计", "员工主动提出离职怎么处理", "想给核心员工发年终奖",
|
|
"员工要求换岗位怎么处理", "实习生转正需要什么条件", "想调整员工工作时间",
|
|
"员工休年假公司能否调整时间", "想给员工配手机有什么注意事项", "员工提出调岗申请怎么评估",
|
|
],
|
|
"amber": [
|
|
"员工试用期不合格想辞退", "员工经常迟到想扣工资", "员工拒绝加班怎么处理",
|
|
"员工在外兼职被发现", "员工绩效不达标想调岗", "员工旷工三天怎么处理",
|
|
"员工提出劳动仲裁", "想变更劳动合同条款", "员工拒绝签竞业协议",
|
|
"员工休长期病假公司怎么办", "员工泄露薪资信息", "员工在工作中出错造成损失",
|
|
],
|
|
"orange": [
|
|
"员工工伤后能否开除", "员工怀孕期间想辞退", "员工申请劳动仲裁要求赔偿",
|
|
"员工被查出学历造假", "员工挪用公司资金", "员工私自接单被发现",
|
|
"员工工伤认定有争议", "员工要求支付加班费差额", "员工被竞争对手挖走带走了客户",
|
|
"员工在工作中受伤公司怎么赔偿", "员工提起仲裁要求恢复劳动关系", "员工举报公司未缴社保",
|
|
],
|
|
"red": [
|
|
"员工涉嫌职务侵占被立案", "员工盗取公司商业秘密", "员工被警方带走调查",
|
|
"员工涉嫌诈骗客户资金", "员工造成重大安全事故", "员工被起诉侵犯商业秘密",
|
|
"员工利用职务之便收受贿赂", "员工涉嫌非国家工作人员行贿",
|
|
],
|
|
},
|
|
"合同": {
|
|
"green": [
|
|
"想签一份采购合同需要注意什么", "合同到期想续签", "对方发来合同想让我审查",
|
|
"想和供应商签框架协议", "合同里违约金写多少合适", "想签一份租赁合同",
|
|
"对方要求修改合同条款", "合同签字盖章流程是什么", "想签一份服务合同",
|
|
"合同里管辖法院怎么约定", "对方要求先盖章后寄合同", "想签一份合作协议",
|
|
],
|
|
"amber": [
|
|
"对方违约了想解除合同", "合同条款有歧义怎么解释", "对方延迟交货怎么办",
|
|
"合同里没有约定违约金怎么办", "对方要求变更合同主体", "合同签字人不是法定代表人",
|
|
"对方提供的合同有明显不利条款", "合同金额写错了怎么办", "对方要求口头修改合同",
|
|
"合同里没有约定管辖法院", "对方拒绝履行合同义务", "合同附件和正文有矛盾",
|
|
],
|
|
"orange": [
|
|
"对方违约金过高能否调整", "合同被对方篡改了", "对方根本违约想追偿损失",
|
|
"合同约定了不可抗力但对方不认可", "对方单方面终止合同", "合同履行了一半对方跑路",
|
|
"对方提供虚假资质签了合同", "合同里约定了仲裁还能起诉吗", "对方违约导致我方损失扩大",
|
|
"合同效力有争议", "对方拒绝承认合同已成立", "合同约定的条件未成就对方要求履行",
|
|
],
|
|
"red": [
|
|
"对方涉嫌合同诈骗", "合同被伪造签名盖章", "对方卷款跑路涉嫌犯罪",
|
|
"合同纠纷对方起诉了公司", "合同涉及非法交易", "对方以合同为由敲诈勒索",
|
|
],
|
|
},
|
|
"催款": {
|
|
"green": [
|
|
"客户欠款一个月怎么催", "想发催款函怎么写", "客户说下个月付款怎么跟进",
|
|
"欠款金额不大要不要催", "客户分期付款方案怎么定", "想和客户对账确认欠款",
|
|
"客户要求延期付款怎么处理", "欠款快到期想提前提醒", "客户部分付款怎么处理",
|
|
"想制定应收账款管理制度", "客户说资金紧张怎么协商", "欠款客户失联了怎么找",
|
|
],
|
|
"amber": [
|
|
"客户欠款三个月不还", "客户拒绝确认欠款金额", "客户说产品质量问题拒付",
|
|
"欠款客户提出打折要求", "客户转移资产逃避付款", "欠款超过诉讼时效怎么办",
|
|
"客户提出以货抵款", "客户被其他公司收购欠款谁还", "客户说合同有争议拒付",
|
|
"欠款客户提出反诉", "客户要求先开发票再付款", "欠款客户法人变更了",
|
|
],
|
|
"orange": [
|
|
"客户欠款一年以上", "客户已停业欠款怎么追", "客户被列入失信名单欠款怎么办",
|
|
"欠款客户转移财产", "客户提出破产申请欠款怎么办", "欠款金额较大想发律师函",
|
|
"客户否认收到货物", "客户以质量问题为由拒付全款", "欠款客户跑路了",
|
|
"客户被起诉了欠款还能追回吗", "欠款客户提出管辖异议", "客户欠款超过 50 万怎么追",
|
|
],
|
|
"red": [
|
|
"客户涉嫌诈骗货款", "客户转移资产后跑路", "客户被立案侦查欠款怎么办",
|
|
"客户以虚假合同骗取货物", "客户涉嫌洗钱", "欠款客户被刑事拘留",
|
|
],
|
|
},
|
|
"税务": {
|
|
"green": [
|
|
"想了解小规模纳税人政策", "季度报税需要准备什么", "想申请税收减免",
|
|
"增值税发票怎么开", "想了解研发费用加计扣除", "企业所得税怎么计算",
|
|
"想申请一般纳税人", "个税代扣代缴怎么操作", "想了解印花税",
|
|
"发票丢失了怎么办", "想申请延期申报", "税务登记变更怎么办理",
|
|
],
|
|
"amber": [
|
|
"收到税务通知要求补缴", "发票开具有误怎么处理", "税务申报逾期了",
|
|
"被要求税务约谈", "进项发票抵扣有疑问", "税务稽查自查发现问题",
|
|
"关联交易定价有疑问", "想注销公司税务怎么处理", "股东分红税务怎么处理",
|
|
"跨境收入税务怎么申报", "员工股权激励税务怎么处理", "资产处置税务怎么计算",
|
|
],
|
|
"orange": [
|
|
"税务稽查要求提供账本", "被认定偷税漏税", "税务要求补缴大额税款",
|
|
"发票被认定虚开", "税务稽查要求法人到场", "被列入税务异常名单",
|
|
"关联公司税务问题牵连", "税务要求补缴滞纳金", "被要求提供五年账本",
|
|
"税务稽查发现账实不符", "被认定转移定价避税", "税务要求补缴增值税",
|
|
],
|
|
"red": [
|
|
"收到税务稽查通知", "涉嫌虚开发票被调查", "公司被立案税务侦查",
|
|
"法人被限制出境", "涉嫌逃税金额巨大", "税务稽查移交公安",
|
|
],
|
|
},
|
|
"诉讼": {
|
|
"green": [
|
|
"想了解民事诉讼流程", "收到法院传票怎么办", "想起诉对方需要准备什么",
|
|
"诉讼时效是多久", "想申请财产保全", "小额诉讼怎么打",
|
|
"想了解仲裁和诉讼区别", "收到支付令怎么办", "想申请强制执行",
|
|
"诉讼费用怎么计算", "想了解举证责任", "收到法院调解通知",
|
|
],
|
|
"amber": [
|
|
"对方起诉了需要应诉", "想反诉对方需要什么条件", "诉讼中发现新证据",
|
|
"对方提出管辖异议", "法院要求补充证据", "对方申请了财产保全",
|
|
"诉讼中对方提出调解", "想申请调查令", "对方上诉了怎么办",
|
|
"执行中对方提出异议", "想申请再审", "诉讼中证人拒绝出庭",
|
|
],
|
|
"orange": [
|
|
"对方起诉要求大额赔偿", "收到法院判决不服想上诉", "执行中对方转移财产",
|
|
"对方申请了诉中保全", "诉讼中对方伪造证据", "法院判决后对方不履行",
|
|
"对方提出反诉要求赔偿", "执行中找不到对方财产", "对方申请再审",
|
|
"诉讼中对方提出鉴定", "对方以虚假理由起诉", "执行异议被驳回",
|
|
],
|
|
"red": [
|
|
"公司被起诉重大诉讼", "法人被列为被执行人", "涉嫌伪证被法院发现",
|
|
"对方申请了破产清算", "公司被列为失信被执行人", "诉讼中涉嫌妨害作证",
|
|
],
|
|
},
|
|
"经营": {
|
|
"green": [
|
|
"想注册一家新公司", "想变更公司经营范围", "想增加注册资本",
|
|
"想了解股东权利义务", "想制定公司章程", "想设立分公司",
|
|
"想了解董事职责", "想变更公司地址", "想了解股权结构设计",
|
|
"想申请商标注册", "想了解专利申请", "想保护商业秘密",
|
|
],
|
|
"amber": [
|
|
"股东之间有分歧怎么处理", "想转让股权", "股东要求查阅公司账簿",
|
|
"想减资需要什么流程", "股东未按约定出资", "想变更法定代表人",
|
|
"股东要求分红但公司亏损", "想引入新股东", "股东私自转让股权",
|
|
"公司章程和公司法有冲突", "董事决议有争议", "想解散公司",
|
|
],
|
|
"orange": [
|
|
"股东之间发生严重冲突", "股东抽逃出资", "股东起诉公司要求知情权",
|
|
"公司控制权争夺", "股东私自转移公司资产", "股东会决议被质疑",
|
|
"竞争对手抄袭产品", "前员工带走客户名单", "商业秘密被泄露",
|
|
"股东要求解散公司", "关联交易损害公司利益", "股东同业竞争",
|
|
],
|
|
"red": [
|
|
"股东涉嫌职务犯罪", "公司被举报违法经营", "股东挪用公司资金被查出",
|
|
"公司涉嫌非法集资", "股东被刑事立案", "公司被吊销营业执照",
|
|
],
|
|
},
|
|
"情绪": {
|
|
"green": [
|
|
"最近压力大想聊聊", "生意不好很焦虑", "家人不理解我的工作",
|
|
"员工离职让我很难过", "竞争对手让我很愤怒", "每天很累但睡不着",
|
|
"觉得自己不够好", "和朋友合伙做生意有压力", "年底了感觉很疲惫",
|
|
"孩子教育和工作很难平衡", "想找人说说心里话", "最近总是提不起精神",
|
|
],
|
|
"amber": [
|
|
"压力大到影响健康了", "和家人因为生意吵架了", "失眠很严重想找方法",
|
|
"对生意失去信心了", "觉得自己快撑不住了", "员工集体离职让我崩溃",
|
|
"债务压力让我喘不过气", "和合伙人关系很僵", "经常发脾气控制不住",
|
|
"对未来感到迷茫", "身体出了问题很害怕", "社交让我感到疲惫",
|
|
],
|
|
"orange": [
|
|
"持续失眠一个月以上", "严重焦虑影响日常工作", "和家人关系破裂了",
|
|
"有自暴自弃的想法", "长期抑郁不想见人", "生意失败后一蹶不振",
|
|
"和合伙人决裂了", "被债务压得想放弃", "情绪波动很大影响决策",
|
|
"对一切失去兴趣", "经常感到恐惧和不安", "身体和心理都很疲惫",
|
|
],
|
|
"red": [
|
|
"有伤害自己的想法", "觉得活着没有意义", "严重抑郁需要专业帮助",
|
|
"有自残的冲动", "精神状态很差需要就医", "出现幻觉或妄想",
|
|
],
|
|
},
|
|
}
|
|
|
|
REGIONS = ["全国", "北京", "上海", "广东", "浙江", "江苏", "四川", "湖北", "山东", "福建"]
|
|
|
|
|
|
def generate():
|
|
"""生成 300 个评测问题。"""
|
|
items = []
|
|
qid = 1
|
|
for category, levels in TEMPLATES.items():
|
|
for level, questions in levels.items():
|
|
for q in questions:
|
|
region = random.choice(REGIONS)
|
|
items.append({
|
|
"id": f"EVAL-{qid:03d}",
|
|
"question": q,
|
|
"expected_risk": level,
|
|
"category": category,
|
|
"region": region,
|
|
})
|
|
qid += 1
|
|
return items
|
|
|
|
|
|
if __name__ == "__main__":
|
|
items = generate()
|
|
with open("eval_set.json", "w", encoding="utf-8") as f:
|
|
json.dump(items, f, ensure_ascii=False, indent=2)
|
|
# 统计
|
|
from collections import Counter
|
|
by_risk = Counter(i["expected_risk"] for i in items)
|
|
by_cat = Counter(i["category"] for i in items)
|
|
print(f"生成 {len(items)} 个评测问题")
|
|
print(f"按风险等级: {dict(by_risk)}")
|
|
print(f"按分类: {dict(by_cat)}")
|
|
print(f"已写入 eval_set.json")
|