LlamaIndex中的查询:解锁LLM应用的核心功能
现在你已经加载了数据,构建了索引,并为后续存储了该索引,你已经准备好进入LLM应用中最重要的一部分:查询。
在最简单的情况下,查询只是对LLM的一个提示调用:它可以是一个问题并得到答案,或者是一个总结请求,或者是一个更复杂的指令。
更复杂的查询可能涉及重复/链式的提示+LLM调用,甚至是在多个组件之间的推理循环。
入门指南
所有查询的基础是查询引擎(QueryEngine)。获取查询引擎的最简单方法是让索引为你创建一个,如下所示:
query_engine = index.as_query_engine()
response = query_engine.query(
"Write an email to the user given their background information."
)
print(response)
查询的阶段
然而,查询不仅仅是表面上看起来的那么简单。查询由三个不同的阶段组成:
- 检索:从你的索引中找到并返回与查询最相关的文档。如索引部分所述,最常见的检索类型是“前k”语义检索,但还有许多其他检索策略。
- 后处理:对检索到的节点进行可选的重排序、变换或过滤,例如要求它们具有特定的元数据,如附加的关键词。
- 响应合成:将你的查询、最相关的数据和你的提示组合并发送给LLM以返回响应。
提示
你可以了解如何将元数据附加到文档和节点。
自定义查询的阶段
LlamaIndex提供了一个低级组合API,让你可以对查询进行细粒度的控制。
在这个例子中,我们自定义了检索器以使用不同的top_k数量,并添加了一个后处理步骤,要求检索到的节点达到最小相似度分数才能被包含。这会在你有相关结果时提供大量数据,但如果没有任何相关内容,则可能没有数据。

最低0.47元/天 解锁文章
1006

被折叠的 条评论
为什么被折叠?



