字段模糊查询场景解决方案

场景说明

有些业务字段天然适合做模糊匹配,例如公司名称、商品名称、地址、备注等。用户提问时,往往不会完整输入字段值,而是只提供其中一部分内容。

例如:

  • 包含“华为”的公司有哪些?
  • 查询公司名里带“腾讯”的客户
  • 找一下备注中包含“已签约”的记录

如果系统仍然按精确匹配去理解这类问题,就可能导致查不到数据,或者结果不符合预期。

期望行为

提问期望改写
查询华为相关的公司公司名称包含 "华为"
找公司名里带腾讯的客户公司名称包含 "腾讯"
备注里有已签约的记录有哪些备注包含 "已签约"

解决方案

如果某些字段有明确的模糊查询需求,可以通过修改 Nora 的系统提示词,引导模型在特定场景下将用户问题改写为“字段包含某个值”的形式。

核心思路不是穷举所有可能取值,而是告诉大模型:

  • 哪些字段需要按“包含”来理解
  • 当识别到这类场景时,应如何改写提问

例如,可以在 Nora 提示词中补充类似规则:

当用户提问涉及公司名称的模糊匹配时,将提问改写为:公司名称包含 "xxx"。

其中:

  • 公司名称 是字段名称
  • xxx 是用户提问中提取出来的关键词

配置步骤

  1. 进入 AI 员工 模块
  2. 找到 Nora,点击 编辑
  3. 人物设定 中补充相关提示词
  4. 保存并发布

提示词示例

可以参考下面的写法:

当用户的提问涉及公司名称、商品名称、地址、备注等需要模糊匹配的字段时,
不要按精确值理解,而是改写为“字段名称包含 xxx”的形式。

例如:
- 用户提到公司名称相关内容时,改写为:公司名称包含"xxx"
- 用户提到商品名称相关内容时,改写为:商品名称包含"xxx"
- 用户提到备注相关内容时,改写为:备注包含"xxx"

如果你想写成更通用的规则,也可以直接写:

当出现 xxx 情况时,将提问改写为:aaa 包含"xxx"。
其中 aaa 是字段名称,xxx 是用户提问中提取出的关键词。

Q&A

Q:像公司名称这类字段,用户可能输入很多不同的值,难道要在提示词里把这些情况全部穷举出来吗?

A:不用。

不需要把所有可能的取值都提前列出来,只需要把这类字段的改写规则告诉大模型即可。

例如,当用户提到公司名称时,可以将提问改写为:公司名称包含"xxx"

也就是说,你提供给大模型的是一个“匹配特征”或“改写模式”,而不是所有可能值的穷举列表。

注意事项

  • 这种方式适用于字段语义比较明确,且业务上确实需要模糊匹配的场景
  • 提示词中应明确具体字段名称,避免模型改写得过于泛化
  • 如果同一个词可能命中多个字段,建议在提示词中补充业务上下文,减少歧义
  • 修改提示词后,建议结合真实问题进行验证,重点检查标准化后的提问是否符合预期