?
Rag, der für die Technology von Abrufen von Abrufen steht, beschreibt einen Prozess, durch den ein LLM (großes Sprachmodell) optimiert werden kann, indem er aus einer spezifischeren, kleineren Wissensbasis statt seiner riesigen ursprünglichen Foundation trainiert wird. In der Regel werden LLMs wie ChatGPT im gesamten Web geschult (Milliarden von Datenpunkten). Dies bedeutet, dass sie anfällig für kleine Fehler und Halluzinationen sind.
Hier ist ein Beispiel für eine State of affairs, in der Lag verwendet werden kann und hilfreich sein kann:
Ich möchte einen US State Tour Information Chat Bot bauen, der allgemeine Informationen über US -Bundesstaaten wie ihre Hauptstädte, Populationen und Haupttouristenattraktionen enthält. Dazu kann ich Wikipedia -Seiten dieser US -Bundesstaaten herunterladen und meine LLM mit Textual content von diesen spezifischen Seiten trainieren.
Erstellen Sie Ihren Lappen LLM
Eines der beliebtesten Werkzeuge zum Aufbau von Lappensystemen ist Llamaindexwelche:
- Vereinfacht die Integration zwischen LLMs und externen Datenquellen
- Ermöglicht es Entwicklern, ihre Daten auf eine Weise zu strukturieren, zu indexieren und zu strukturieren, die für den LLM -Verbrauch optimiert ist
- Funktioniert mit vielen Arten von Daten, wie z. B. PDFs und Textdateien
- Hilft einer Lappenpipeline, die relevante Datenbrocken abruft und injiziert, bevor sie sie für die Technology an die LLM weitergeben
Laden Sie Ihre Daten herunter
Erhalten Sie zunächst die Daten, mit denen Sie Ihr Modell trainieren möchten. PDFs von Wikipedia herunterladen (CC um 4.0) Stellen Sie im richtigen Format sicher, dass Sie drucken und dann als PDF speichern.
Exportieren Sie die Wikipedia nicht nur als PDF – Lama wird das Format nicht mögen, in dem es sich befindet, und lehnt Ihre Dateien ab.
Für die Zwecke dieses Artikels und um die Dinge einfach zu halten, werde ich nur die Seiten der folgenden 5 beliebten Staaten herunterladen:
- Florida
- Kalifornien
- Washington DC
- New York
- Texas
Stellen Sie sicher, dass Sie diese alle in einem Ordner speichern, in dem Ihr Projekt problemlos darauf zugreifen kann. Ich habe sie in einem namens „Daten“ gespeichert.
Holen Sie sich die notwendigen API -Schlüssel
Bevor Sie Ihre benutzerdefinierte Standing -Datenbank erstellen, müssen Sie 2 API -Schlüssel generieren.
- Eine von OpenAI, um auf eine Foundation -LLM zuzugreifen
- Eine von Lama zum Zugriff auf die Indexdatenbank, auf die Sie benutzerdefinierte Daten hochladen
Sobald Sie diese API -Schlüssel haben, speichern Sie sie in einer .env -Datei in Ihrem Projekt.
#.env file
LLAMA_API_KEY = "<Your-Api-Key>"
OPENAI_API_KEY = "<Your-Api-Key>"
Erstellen Sie einen Index und laden Sie Ihre Daten hoch
Erstellen a Llamacloud Konto. Sobald Sie in der Index sind, finden Sie den Indexabschnitt und klicken Sie auf „Erstellen“, um einen neuen Index zu erstellen.

Ein Index speichert und verwaltet Dokumentindizes aus der Ferne, damit sie über eine API abfragt werden können, ohne sie neu aufzubauen oder zu speichern.
So funktioniert es:
- Wenn Sie Ihren Index erstellen, gibt es einen Ort, an dem Sie Dateien hochladen können, um die Datenbank des Modells zu füttern. Laden Sie Ihre PDFs hier hoch.
- Llamaindex Parsen und Stücke die Dokumente.
- Es schafft eine Index (zB, Vektorindex, Schlüsselwortindex).
- Dieser Index ist in llamacloud gelagert.
- Du kannst dann Fragen Sie es ab Verwenden eines LLM durch die API.
Das nächste, was Sie tun müssen, ist, eine zu konfigurieren Einbettungsmodell. Ein Einbettungsmodell ist das LLM, das Ihrem Projekt zugrunde liegt und für das Abrufen der relevanten Informationen und für den Ausgabe von Textual content verantwortlich ist.
Wenn Sie einen neuen Index erstellen, möchten Sie auswählen „Erstellen Sie eine neue Openai -Einbettung“:

Wenn Sie Ihre neue Einbettung erstellen, müssen Sie Ihren OpenAI -API -Schlüssel bereitstellen und Ihr Modell benennen.

