(jemandem eine Stelle etc.) anbieten
Das Benutzerhandbuch zur Abfrageumwandlung demonstriert die Verwendung der Abfrageumwandlung bei der Abfrage der erweiterten Generation (RAG) Mehrere Techniken für Transformationen und Dekompositionen vor der Ausführung von Benutzeranfragen in Abfragemaschinen, Intelligenzen oder anderen Prozessen. Diese Umwandlungen können die Qualität und Relevanz der Antworten in KI-Anwendungen verbessern.
https://github.com/adithya-s-k/AI-Engineering.academy/tree/main/RAG/06_Query_Transformation_RAG
Technologie zur Umwandlung von Abfragen
1. die Weiterleitung
Beim Routing geht es darum, eine Teilmenge von Tools zu ermitteln, die für eine bestimmte Anfrage relevant sind.
Flussdiagramm LR A[Benutzerabfrage] --> B[Selektor] B --> C[Werkzeug 1] B --> D[Werkzeug 2] B --> E[Werkzeug N] C & D & E --> F[ausgewähltes Werkzeug]
Realisierungsmethode:
- ausnutzen
LLMSingleSelector
vielleichtLLMMultiSelector
Eine Auswahl auf der Grundlage eines umfangreichen Sprachmodells treffen - ausnutzen
PydanticSingleSelector
vielleichtPydanticMultiSelector
Funktionsaufruf-basierte Selektionen vornehmen - ausnutzen
ToolMetadata
Definieren von Werkzeugoptionen
2. das Umschreiben von Abfragen
Beim Umschreiben von Abfragen werden mehrere Varianten der ursprünglichen Abfrage erstellt, um die Suchergebnisse zu verbessern.
Realisierungsmethode:
- ausnutzen
PromptTemplate
und Large Language Model (LLM) für kundenspezifische Implementierungen - ausnutzen
HyDEQueryTransform
Hypothetische Abfragen zur Dokumenteneinbettung durchführen
3. die Erstellung von Unterabfragen
Bei dieser Technik wird eine komplexe Abfrage in mehrere Unterabfragen zerlegt, von denen jede auf ein bestimmtes Werkzeug ausgerichtet ist.
Realisierungsmethode:
- ausnutzen
OpenAIQuestionGenerator
vielleichtLLMQuestionGenerator
- ausnutzen
ToolMetadata
Definieren von Werkzeugoptionen
4 ReAct Intelligent Body Werkzeugauswahl
Diese Methode verwendet ReAct Der Rahmen bestimmt das zu verwendende Werkzeug und die Abfragen, die mit diesem Werkzeug ausgeführt werden sollen.
Realisierungsmethode:
- ausnutzen
ReActChatFormatter
Eingabeformatierung durchführen - ausnutzen
ReActOutputParser
Parsing großer Sprachmodellausgaben - ausnutzen
FunctionTool
Definitionswerkzeuge
ausnutzen
Jede der Abfrageumwandlungstechniken kann als modulare Komponente in einem größeren System verwendet werden. Im Folgenden werden Beispiele für die grundlegende Verwendung der Abfrageumformung aufgeführt:
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)
Zusammenfassungen
Das Benutzerhandbuch zur Abfragetransformation bietet eine vollständige Reihe von Techniken, die Entwicklern helfen, die Abfrageverarbeitung in KI-Anwendungen zu verbessern. Durch den Einsatz dieser Transformationstechniken können Entwickler leistungsfähigere und präzisere Systeme für die Informationsbeschaffung und Fragen und Antworten erstellen.
Weitere Informationen zur detaillierten Implementierung und zur Integration mit bestimmten Abfrageprogrammen oder Retrievern finden Sie in der LlamaIndex-Dokumentation.
Dieses README bietet einen Überblick über das Benutzerhandbuch zur Abfragetransformation, einschließlich kurzer Beschreibungen und Mermaid-Diagramme für jede Abfragetransformationstechnik, die die vier wichtigsten Abfragetransformationstechniken abdeckt: Routing, Query Rewriting, SubQuery Generation und ReAct Intelligent Body Tool Selection.
Jeder Abschnitt enthält eine Flussdiagramm-Visualisierung, eine kurze Beschreibung der Technologie und grundlegende Implementierungsdetails. Darüber hinaus enthält diese README ein einfaches Anwendungsbeispiel für das Umschreiben von Abfragen, um den Benutzern einen Ausgangspunkt zu bieten.
Welchen Teil dieser README soll ich im Detail erweitern oder ändern?