(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
Auf Funktionsaufrufe basierende Auswahlen treffen - ausnutzen
Werkzeug-Metadaten
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 das 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
Werkzeug-Metadaten
Definieren von Werkzeugoptionen
4 ReAct Intelligent Body Tool Auswahl
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
FunktionsWerkzeug
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
von llama_index.llms.openai importieren OpenAI
query_gen_prompt = PromptTemplate("Ihre Prompt-Vorlage ist hier")
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)
abfragen = antwort.split("\n")
Abfragen zurückgeben
abfragen = generate_queries("Ihre Abfragen sind hier", 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 spezifischen 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?