Sobald Sie Ihr Modell erstellt haben, lassen Sie die anderen Indexeinstellungen als Standardeinstellungen und klicken Sie unten auf „Index erstellen“.
Es kann einige Minuten dauern, bis alle Dokumente analysiert und gespeichert werden. Stellen Sie daher sicher, dass alle Dokumente bearbeitet wurden, bevor Sie versuchen, eine Abfrage auszuführen. Der Standing sollte auf der rechten Seite des Bildschirms angezeigt werden, wenn Sie Ihren Index in einem Feld mit der Aufschrift „Indexdateien Zusammenfassung“ erstellen.
Zugriff auf Ihr Modell über Code
Sobald Sie Ihren Index erstellt haben, erhalten Sie auch eine Organisations -ID. Fügen Sie für Cleaner -Code Ihre Organisations -ID und den Indexnamen Ihrer .env -Datei hinzu. Rufen Sie dann alle erforderlichen Variablen ab, um Ihren Index in Ihrem Code zu initialisieren:
index = LlamaCloudIndex(
identify=os.getenv("INDEX_NAME"),
project_name="Default",
organization_id=os.getenv("ORG_ID"),
api_key=os.getenv("LLAMA_API_KEY")
)
Fragen Sie Ihren Index ab und stellen Sie eine Frage
Dazu müssen Sie eine Abfrage (Eingabeaufforderung) definieren und dann eine Antwort erstellen, indem Sie den Index als solches aufrufen:
question = "What state has the very best inhabitants?"
response = index.as_query_engine().question(question)
# Print out simply the textual content a part of the response
print(response.response)
Ein längeres Gespräch mit Ihrem Bot führen
Wenn Sie eine Antwort von der LLM so abfragen, wie wir es oben oben getan haben, können Sie aus den von Ihnen geladenen Dokumenten problemlos auf Informationen zugreifen. Wenn Sie jedoch eine Observe -up -Frage stellen, wie „Welches hat am wenigsten?“ Ohne Kontext erinnert sich das Modell nicht, was Ihre ursprüngliche Frage struggle. Dies liegt daran, dass wir es nicht programmiert haben, um den Chat -Geschichte zu verfolgen.
Um dies zu tun, müssen Sie:
- Erstellen Sie den Speicher mit ChatMemoryBuffer Speicher
- Erstellen Sie eine Chat -Engine und fügen Sie den erstellten Speicher mit ContextChatengine hinzu
So erstellen Sie eine Chat -Engine:
from llama_index.core.chat_engine import ContextChatEngine
from llama_index.core.reminiscence import ChatMemoryBuffer
# Create a retriever from the index
retriever = index.as_retriever()
# Arrange reminiscence
reminiscence = ChatMemoryBuffer.from_defaults(token_limit=2000)
# Create chat engine with reminiscence
chat_engine = ContextChatEngine.from_defaults(
retriever=retriever,
reminiscence=reminiscence,
llm=OpenAI(mannequin="gpt-4o"),
)
Füttern Sie Ihre Abfrage als nächstes in Ihre Chat -Engine:
# To question:
response = chat_engine.chat("What's the inhabitants of New York?")
print(response.response)
Dies gibt die Antwort: „Ab 2024 beträgt die geschätzte Bevölkerung von New York 19.867.248.“
Ich kann dann eine Observe -up -Frage stellen:
response = chat_engine.chat("What about California?")
print(response.response)
Dies gibt die folgende Antwort: „Ab 2024 beträgt die Bevölkerung Kaliforniens 39.431.263.“ Wie Sie sehen können, erinnerte sich das Modell daran, dass das, wonach wir zuvor gefragt hatten, die Bevölkerung struggle und entsprechend reagierte.

Abschluss
Abrufener Augmented Technology ist eine effiziente Möglichkeit, einen LLM für bestimmte Daten zu schulen. Llamacloud bietet eine einfache und einfache Möglichkeit, Ihr eigenes Rag -Framework aufzubauen und das darunter liegende Modell abzufragen.
Der Code, den ich für dieses Tutorial verwendet habe, wurde in ein Notizbuch geschrieben, kann aber auch in eine Streamlit -App eingewickelt werden, um ein natürlicheres Hin- und Her -Gespräch mit einem Chatbot zu erstellen. Ich habe den Streamlit -Code aufgenommen Hier auf meinem Github.
Danke fürs Lesen
- Verbinde mich mit mir LinkedIn
- Kaufen Sie mir einen Kaffee um meine Arbeit zu unterstützen!
- Ich biete 1: 1 Datenwissenschaftsunterricht, Karriere -Teaching/Mentoring, Schreiben von Ratschlägen, Lebenslaufbewertungen und mehr auf Topmate!
