AI个人学习
和实操指南

AI工程学院:2.11高级查询处理(查询转换使用手册)

介绍

查询转换使用手册展示了在检索增强生成 (RAG) 查询引擎、智能体或其他流程中执行用户查询前进行转换和分解的多种技术。这些转换可以提高 AI 应用中响应的质量和相关性。

https://github.com/adithya-s-k/AI-Engineering.academy/tree/main/RAG/06_Query_Transformation_RAG


 

查询转换技术

1. 路由

路由涉及识别与给定查询相关的工具子集。

flowchart LR A[用户查询] --> B[选择器] B --> C[工具 1] B --> D[工具 2] B --> E[工具 N] C & D & E --> F[选定工具]

实现方法:

  • 使用 LLMSingleSelector 或 LLMMultiSelector 进行基于大语言模型的选择
  • 使用 PydanticSingleSelector 或 PydanticMultiSelector 进行基于函数调用的选择
  • 使用 ToolMetadata 定义工具选项

2. 查询重写

查询重写涉及生成原始查询的多个变体,以改善检索结果。

实现方法:

  • 使用 PromptTemplate 和大语言模型 (LLM) 进行自定义实现
  • 使用 HyDEQueryTransform 进行假设性文档嵌入查询

3. 子查询生成

该技术将复杂查询分解成多个子查询,每个子查询面向特定工具。

blank

实现方法:

  • 使用 OpenAIQuestionGenerator 或 LLMQuestionGenerator
  • 使用 ToolMetadata 定义工具选项

4. ReAct 智能体工具选择

此方法使用 ReAct 框架决定要使用的工具以及在该工具上执行的查询。

blank

实现方法:

  • 使用 ReActChatFormatter 进行输入格式化
  • 使用 ReActOutputParser 解析大语言模型输出
  • 使用 FunctionTool 定义工具

 

使用

每种查询转换技术都可以作为较大系统中的模块化组件使用。以下是查询重写的基本使用示例:

from llama_index.core import PromptTemplate  
from llama_index.llms.openai import OpenAI  
query_gen_prompt = PromptTemplate("你的提示模板在这里")  
llm = OpenAI(model="gpt-3.5-turbo")  
def generate_queries(query: str, llm, num_queries: int = 4):  
response = llm.predict(query_gen_prompt, num_queries=num_queries, query=query)  
queries = response.split("\n")  
return queries  
queries = generate_queries("你的查询内容在这里", llm)

 

总结

查询转换使用手册提供了一套完整的技术,帮助开发者增强 AI 应用中的查询处理能力。通过利用这些转换技术,开发者可以创建更强大、更准确的信息检索和问答系统。

有关详细实现和与特定查询引擎或检索器集成的更多内容,请参考 LlamaIndex 文档。

本 README 提供了查询转换使用手册的概述,包括每种查询转换技术的简要说明和 Mermaid 图表,涵盖四种主要查询转换技术:路由、查询重写、子查询生成、ReAct 智能体工具选择。

每个部分都包括一个流程图可视化、技术简要描述以及基本实现细节。此外,本 README 还包括一个简单的查询重写使用示例,为用户提供起点。

您希望我详细扩展或修改本 README 的哪个部分吗?

AI轻松学

普通人的AI入门指南

帮助你以低成本、零基础学会如何利用AI工具。AI就像办公软件一样,是每个人的必备技能。 掌握AI会让你在求职中占据优势,在未来的工作和学习中事半功倍。

查看详情>
未经允许不得转载:首席AI分享圈 » AI工程学院:2.11高级查询处理(查询转换使用手册)

首席AI分享圈

首席AI分享圈专注于人工智能学习,提供全面的AI学习内容、AI工具和实操指导。我们的目标是通过高质量的内容和实践经验分享,帮助用户掌握AI技术,一起挖掘AI的无限潜能。无论您是AI初学者还是资深专家,这里都是您获取知识、提升技能、实现创新的理想之地。

联系我们
zh_CN简体中文