fix(ai): recognize conversational document filters

This commit is contained in:
caoxiaozhu
2026-07-20 10:31:15 +08:00
parent 7a3755ac55
commit 2a9b3e3273
12 changed files with 250 additions and 54 deletions

View File

@@ -153,6 +153,29 @@ test('AI document query combines natural-language filters', () => {
assert.match(buildAiDocumentQueryConditionSummary(intent), /金额不少于1000元/)
})
test('AI document query recognizes colloquial travel city filtering commands', () => {
const intent = resolveAiDocumentQueryIntent('出差上海的单据请筛选一下', { today })
const records = filterAiDocumentQueryRecords(claims, intent)
assert.equal(intent?.source, 'accessible')
assert.equal(intent?.expenseTypeFilter?.label, '差旅费')
assert.equal(intent?.keywordFilter?.label, '上海')
assert.deepEqual(
records.map((record) => record.documentNo),
['CL-20260221001', 'AP-20260220001']
)
})
test('AI document query recognizes quoted keywords generated by the guided query flow', () => {
const intent = resolveAiDocumentQueryIntent(
'帮我查询地点或事由包含“上海电力”的报销单据状态,筛选最近的 5 条记录',
{ today }
)
assert.equal(intent?.documentType, 'reimbursement')
assert.equal(intent?.keywordFilter?.label, '上海电力')
})
test('AI document query filters draft candidates by relative day', () => {
const intent = resolveAiDocumentQueryIntent('我的 3天前 草稿单据', { today: '2026-06-24' })
const records = filterAiDocumentQueryRecords([