feat: 增强知识库索引与设置页面模块化拆分
扩展知识库索引任务和 RAG 检索支持增量入库和文档去重,优 化本体检测和规则匹配精度,前端设置页面拆分为 LLM、邮件 和 Hermes 员工同步子面板并重构样式,新增日志详情组件和 知识入库日志模型,补充单元测试覆盖。
This commit is contained in:
@@ -22,17 +22,17 @@ const DEFAULT_EXPENSE_TYPE_LABELS = {
|
||||
travel: '差旅费',
|
||||
hotel: '住宿费',
|
||||
transport: '交通费',
|
||||
meal: '餐费',
|
||||
meal: '业务招待费',
|
||||
meeting: '会务费',
|
||||
entertainment: '业务招待费',
|
||||
office: '办公费',
|
||||
office: '办公用品费',
|
||||
training: '培训费',
|
||||
communication: '通讯费',
|
||||
welfare: '福利费',
|
||||
other: '其他费用'
|
||||
}
|
||||
|
||||
export const TRANSPORT_KEYWORD_PATTERN = /交通|出行|打车|网约车|出租车|滴滴|车费|乘车|用车|叫车|约车|的士|车票|车资|地铁|公交|停车|过路费|通行费/
|
||||
export const TRANSPORT_KEYWORD_PATTERN = /交通|市内交通|出行|打车|网约车|出租车|滴滴|车费|乘车|用车|叫车|约车|的士|车票|车资|地铁|公交|停车|过路费|通行费|高速费|油费/
|
||||
|
||||
const FLOW_INTENT_KEYWORDS = {
|
||||
draft: ['报销', '报账', '草稿', '生成', '提交', '申请', '请走报销'],
|
||||
@@ -104,21 +104,36 @@ export function inferLocalFlowCandidates(rawText) {
|
||||
|
||||
let event = ''
|
||||
let expenseType = ''
|
||||
if (/客户.*吃饭|请客户.*吃饭|招待|宴请|请客/.test(compact)) {
|
||||
event = '请客户吃饭'
|
||||
expenseType = '业务招待费'
|
||||
} else if (/出差|差旅|机票|高铁|火车|行程/.test(compact)) {
|
||||
event = '出差行程'
|
||||
expenseType = '差旅费'
|
||||
} else if (TRANSPORT_KEYWORD_PATTERN.test(compact)) {
|
||||
if (TRANSPORT_KEYWORD_PATTERN.test(compact)) {
|
||||
event = '交通出行'
|
||||
expenseType = '交通费'
|
||||
} else if (/住宿|酒店|宾馆/.test(compact)) {
|
||||
} else if (/客户.*吃饭|请客户.*吃饭|客户用餐|客户接待|商务接待|招待|宴请|请客/.test(compact)) {
|
||||
event = '业务招待'
|
||||
expenseType = '业务招待费'
|
||||
} else if (/出差|差旅|机票|飞机票|航班|高铁票|高铁|火车票|火车|动车|行程单|铁路客票/.test(compact)) {
|
||||
event = '出差行程'
|
||||
expenseType = '差旅费'
|
||||
} else if (/住宿|住宿费|酒店|酒店发票|宾馆|民宿|房费|客房/.test(compact)) {
|
||||
event = '住宿报销'
|
||||
expenseType = '住宿费'
|
||||
} else if (/餐费|用餐|午餐|晚餐|早餐|餐饮/.test(compact)) {
|
||||
event = '餐饮用餐'
|
||||
expenseType = '餐费'
|
||||
} else if (/餐费|工作餐|用餐|午餐|晚餐|早餐|餐饮|伙食|茶歇/.test(compact)) {
|
||||
event = '业务招待'
|
||||
expenseType = '业务招待费'
|
||||
} else if (/会务|会议费|会议|参会|会场|场地费|论坛|展会/.test(compact)) {
|
||||
event = '会务活动'
|
||||
expenseType = '会务费'
|
||||
} else if (/办公用品|办公耗材|办公设备|文具|打印纸|硒鼓|墨盒|键盘|鼠标|白板/.test(compact)) {
|
||||
event = '办公采购'
|
||||
expenseType = '办公用品费'
|
||||
} else if (/培训|讲师费|课程费|教材|认证费|考试费/.test(compact)) {
|
||||
event = '培训学习'
|
||||
expenseType = '培训费'
|
||||
} else if (/通讯费|话费|电话费|手机费|流量费|宽带费|网络费/.test(compact)) {
|
||||
event = '通讯使用'
|
||||
expenseType = '通讯费'
|
||||
} else if (/福利费|团建|慰问|节日福利|体检费|员工关怀/.test(compact)) {
|
||||
event = '员工福利'
|
||||
expenseType = '福利费'
|
||||
}
|
||||
|
||||
return {
|
||||
@@ -232,7 +247,13 @@ export function buildLocalExtractionProgressMessages(rawText, options = {}) {
|
||||
}
|
||||
|
||||
const attachmentHint = Number(options.attachmentCount || 0) > 0 ? '附件完整性' : '票据附件'
|
||||
messages.push(`正在判断待补项:客户名称、参与人员、${attachmentHint}`)
|
||||
const pendingSlots = ['发生时间', '金额', attachmentHint]
|
||||
if (candidates.expenseType === '业务招待费') {
|
||||
pendingSlots.splice(2, 0, '客户名称', '参与人员')
|
||||
} else if (candidates.expenseType === '住宿费') {
|
||||
pendingSlots.splice(2, 0, '酒店/商户')
|
||||
}
|
||||
messages.push(`正在判断待补项:${pendingSlots.join('、')}`)
|
||||
|
||||
return messages
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user