基于LLM的工人收费计算系统歧义消解方案及技术选型问询
工人收费计算系统歧义消解与数据集高效处理方案
一、大型数据集低成本高效处理分步实现
1. 数据集结构化与语义索引构建
- 将自然语言形式的工种收费规则,转换为结构化数据(如JSON/CSV),明确每个工种对应的必填参数、收费公式、条件阈值(例如:潜水员的基础费用、深度加价系数、设备租赁额外费用)。
- 对结构化后的规则文本生成语义嵌入向量,存储到轻量向量数据库中。每次请求时,仅检索与用户输入工种相关的规则向量,提取对应规则片段传输给LLM,避免全量数据集传输。
2. 前置规则过滤与上下文压缩
- 先通过关键词匹配快速定位用户提及的工种,过滤出该工种的所有关联规则,排除无关数据。
- 将过滤后的规则提炼为简洁的参数模板(如
潜水员收费=基础费(500元)+深度系数(每米20元)×作业时长(小时)+设备租赁费(可选300元)),进一步压缩LLM的输入上下文,降低调用成本。
3. 规则缓存机制
- 针对高频查询的工种规则,在服务器端设置内存缓存(如Redis),重复请求时直接返回缓存的规则模板,无需重复检索向量数据库或调用LLM处理规则解析。
二、交互式歧义澄清分步实现
1. 歧义检测与必填参数识别
- 为每个工种预定义必填参数清单(例如:画家需「作业面积、涂料类型、复杂度等级」;司机需「行程距离、车型、是否跨城」)。
- 调用LLM结合检索到的工种规则,分析用户输入内容,识别缺失的必填参数,生成针对性的澄清问题。
2. 多轮会话状态管理
- 为每个用户会话维护状态数据,记录已收集的参数、用户历史输入、当前待澄清的参数项。
- 用户回复后,自动更新会话状态,再次校验参数完整性:若仍有缺失,继续生成澄清问题;若参数齐全,进入收费计算环节。
3. 个性化澄清话术设计
- 避免通用化提问,根据工种特性设计自然的澄清话术:
- 当用户仅输入「潜水员」时:「请问您需要的潜水服务深度是多少?水下作业时长大概多久?是否需要我们提供潜水设备呢?」
- 当用户仅输入「画家」时:「麻烦告知一下需要涂刷的墙面面积、偏好的涂料类型,以及作业的复杂度等级(如普通/精细),我好为您计算准确费用。」
4. 参数确认环节
- 当所有必填参数收集完成后,由LLM复述已获取的参数并请求用户确认:「我确认一下,您需要的是10米深度、2小时的潜水服务,不需要额外租赁设备,对吗?」,避免因误解导致的收费计算错误。
三、适配技术选型
数据集处理类
- 结构化转换:
Pandas(处理CSV/JSON结构化数据)、spaCy(自然语言规则提取与结构化) - 向量数据库:
FAISS(开源轻量,适合小规模到中规模数据集)、Chroma(易集成,支持本地部署) - 嵌入模型:
text-embedding-ada-002(语义匹配精度高)、BGE-large-zh(开源中文嵌入模型,本地化部署成本低)
歧义消解与交互类
- LLM选型:
GPT-3.5-turbo(低成本、交互性优,适合云端调用)、Qwen-7B-Chat(开源可本地化部署,数据隐私性好) - 会话管理:
Redis(高效存储会话状态)、FastAPI(快速搭建交互式API接口) - 参数校验:
Pydantic(定义参数模型,自动校验用户输入的合法性与格式)
四、同类参考案例
- 美团装修报价系统:用户输入「装修」后,系统逐步询问房屋面积、装修风格、是否包含水电改造等核心参数,确认后生成精准报价。
- 滴滴出行预约流程:用户仅输入「打车」时,系统自动询问起点、终点、车型需求,补充信息后完成订单创建。
- 家政服务平台保洁报价:用户输入「保洁」后,系统依次确认房屋面积、保洁类型(日常/深度)、是否需要专项服务(如擦玻璃),收集完整信息后计算费用。
内容的提问来源于stack exchange,提问作者Gaurav
相关产品推荐
相关产品推荐

