我正在使用 azure ai search 和 llm 从 sql 表中获取针对用户文本查询的响应。但是当用户询问“向我提供员工的平均工资总额”时,在这种情况下,azure ai search 应该检索所有工资记录并 llm 计算平均值。但azure ai搜索未能检索到所有记录。有没有什么技术可以解决这个问题,或者我应该转向另一种 NLQ 方法。
Search Answers: [] Value:
Search Score: 1.261305
Reranker Score: 1.3793658018112183
Claim ID: "C004"
Policy Number: "P225166"
Claim Date: "2024-03-04"
Insured Entity: "Williams PLC"
Claim Amount: "1,644,928.00"
Claim Description: "Always amount begin."
Loss Adjuster Report: "path/to/loss_adjuster_report_004.pdf"
Claim Status: "Approved"
Claim Settlement Date: null
Settlement Amount: "76,928.00"
我试图得到“向我提供员工平均工资总额”的回复,但 azure ai 搜索只给我提供了一条记录。
基本上,在ai搜索中,当您进行查询时,它会在可搜索的字段上进行搜索,并根据搜索分数为您提供结果。
当您查询金额或工资时,它是整数类型,不会在该字段上进行搜索。因此,使用归档的工资或字符串类型的金额创建索引。
即使你得到的是平均工资,那也只是检索到的顶级文档的平均值。
如果你看到提前设置,只检索3-20个文档
查看此示例输出
首先我给出提示
give me details of price.
给出了前 20 个具有值的文档。
然后要求计算平均值。
仅计算前 20 个文档,而不是整个记录。
因此,我建议您以这样的方式进行查询:过滤掉记录并根据关键字给出文档,并对前 n 个文档执行您想要的操作。
另请记住,它仅在可搜索的字段上搜索。