Transkripte
1. Einführung: Hallo und willkommen zu diesem Kurs Aufbau eines
KI-Agenten mit Open AI,
Lama-Index , Pine
Cone und Streamlt Ich bin der Vidar
Mendais und werde der Kursleiter dieses
Kurses sein .
Wer bin ich? Ich habe einen Bachelor of
Science in Mathematik einen Master-Abschluss
in Datenwissenschaft und Analytik mit Schwerpunkt LMS Ich bin ein vollwertiger
Softwareingenieur mit mehr als sechs
Jahren Erfahrung Ich bin AW-zertifiziert, Ashur-zertifiziert und ich bin ein
Cybersicherheits-Enthusiast Was werden wir in diesem
Kurs machen? Wir werden einen
LLM-Agenten erstellen, der auf dem
OpenAI GPT 40-Minimodell basiert OpenAI GPT 40-Minimodell Der Zweck des Agenten wird darin bestehen,
Forschungsarbeiten auf
der Archivplattform zu finden und zusammenzufassen ,
und wir werden das Lama-Index-Framework verwenden ,
um
die Wissensbasis des Agenten zu erweitern Was werden wir in diesem Kurs
lernen? Ich werde grundlegende
Konzepte der KI
wie Vektoreinbettungen,
Vektorindizes,
Retrieval Augmented
Generation oder RAC,
Crum-Templates, React-Agenten,
wie man die Anweisungen der
Agenten optimiert,
Vektordatenbanken,
Lama-Index
zur Erweiterung des Wissens,
Stream-Bedarf zum Erstellen
und Bereitstellen der Benutzeroberfläche sowie Best Practices für Python und Softwareentwicklung erlernen wie Vektoreinbettungen,
Vektorindizes,
Retrieval Augmented
Generation oder RAC,
Crum-Templates , React-Agenten, wie man die Anweisungen der
Agenten optimiert,
Vektordatenbanken, Lama-Index
zur Erweiterung des Wissens, Stream-Bedarf zum Erstellen
und Bereitstellen der Benutzeroberfläche sowie Best Practices für Python und . Welche Tools werden wir verwenden? Der Mitarbeiter verwendet drei Tools eine Rack-Abfrage-Engine zum Abrufen von Informationen aus
einer Wissensdatenbank, ein Tool zum Abrufen von
Forschungsarbeiten, um Informationen
über Artikel zu recherchieren oder
zu finden, die wir nicht in unserer
Wissensdatenbank haben, und einen PDF-Download wir nicht in unserer
Wissensdatenbank haben, und einen PDF-Download, wenn Sie Artikel direkt
auf Ihren Computer
herunterladen möchten Artikel direkt
auf Ihren Computer
herunterladen Ich hoffe, dir gefällt
dieser Kurs, denn ich habe es sehr genossen, ihn aufzubauen Ich hoffe, wir sehen uns in
der nächsten Lektion. Tschüss.
2. Einrichten der Entwicklungsumgebung: Hallo und willkommen zurück.
In dieser Lektion werden
wir die
Entwicklungsumgebung einrichten. Ein paar Dinge
, die Sie beachten müssen. Wir werden
VS-Code als Code-Editor verwenden. Wir werden
einen GidHubPro erstellen, um
das Endergebnis mit Ihnen zu teilen ,
und wir werden PDM verwenden,
was für Python
Dependency Manager steht, um was für Python
Dependency Manager steht Abhängigkeiten
des Python-Projekts
zu verwalten Wir benötigen außerdem
einen Open-AI-API-Schlüssel
, um einen Open-AI-API-Schlüssel Was sind also die Abhängigkeiten , die wir in diesem Projekt
haben werden? Wir werden Archive haben
, eine Bibliothek zum Herunterladen der Dokumente von der
Archivplattform,
Python Punkt F, um die
Umgebungsvariablen zu verwalten. In diesem Fall werden
wir den OpenAI-API-Schlüssel haben. Wir wollen, dass das geheim
bleibt, deshalb werden wir Python Mv verwenden. Wir werden Notebook verwenden,
weil wir
Jupiter Notebook verwenden werden, und wir werden
auch
den Lemma-Index installieren, das Framework
zur Erstellung von LLM-Apps Das ist also der langweilige
Teil des Kurses, aber wir müssen ihn machen Gehen wir zu github.com,
und das ist mein GitHub-Konto Du gehst zu deinem GitHub-Konto. Wenn Sie noch keines haben, können
Sie eines erstellen, und wir werden ein neues Repository
erstellen. Also den Namen des Repositorys, ich nenne ihn
Archive Researcher. Du kannst es nennen,
wie du willst. Wir werden es veröffentlichen ,
damit ich das
Endergebnis mit Ihnen teilen kann. Wir werden einen Gid
Ignore für ein Python-Projekt hinzufügen. Lizenz, keine und das sind
nur Apps, die ich habe. Wenn Sie
keine Apps haben, wird Ihnen
das wahrscheinlich nicht angezeigt
,
sondern klicken Sie einfach auf
Create Repositor Ein brandneues Repo
wird für mich erstellt. Ich öffne ein Terminal und
klicke hier auf den Code, und ich werde dieses SSH kopieren Wenn Sie keinen SSH-Schlüssel haben, konfigurieren Sie ihn in
Ihrem Gita-Konto Dann sollten Sie HTTPS verwenden, aber SSH ist die
empfohlene Methode Ich werde das kopieren. Gehe zum Terminal und sage git
clone und füge
das Jetzt habe ich das Repo
auf meinem lokalen Computer und
werde hier den VS-Code öffnen Wie Sie sehen können,
haben wir den GTI noch, was derselbe ist, den ich
hier habe Wenn ich das GTI auch nicht öffne, wirst
du viele Dinge finden,
die normalerweise
in
einem Python-Projekt ignoriert werden Wir werden also den
Python-Abhängigkeitsmanager verwenden , wenn wir ein
Projekt mit PDM initialisieren Das
sind die Dinge, die ignoriert werden Lass uns nach PVM PVM Python
suchen. Die URL lautet also pdmpject.org. Wenn ich hier klicke, werde ich die Website von
PDM sehen. PDM ist, wie beschrieben ein moderner iPhone-Paket
- und Abhängigkeitsmanager der die neuesten
PEP-Standards
unterstützt Aber es ist mehr als
ein Paketmanager. Es verbessert Ihren
Entwicklungsworkflow in verschiedenen Aspekten. Der Hauptzweck von PDM ist im Grunde die
Auflösung von Abhängigkeiten Denn wenn Sie Pakete
installieren, können
diese Pakete von Unterpaketen
abhängen Pakete müssen sich also darauf einigen , welche Versionen von
Unterpaketen Sie installieren müssen. Das ist im Grunde die Idee der Auflösung von Abhängigkeiten. PDM ist ein hervorragendes Tool, um das zu verwalten Also, wie installiert man das? Zunächst müssen Sie Python 3.9 oder höher installieren. Es funktioniert auf mehreren Plattformen, darunter Windows,
Linux und macOS. Wie Sie vielleicht bemerkt haben, verwende
ich macOS. PDM kann auch mehrere Versionen von Python verwalten Wenn ich zum Beispiel
Python 3.10 oder 3.11 oder 3.12 verwenden möchte , kann
ich Wir werden gleich sehen
, wie das geht. Ich möchte jedoch, dass Sie zur
Dokumentation gehen und
die Schritte für die empfohlene
Installationsmethode befolgen. Es heißt,
PDM stellt wie PIP ein
Installationsskript bereit, das PDM in einer
isolierten Umgebung
installiert Für Linux und Mac müssen
Sie
diesen Befehl nur kopieren und in Ihr Terminal
einfügen In Windows können Sie
dies mit PowerShell tun. Wenn Sie jedoch Windows verwenden, empfehle
ich Ihnen dringend, das Windows-Subsystem für Linux zu
verwenden, damit Sie eine
Linux-Umgebung auf Ihrem
Windows-Computer haben Ihrem
Windows-Computer Wenn Sie das nicht tun möchten, wenn Sie mit dem
Windows-Subsystem für Linux nicht vertraut sind, können
Sie
PDM mit PowerShell installieren Okay. Nachdem Sie das getan haben, sollten
Sie PDM
in Ihrem Computer haben Es gibt auch Anweisungen,
wenn Sie PDM deinstallieren möchten,
aber ich sage, behalten Sie es Es ist ein großartiges Tool. Wenn ich also zu meinem
Terminal gehe und PDM eintippe, mache
ich das größer Sie werden sehen, dass es
hier viele Optionen gibt. PDM ad ist einer der Befehle
, die wir verwenden werden,
und zwar zum Hinzufügen Paketen zu einer Datei namens
Piroject Dies ähnelt Package Jason, falls Sie aus
der Welt von No JS kommen PDM, ein weiterer Befehl, wir verwenden werden, ist PDM. Er besteht darin, zu initialisieren ein Pipe-Projekt von
Tumel Ein weiterer Befehl, den
wir
verwenden werden und den wir
verwenden können, ist PDM Python . Er dient zur Verwaltung
der verschiedenen Versionen von
Python, von denen ich
Ihnen vor einiger Zeit erzählt habe Schauen wir uns also an, ein weiterer sehr
wichtiger Befehl ist PDM remove, der zum
Entfernen von Paketen aus
dem
Pi-Projekt bis TamelFle verwendet wird von Paketen aus
dem
Pi-Projekt bis Okay? Schauen wir uns also an, was
passiert, wenn ich PDM Python eintippe Wenn ich also PDM Python eintippe, habe ich zusätzliche
Unterbefehle Die erste ist die Liste, und zwar die Auflistung aller mit PDM
installierten Python-Interpreter Wenn ich PDM Python list eintippe, werden
Sie sehen, dass ich
diese vier Python-Versionen
auf meinem Computer installiert habe auf meinem Computer installiert 3.12 0.2, 3.11 0.5,
3.13 0.0 und 3.11 Angenommen, ich möchte
eine neue Python-Version installieren, ich kann PVM Python
install eingeben . Ich sollte
die Python-Version angeben , die
ich installieren möchte Wenn ich PDM Python
Install Help
eintippe, werden Sie sehen,
dass ich dieses Listen-Flag habe Lassen Sie mich die PBM
Python-Installationsliste eingeben und Sie werden alle verfügbaren Python-Versionen
sehen verfügbaren Python-Versionen Wenn ich einfach PDM Python
Install eintippe, wie ich
es hier getan habe , wird
die neueste Version installiert, nämlich Python 3.13 0.0 Aber nehmen wir an, ich möchte Python 3.12 0.7
installieren. Wir werden diese Version von
Python in diesem Projekt verwenden und einfach
PDM Python Install ausführen und Sie müssen nicht
die gesamte C-Python-App eingeben Sie geben einfach 3.12 0.7 ein und
das sollte reichen. Also wird es diese Version
von Python herunterladen und installieren und die ausführbare Datei
in diesem Ordner hier speichern. Jetzt sind wir bereit, ein PDM-Projekt zu
initialisieren. Kehren wir zum VS-Code zurück und geben ihn
im Terminal PDM Wenn ich das jetzt
etwas größer mache, wird
es mich veranlassen, die Python-Version auszuwählen, die ich in diesem Projekt
verwenden möchte Ich werde 3.12 0.7 verwenden. Das ist diese Option hier. Ich werde
die Option vier haben. Okay. Und das
wird diesen Ordner namens VENV erstellen, der
die virtuelle
Umgebung ist Hier werden alle Pakete
installiert, und dann fragt es mich, wie der Projektname
lauten soll Ich kann einfach
mehrmals Enter eingeben , um die
Standardwerte hier beizubehalten. Okay. Es entsteht also ein
Pi-Projekt, das in sich zusammenstürzt. Auch hier gilt: Wenn Sie
aus der NoJS-Welt kommen, ähnelt
dies einer
JSON-Paketdatei Hier können Sie sehen, dass es Daten
über das Projekt, die Beschreibung des Projekts, die Autoren des Projekts, die Abhängigkeiten, die
benötigte Version von Python usw. enthält. Wir werden jetzt
die Abhängigkeiten
installieren, die wir
für dieses Produkt benötigen Dafür
sage ich PDM bei Archive,
Index, Typon Dot und Notebook Wenn ich Enter eintippe, können
Sie sehen, dass die
Auflösung für Es löst all die Unterpakete auf, die
installiert werden sollen Und das kann eine Weile dauern. In der Zwischenzeit
möchte ich, dass Sie diese PDM-Python-Datei beachten diese PDM-Python-Datei Dies sagt nur aus
, dass sich die
ausführbare Python-Datei für dieses Projekt in dieser VENB-Datei
befindet Sie können sehen, dass dies sehr
spezifisch für meinen Computer ist. Deshalb ist es auf dem GTI Nr. Wenn Sie diese
Python-, GTI- oder Vorlage ausgewählt haben, hat
sie diese
Datei bereits in der Vorlage, sodass sie bereits ignoriert wird Okay. Nun wollen wir
hier sehen, was passiert. Es ist 1 Minute vergangen und die Auflösung der Pakete ist immer noch im
Gange Jetzt wurde die gesamte
Abhängigkeit behoben. Es hat 149 Pakete gelöst. Das ist eine Menge, weil wir gerade vier
dieser Pakete
installiert haben. Aber diese vier
Pakete insgesamt verwenden
sie hinter den
Kulissen 149 Pakete. PDM ist also intelligent
genug, um alle Versionen
aufzulösen , sodass wir keine
Versionskonflikte haben Alles wurde erfolgreich
installiert, es gab keine Fehler, und diese
PDM-Punktprotokolldatei wurde erstellt Nochmals, wenn Sie
aus der No-JS-Welt kommen, ist
dies das Paket, die Paket-Log-Datei Und das enthält Informationen über alle Abhängigkeiten, Unterabhängigkeiten,
die installiert wurden. Als letztes
werden wir sehen, dass wir eine Punkt-EMV-Datei erstellen werden Und diese EMB-Datei wird unsere
OpenAI-API enthalten. Wir werden OpenAI APIKey binden und hier werden wir unsere OpenAI APK
einfügen Eine Strategie oder eine
bewährte Methode besteht darin
, eine TNBT-Beispieldatei zu haben. Dieses EMB-Beispiel
wird also nicht im GitKnt enthalten sein und kann sicher in das Repo übernommen Wir geben einfach die gleichen Informationen wie in die EMV-Datei ein,
aber ohne die wie in die EMV-Datei ein,
aber ohne die Werte. Hier hatten wir
den Wert noch nicht. Hier werden wir niemals den Wert
haben. Das ist eine gute Methode,
damit jeder , der das Repo klont, weiß,
dass ich
einen Open-AI-API-König Das war's für diese Lektion. Ich hoffe es gefällt dir und wir sehen uns
in der nächsten Lektion. H
3. Einen OpenAI-API-Schlüssel erhalten: Hallo und willkommen zurück.
Bevor wir es vergessen, holen
wir uns einen Open AI API-Schlüssel. Gehen Sie zu open.com, gehen Sie zu
Produkten und gehen Sie zum API-Login. Sie ändern das ständig. Wenn Sie
kein Open AI-Konto haben, registrieren Sie sich und wenn Sie eines
haben, melden Sie sich an. Ich werde mich mit meinem Konto anmelden. Und gehe zum Dashboard. Und gehe zu API-Schlüsseln. Zuallererst müssen Sie
die Abrechnung aktiviert haben. Gehen Sie also zu den Einstellungen, gehen Sie hier zur Abrechnung bei der
Zahlungsmethode und Sie können 5$ eingeben Ich denke, das ist das Minimum. Also vergiss nicht, das zu tun. Gehen wir zurück zum Dashboard, zu API-Schlüsseln, und
erstellen wir einen neuen geheimen Schlüssel. Dies wird also
Archiv und Projekt heißen Sie können diese
API-Schlüssel auf Projekte beschränken. Ich werde es nicht auf ein bestimmtes Produkt beschränken, da
ich keine Projekte habe. Ich werde also ein
Standardprojekt verwenden und die Berechtigungen können sehr streng sein
und wählen, was Sie möchten, zum Beispiel nur
für Models, für Audio, für
Chat-Vervollständigungen, für Einbettungen Ich werde mich nicht komplizieren
. Ich werde nur sagen: Oh, ich werde den geheimen Schlüssel erstellen
und
das wird mein geheimer Schlüssel
sein Natürlich
werde ich ihn löschen, wenn ich mit
der
Erstellung dieses Kurses fertig bin. Wir jetzt werde ich es kopieren. Ich gehe zurück zum Vs-Code
und füge das einfach in die Punkt-EMV-Datei füge das einfach Das ist der API-Schlüssel, den ich verwenden werde
, bevor wir es vergessen Lass uns einen Comic machen Lass uns Kit eintippen und alles haben. Git commit und
wir sagen ein initialisiertes Projekt mit
PDM und fügt Dann können wir
diese Ketten weiterentwickeln. Okay. Wenn wir jetzt zu
Github gehen und es aktualisieren, werden
wir feststellen, dass die
DotNB-Datei nicht festgeschrieben ist Das NB-Beispiel ist festgeschrieben, aber das hat nichts Das ist also sicher. Andernfalls werden die Leute
Ihren API-Schlüssel sehen und
das wäre schlecht. Okay, das ist also alles
für diese Lektion. Ich hoffe es gefällt dir und wir sehen uns
in der nächsten Lektion.
4. LlamaIndex und RAG verstehen: Hallo und willkommen zurück.
Also, was ist der Lama-Index Zuallererst, was ist
das Problem mit LMS? Sie sind großartig, aber sie
wurden anhand großer Mengen
öffentlich verfügbarer Daten vorab geschult Wie erweitern wir LMS am besten
mit unseren eigenen privaten Daten? Hier kommt der
Lama-Index ins Spiel. Wir benötigen ein umfassendes
Toolkit, um diese
Datenerweiterung für LLMs
durchzuführen Deshalb bietet Lama Index
Datenkonnektoren, mit denen
Sie Ihre vorhandenen Datenquellen
und Datenformate wie APIs,
PDFs, Dogs und sogar SQL-Daten aufnehmen Sie Ihre vorhandenen Datenquellen
und Datenformate wie APIs,
PDFs, PDFs, Es bietet auch
Möglichkeiten,
Ihre Daten so zu strukturieren , dass sie problemlos mit LMS verwendet
werden können Wir werden sehen, dass
die gängigste Methode zur Strukturierung dieser Daten ein Vektorindex
ist Außerdem bietet er eine erweiterte
Abfrageschnittstelle für Ihre Daten Sie können jede
LM-Eingabeaufforderung einfügen, Kontext wiederherstellen und eine
wissensgestützte Ausgabe
erhalten Wir können nicht über einen Ama-Index sprechen,
ohne über RAC zu sprechen. Was ist Rag? Rag ist eine abrufbare
erweiterte Generation Dies ist ein Ansatz zur Verarbeitung natürlicher
Sprache, der die Stärken
zweier Hauptkomponenten
kombiniert. Informationsabruf,
bei dem
relevante Daten aus einer
externen
Wissensdatenbank, Datenbank oder einem
Dokumentenspeicher abgerufen werden, und Textgenerierung, bei der ein
Sprachmodell wie OpenAIS,
GPT Four Omni oder
was auch immer verwendet wird, um auf der Grundlage werden, und Textgenerierung, bei der ein
Sprachmodell wie OpenAIS, GPT Four Omni oder
was auch immer verwendet wird, der abgerufenen Informationen
menschenähnlichen Text zu generieren menschenähnlichen Text Wie funktioniert RAG? Zunächst stellt ein Benutzer eine Frage oder ein Anliegen. Dann rufen wir
relevante Dokumente aus einer externen
Quelle ab und
generieren dann eine Antwort mithilfe eines Sprachmodells, das
die Anfrage des Benutzers
und den Abrufkontext verwendet . Warum müssen wir also RAG verwenden? Weil wir
Zugriff auf aktuelle Informationen haben können, sodass KI-Systeme Wissen
integrieren können, das über ihre Trainingsdaten hinausgeht. Dies verbessert die Genauigkeit der
Antworten
, da die Antworten jetzt auf
verifizierten und abrufbaren Quellen
basieren und wir die Anpassungsfähigkeit an die einzelnen Bereiche gewährleisten können
. Wir können
das System leicht an
bestimmte Branchen oder Themen anpassen, bestimmte Branchen oder Themen indem wir es mit speziellen
Wissensphasen verknüpfen Das ist ein Rack in einem Bild. Der erste Schritt besteht darin, diese Dokumente abzurufen
und aufzunehmen, sie
einem Einbettungsmodell zu unterziehen
und diese Einbettungen in einer Vektordatenbank zu speichern Im zweiten Schritt stellt der
Benutzer eine Anfrage. Dann durchläuft diese
Benutzerabfrage dasselbe Einbettungsmodell, und dann suchen wir
in der Vektordatenbank nach Kontext oder Passagen oder Dokumenten , die
der vom
Benutzer gestellten Anfrage sehr ähnlich sind . Wenn wir diesen Kontext haben, wir die Abfrage,
den Kontext und eine haben
wir die Abfrage,
den Kontext und eine Eingabeaufforderung,
die wir entwerfen werden Wir werden all
diese Informationen an das LLM weitergeben, und das LLM wird eine Antwort
generieren, und diese Antwort
geht zurück an den Benutzer Das ist Rag auf den Punkt gebracht. Ich hoffe dir gefällt dieses Video. Wir sehen uns in der nächsten Lektion.
5. Was sind Agenten?: Hallo und willkommen zurück.
Lassen Sie uns jetzt über Agenten sprechen. Was ist ein Agent? Ein Agent ist eine automatisierte
Denk- und Entscheidungsmaschine. Es nimmt
Benutzereingaben auf und kann
interne Entscheidungen für
die Ausführung dieser Abfrage treffen, um das richtige Ergebnis
zurückzugeben Zu den wichtigsten Agentenkomponenten
können unter anderem Aufteilung
einer komplexen Frage
in kleinere Fragen, die
Auswahl eines zu verwendenden externen
Tools
sowie die Festlegung einer komplexen Frage
in kleinere Fragen, die Auswahl eines zu verwendenden externen
Tools von Parametern
für den Aufruf dieses Tools, die Planung einer Reihe von Aufgaben, Speichern zuvor
abgeschlossener Aufgaben, ein Speichermodul usw. gehören Agenten teilen sich also fünf
grundlegende Bausteine. Wahrnehmung, Argumentation,
Erinnerung, Planung und Handlung. Der erste
Baustein ist die Wahrnehmung. Wahrnehmung ist die Fähigkeit des
Agenten Informationen
über seine Umgebung
zu sammeln. Dieses Ziel beinhaltet die
Verarbeitung von Textabfragen, Analyse von Sensordaten, die
Interpretation von Bildern oder sogar das Lesen strukturierter
Datentabellen aus einer Datenbank. Je effektiver
ein Agent
wahrnehmen kann , desto umfangreicher ist der
Kontext, den er verstehen kann Mit einer stärkeren Wahrnehmung können sich die
Agenten besser
an Veränderungen anpassen und präzise
auf
sich entwickelnde Bedingungen reagieren Dann haben wir eine Argumentation. Argumentation bedeutet, dass
der Agent die Informationen,
die er wahrgenommen hat,
sinnvoll interpretiert Dies beinhaltet die
Interpretation von Kontexten, Aufzeigen verschiedener Optionen
und das Ziehen logischer Schlüsse Argumentation untermauert die Intelligenz eines
Agenten. Es stellt sicher, dass der Agent
nicht nur
blind reagiert , sondern auch Szenarien bewertet, um fundierte Entscheidungen
zu treffen zu Fortgeschrittenes Denken
beinhaltet oft die Nutzung großer Sprachmodelle oder anderer KI-Frameworks, um die Nuancen
einer bestimmten Situation zu verstehen Gedächtnis, Gedächtnis ist
die Art und Weise, wie
der Agent relevante
Informationen im Laufe der Zeit speichert Dies kann
kurzfristigen Kontext
wie die letzte Benutzeranfrage
und langfristiges Wissen
wie eine Datenbank mit
vergangenen Interaktionen oder
allgemeinem Branchenwissen umfassen wie die letzte Benutzeranfrage
und langfristiges Wissen wie eine Datenbank . Das Gedächtnis verleiht dem Agenten
ein Gefühl von Kontinuität. Anstatt
jede Interaktion
als isolierte Interaktion zu behandeln , kann
der Agent auf
früheren Erfahrungen aufbauen so seine Genauigkeit und sein
Kontextbewusstsein
verbessern. Dann haben wir Planung.
Bei der Planung entscheidet der Agent, welche Schritte er unternehmen muss
, um seine Ziele zu erreichen. Es könnte komplexe
Aufgaben in einfachere Schritte aufteilen, sie in
einer optimalen
Reihenfolge anordnen und
mögliche Hindernisse antizipieren Planung wird sichergestellt
, dass der Agent nicht nur auf eine
Anfrage nach der anderen reagiert,
sondern proaktiv einen Weg
zur Erreichung längerfristiger Ziele festlegt Durch die Planung wird sichergestellt
, dass der Agent nicht
nur auf eine
Anfrage nach der anderen reagiert,
sondern proaktiv einen Weg
zur Erreichung längerfristiger Ziele festlegt. Dies ist entscheidend für Aufgaben wie die
Optimierung der Lieferkette oder das
Projektmanagement oder jedes andere Szenario dem die jetzt
ergriffenen Maßnahmen Wir haben Maßnahmen ergriffen. Aktion ist die tatsächliche Ausführung
der Entscheidungen des Agenten. Zum Beispiel das Senden einer E-Mail, Anpassen von
Lagerbeständen, das Empfehlen
eines Produkts oder die Durchführung eines Vorgangs auf
Systemebene Ohne jegliche Handlung werden
alle Wahrnehmungs-, Argumentations-, Erinnerungs- und Planungsmöglichkeiten der Welt vergeudet Handeln schließt den Kreislauf
und ermöglicht es dem Agenten , spürbare Auswirkungen
auf seine Umgebung auszuüben, was zu realen Ergebnissen führt Wie arbeiten sie dann zusammen? Die Wahrnehmung passt
dem Agenten Daten an. Gedächtnis speichert und ruft nützliche Informationen aus der unmittelbaren
und fernen Vergangenheit ab. Reasoning verwendet diese Daten
und den Kontext, um einen Plan zu erstellen, und der Plan beschreibt die
Schritte, die zur Erreichung der Ziele des Agenten erforderlich sind, und
die Maßnahmen, die auf diese Schritte
angewendet werden, wodurch ein messbarer
Wert entsteht Es gibt Unmengen von Anwendungsfällen. Heutzutage kann alles ein
Agent sein. Wir haben
Software-Engineering-Agenten, KI-Telefonagenten,
Handelsvertreter und Forschungsagenten. Das
werden wir jetzt tun. KI-Stabschef, der den täglichen Betrieb
rationalisieren kann ,
das ist ziemlich verrückt Forschungsassistenten im Verkauf,
Makler, Mitarbeiter, Buchhalter, KI-Assistent für
Monat und Ende Es gibt viele Anwendungsfälle , die Agenten heutzutage haben können Wie werden KI-Agenten in der Praxis
funktionieren? Nun, Sie müssen den KI-Agenten
schulen. Sie müssen
Ihren Anwendungsfall, Ihre Daten
und Ihr Playbook bereitstellen, um die Fähigkeiten
der KI
an Ihre spezifischen Bedürfnisse anzupassen an Ihre spezifischen Bedürfnisse Geben Sie Daten wie
Abschriften, Anrufaufzeichnungen,
Rechnungen, Qualifikationskriterien und wichtige Ziele für eine
genaue Anpassung Anschließend müssen Sie
die Workflows und
die Integrationen konfigurieren die Workflows und
die Integrationen Sie müssen den KI-Agenten
auf Ihre vorhandenen
Tools und Prozesse abstimmen Ihre vorhandenen
Tools und Prozesse beispielsweise SIMDS-Integrationen
mit CRMs, Kalendern
und Geschäftssystemen
einrichten und
gleichzeitig Aktionen, Benachrichtigungen und Eskalationsprotokolle definieren , die den Anforderungen Ihres
Teams entsprechen Anschließend müssen Sie die Abläufe bereitstellen
und verwalten. Sie müssen den KI-Agenten starten,
um den Betrieb
selbstständig abzuwickeln, seine Leistung
anhand von Echtzeitmetriken zu
verfolgen, Ergebnisse zu
bewerten und
Prozesse zu verfeinern, um
optimale Ergebnisse zu erzielen
6. Vektor-Einbettungen: Lassen Sie uns über
Vektor-Einbettungen sprechen. Vektoreinbettungen sind numerische
Repräsentationen von Daten. Daten können Text, Bilder oder Audio in einem
hochdimensionalen Das heißt, sie sind Vektoren
mit einer festen Dimension. Jedes Datenelement wird in einen Vektor
umgewandelt und erfasst seine Bedeutung, seinen
Kontext oder sein Merkmal. So funktioniert es: Ähnliche Elemente werden als Vektoren
dargestellt, die
näher beieinander liegen. So ermöglichen Sie einen
einfachen Vergleich. Zum Beispiel werden die Wörter König
und Königin Vektoren haben , die nahe beieinander liegen, was ihre
semantische Ähnlichkeit widerspiegelt Wie misst man
diese Ähnlichkeit? Nun, es gibt verschiedene
Metriken, die Sie verwenden können, wie das Punktprodukt oder
die Kosinusähnlichkeit Was sind Vektorindizes? Es handelt sich um Datenstrukturen
, die
diese Vektoreinbettungen für
effizientes Suchen und Abrufen organisieren diese Vektoreinbettungen für effizientes Suchen Sie ermöglichen es KI-Systemen, die
relevantesten Datenpunkte zu
finden auf der Grundlage von
Ähnlichkeitsmaßen
wie Kosinusähnlichkeit
oder Punktprodukt,
diesen Metriken, über die ich
gesprochen habe,
schnell wie Kosinusähnlichkeit
oder Punktprodukt,
diesen Metriken, über die ich
gesprochen habe, die Sie erzeugen riesige
Datenmengen und
ermöglichen den skalierbaren Abruf
relevanter Informationen in
Echtzeit . Um diese
Vektorumbettungen zu erzeugen, benötigen wir ein Einbettungsmodell . In diesem Kurs werden
wir Text Embedding Three Large verwenden , ein fortgeschrittenes
Einbettungsmodell, das von Open AI entwickelt wurde. Es wurde entwickelt, um Text in
hochdimensionale
Vektordarstellungen
umzuwandeln und
dabei die
semantische Bedeutung
der Eingabe zu erfassen, dabei die
semantische Bedeutung
der Eingabe zu erfassen wie wir Was sind die Hauptmerkmale dieses
Einbettungsmodells? Es kann
qualitativ hochwertige Repräsentationen erzeugen. Es erzeugt Einbettungen, die den Kontext, die
Beziehungen und die
Bedeutung im Text
effektiv erfassen Beziehungen und die
Bedeutung im Text Es ist vielseitig einsetzbar und eignet sich für eine Vielzahl von Aufgaben wie
Informationsabruf,
Ähnlichkeitssuche
und Clustering sowie für die
Dimensionalität, durch die dichte,
hochdimensionale Vektoren
für nachgelagerte hochdimensionale Vektoren Ich hoffe, dir gefällt diese
Lektion in der nächsten.
7. Ein Tool zum Abrufen von Papiere aus arXiv erstellen: Fangen wir also an zu programmieren. Zuallererst werden
wir einen Werkzeugstapel erstellen. Tippen Sie im Terminal auf den Werkzeugpunkt PY. In diesem Modul werden
wir die Archivbibliothek verwenden. Wenn wir also zur Dokumentation
der Archivbibliothek gehen, werden
Sie feststellen, dass Archive
nur ein Python-Wrapper
für die Archive-API ist nur ein Python-Wrapper
für die Archive-API Archive hat also bereits eine
API und diese Bibliothek ist nur ein Wrapper, um diese
API auf einfachere Weise zu verwenden Also, wie
installiert man es mit PIP? Wir haben es mit PDM gemacht. Wir importieren Archive.
Also lass uns das machen. Archiv importieren. Und dann können wir Ergebnisse
abrufen, indem wir zuerst den
Standard-API-Client Lassen Sie uns diesen Client erstellen. Dann können
wir zum Beispiel nach
den zehn neuesten Artikeln suchen , die dem Schlüsselwort Quantum
entsprechen. Dann suchen wir einfach danach und wir können diese Ergebnisse wiederholen Results ist ein Generator, sodass wir nacheinander über
seine Elemente iterieren Und es gibt auch eine Dokumentation
zur erweiterten
Abfragesyntax , die uns sagt, dass wir das
Archive API-Benutzerhandbuch lesen sollen, das dieser Link hier ist, und die Abfrage kann
ungefähr so aussehen AU bedeutet Autor.
Ob ich mich nicht irre, und TI weiß ich nicht. Gehen wir zu diesem Link
und sehen uns diese Präfixe an. AU bedeutet, TI bedeutet Titel, ABS, Zusammenfassung,
Kommentar usw. Wenn wir nach all diesen Dingen
gleichzeitig
suchen wollen , sagen
wir einfach alles also werden wir das in unserer Funktion
tun Wir werden einfach ein Thema verwenden
und es in eine Spalte aufteilen. Das werden wir
tun. Lass uns anfangen zu programmieren. Wir werden
diese Funktion namens
fetch archive papers definieren , die zwei Parameter
benötigt Der erste ist der
Titel oder die Abfrage,
unabhängig davon, ob der zweite Parameter die Anzahl der Dokumente sein
wird Wie viele Dokumente
wir holen wollen. Die Suchabfrage wird also ausschließlich Spalten und dem Titel bestehen Das wird
unsere Suchabfrage sein. Dann werden wir das machen. Ich weiß nicht, warum das
nicht von selbst einrückend ist. Eine Sache, die wir
tun müssen, ist den
Python-Interpreter auszuwählen Ich gehe in Mac, ist Command
Shift Pin in Windows, ich glaube, es ist Control Shift Pin und wir werden hier auf Interpreter
auswählen tippen und wir werden diese Punkt-V&V-Datei auswählen Jetzt hat er mehr Funktionen, den Code-Editor, weil er weiß, dass wir diese
virtuelle Umgebung verwenden Bei dieser Abfrage wird
es sich nicht
um eine Quantenabfrage handeln, sondern um eine Suchabfrage. Das maximale Ergebnis wird
nicht zehn sein, es wird die
Anzahl der Dokumente sein . Dieser Parameter wird vom Agenten übergeben oder berechnet. Sie werden
das in
ein paar Lektionen in Aktion erleben und dann nach dem Abgabedatum
sortieren. Das ist okay. Jetzt werden wir
eine leere Reihe von
Papieren initialisieren und wir werden
die Ergebnisse abrufen Ergebnis-Client, der
Ergebnisse sucht. Jetzt haben wir einen Generator
und wir
werden jedes
der Ergebnisse wiederholen Um Ergebnisse zu erzielen, wird
unsere Papierinformation
ein Wörterbuch mit einem Titel sein Ergebnis dieses Titels Schauen Sie sich diesen Ergebnistitel an und
hier finden Sie mehr Informationen. Woher wissen wir, was
das Ergebnis hat? Welche anderen Eigenschaften hat es? Nun, wenn wir mit der Maus über das Ergebnis fahren, können
wir sehen, dass es vom Typ Ergebnis ist . Was
ist der Typ Ergebnis Nun, wir können hier bei
gedrückter Strg- oder Befehlstaste auf
das Archivmodul klicken hier bei
gedrückter Strg- oder Befehlstaste auf
das Archivmodul mit Befehl
F oder Strg F hier unter Windows, wir können nach Dokument suchen, tut mir leid, nicht nach
Dokument für Ergebnis. Wir müssen uns hier also die
Hände schmutzig machen und Sie können sehen, dass dies die
Definition von Ergebnis ist. Es hat eine Eintrags-ID,
das ist die URL, die Aktualisierung, wann das Ergebnis zuletzt aktualisiert
wurde, die Veröffentlichung, wann das Ergebnis
ursprünglich veröffentlicht wurde, den Titel, die Autoren, was eine Liste
von Autoren ist, die Zusammenfassung, die einer Zeichenfolge, einem Kommentar,
dem Kommentar des
Autors zum Präsentieren,
Journal Rev, dem Spielzeug usw. besteht Autors zum Präsentieren, Journal Rev, dem Spielzeug usw. Mal sehen, was dieser Autor ist. Autor ist eine andere
Typdefinition , die nur den
Namen als Attribut hat. Mit all diesen Informationen werden
wir
mehr Attribute erhalten. Das zweite Attribut
wird
Zusammenfassung sein , lösen Sie diese Zusammenfassung auf. Wir werden auch
das veröffentlichte Ergebnis erhalten , das veröffentlicht wurde. Wir werden
das Journal Ref bekommen, wir haben das Journal Ref verkauft, wir werden das Di bekommen, wir lösen das Di A, offensichtlich haben
Sie die automatische Vervollständigung
vom Code-Editor. Wir werden
die Hauptkategorie haben , die
Hauptkategorie. Wir werden
die Kategorien haben, wir lösen diese Kategorien und auch GitHub Copilot
hilft mir sehr Wir lösen diese PDF-URL und das Archivarchiv, Ergebnis Archiv, URL
und nicht das Es sind die Eintrags-ID
und die Autoren, was ein Array sein wird, ein Autoren-Punktname für den Autor
in den resultierenden Autoren. Denken Sie daran, dass dies
eine Liste von Autoren war. Das werden
unsere Papierinformationen sein, und wir werden
diese Informationen an
die Artikelliste anhängen diese Informationen an
die Artikelliste Stift, Papier, Tinte. Schließlich werden wir alle Papiere
zurückgeben. Dies ist unsere einfache Funktion
zum Abrufen von Archivdokumenten, und wie Sie sehen werden, wird
dies
auch ein Tool für den Agenten sein auch ein Tool für den Agenten Das werden
wir in dieser Lektion tun. Ich hoffe es gefällt dir. Wir
sehen uns in der nächsten Lektion.
8. Ein Tool zum Herunterladen von Papiere erstellen: Hallo und willkommen zurück. Jetzt werden wir unser zweites Tool programmieren. Wie Sie sehen, handelt es sich
nur um Python-Funktionen, sodass sie sehr einfach zu codieren sind. Bei dieser zweiten Funktion handelt es sich
um ein Download-PDF-Tool, das eine PDF-URL,
die aus einer Zeichenfolge besteht,
und einen Ausgabedateinamen
, der sowohl eine Zeichenfolge
als auch eine Zeichenfolge sein wird,
empfängt die aus einer Zeichenfolge besteht,
und einen Ausgabedateinamen
, der sowohl eine . Dafür werden wir die Anforderungsbibliothek
verwenden. Um eine Anfrage zum
Herunterladen der PDF-Datei zu stellen, werden wir
auch die Betriebssystembibliothek verwenden , um ein Verzeichnis zu erstellen,
falls es nicht
existiert , weil wir unser Projekt organisieren wollen
. Also werden wir
zunächst versuchen, ein Verzeichnis namens Papers zu erstellen. Und wenn es schon existiert, dann erstelle es nicht. Wirf keinen Fehler, lebe damit. Okay? Und hier werden
wir den Accept-Pass platzieren. Wir werden
die Fehlerschicht spezifizieren. Jetzt deklarieren wir
den vollständigen Ausgabepfad und
sagen OS, Pfad, Verknüpfung, Dokumente
und Ausgabeablage. Das wird
der vollständige Ausgabepfad sein, also der Ordner Papers, der
mit der Ausgabedatei verknüpft Dann erhalten wir mithilfe
der Anforderungsbibliothek
eine Antwort stellen eine
GET-Anfrage an die Und wenn es einen Fehler gibt, werden
wir erhöhen. Erhöhen Sie den Status. Diese Methode löst also nur einen H
TTP-Fehler aus, falls einer aufgetreten ist. In der Ausnahme
akzeptieren
wir Anfragen mit Punktausnahme,
Punktanforderungsausnahme als E. Wir geben
die Zeichenketten und den Fehler zurück und
drucken den Fehler Wenn nichts passiert, öffnen
wir den vollständigen Ausgabepfad mit
den richtigen Berechtigungen,
WB, und wir werden benennen
und wir werden die Datei mit dem Punktinhalt der
Antwort speichern Und wir müssen etwas zurückgeben. Wir müssen die Zeichenfolge zurückgeben, die besagt PDF erfolgreich heruntergeladen und gespeichert wurde, und
wir werden hier den
vollständigen Ausgabepfad angeben. Okay? Wie Sie
sehen können, ist dies eine sehr, sehr einfache Python-Funktion , die einfach etwas herunterlädt. Es kann ein Papier herunterladen, es kann
angrenzende Dokumente herunterladen, was auch immer. In diesem Fall laden wir
das Papier
einfach von der PDF-URL herunter . Das war's für dieses Video. Sehr, sehr einfach. Ich hoffe es gefällt
dir und wir sehen uns
im nächsten.
9. Die Einbettungs- und LLM-Modelle definieren: Okay, lass uns weiter programmieren. Wir werden im Terminal
eine neue Datei namens
Konstanten erstellen .
Tippen Sie auf Constance In dieser Datei werden wir das Embed-Modell und
das LM-Modell
deklarieren , damit
wir es beim Erstellen des Indexes und
beim Erstellen des Agenten wiederverwenden können Zunächst rufen wir die Load Dot M-Funktion auf. Lassen Sie uns zunächst aus
dem Load DotM-Ladepunkt importieren. Dadurch wird die gesamte Umgebungsvariable
aus
der ENB-Datei geladen Umgebungsvariable
aus
der ENB-Datei Jetzt können wir mit dem OS-Modul auf den OpenAI
ApiKey zugreifen. Wir werden es importieren und mir von
Github Copilot helfen lassen ,
dieses OS Dot OpenAI APK zu schreiben Es passt gut dazu. Jetzt sagen wir, dass das
Einbettungsmodell eine offene
KI-Einbettung sein wird und wir werden das aus
Plama Index Dot
Embeddings OpenAI importieren , AI von dort aus
öffnen, AI von dort aus
öffnen, und ich vermisse Öffnen Sie die KI-Einbettung und öffnen Sie auch den Modelltyp für die KI-Einbettung. Wir haben noch etwas anderes.
Einbettung, nein, das nein. Das brauchen wir nicht. Wir brauchen
nur diese beiden. Wir werden eine Instanz
der offenen KI-Einbettung
erstellen der offenen KI-Einbettung Wir werden den API-Schlüssel übergeben
, der der offene AI-APN-Schlüssel sein
wird, und das Modell wird vom Modelltyp Open AI Embedding
sein Schau dir das an, wir haben
Ava, Baba Cree, DaVinci. Das sind sehr alte Modelle. Die neueren sind Embed Ada 002 Embed Three Small
und Bed Three Large. Wir werden
Embed Three Large verwenden. Und für das LM-Modell werde
ich aus dem Lama-Indexpunkt OpenAI
importieren, Open AI importieren Wir werden
eine Instanz von Open AI erstellen. Auch hier müssen wir den API-Schlüssel
übergeben
, der
unsere KI, den I-API-Schlüssel sein wird, und das Modell, das in diesem
Fall eine Zeichenfolge sein wird, und es wird GPT für Mini
sein Okay,
das sind also die beiden Modelle von Open AI
, die wir verwenden werden Ich möchte, dass du etwas merkst. Als wir Dinge aus
Embeddings und LLMs importierten, hatten
wir nur die Option Open AI Das liegt daran, dass
Lama Index standardmäßig nur
dieses Plugin hat, nur das
Open-AI-Zeug Open-AI-Zeug Aber wenn du zum Beispiel
Clot oder Mistral AI oder was auch immer
verwenden möchtest , dann hat Lama all
diese Anschlüsse, über die wir auf dieser Folie
gesprochen haben, aber du musst sie separat installieren Ich hoffe dir gefällt dieses Video.
Wir sehen uns im nächsten.
10. Den Index erstellen und lokal speichern: Hallo und willkommen zurück. Jetzt
sind wir bereit, den Index zu erstellen. Um den Index zu erstellen, erstellen
wir
ein Jupiter-Notizbuch namens Build Index,
den Terminal, Touch
Build Index IPYNB Großartig. Zuallererst
werden wir eine Zelle hinzufügen. Und wenn Sie
das VENV nicht haben, können Sie hier klicken. Es wird dir wahrscheinlich sagen, dass du hier den Kernel
auswählst und
du wirst
bei VENB wählen , was die
virtuelle Umgebung ist Entschuldigung für dieses Projekt Vergewissern Sie sich, dass Punkt
VENV ausgewählt ist. Also werden
wir zunächst unseren Index erstellen. Das bedeutet unsere Wissensbasis. Das werden Beiträge
zu einem bestimmten Thema sein. Dass wir sie bereits in
unserer Datenbank oder unserem Repository haben. Also werden
wir zunächst aus den Tools die Archivpapiere importieren und wir werden einige Dokumente
abrufen Das Thema wird
oder der Titel sein, Sprachmodelle, das
heißt Sprachmodelle Wir wollen etwas über
Sprachmodelle lernen, und die Anzahl der Beiträge
wird bei zehn liegen. Okay. Sie können
100 Artikel herunterladen, wenn Sie möchten. Die Größe oder Anzahl der
Papiere spielt keine Rolle. Denken Sie daran, dass Indizes für die
Verarbeitung von Abfragen in
großen Datensätzen erstellt wurden Verarbeitung von Abfragen in
großen Datensätzen Okay, also wir werden
die Zelle ausführen und Titel der Artikel
drucken, die
wir abrufen Also Papier, Titel oder
Papier in Papieren. Das sind also die Artikel, die wir holen und die sich
auf Sprachmodelle beziehen Okay, jetzt, wo wir das haben, werden
wir eine Funktion namens
Dokumente aus Papieren erstellen erstellen erstellen Und was genau ist ein Dokument? Nun, das ist nur
eine generische Schnittstelle für ein Datendokument. Dieses Dokument stellt also nur
eine Verbindung zu Datenquellen her. Wir werden einen Text übergeben , der die Informationen zum Titel des
Artikels, zu den Autoren der
Zusammenfassung
des veröffentlichten Artikels, zur Zeitschriftenreferenz,
zum
DOI, zur Hauptkategorie, zu
den Kategorien, zur PDF-URL
und zur Archiv-URL
enthält Autoren der
Zusammenfassung
des veröffentlichten Artikels, zur Zeitschriftenreferenz, zum
DOI, zur Hauptkategorie, zu
den Kategorien, zur PDF-URL und zur Archiv-URL Wir werden all
diese Informationen in einer einzigen Zeichenfolge zusammenfassen und Dokumentschnittstelle
des Lama-Index übergeben einzelne Zeichenfolge
dann an
die Dokumentschnittstelle
des Lama-Index Zunächst
importieren
wir aus dem
Lama-Index Dot Core das Dokument, und dann werden wir Dokumente aus Papieren
erstellen, und wir werden
die Liste der Dokumente übergeben Zuerst werden wir eine leere Liste
initialisieren und dann werden wir diese Dokumente
durchgehen Der Inhalt wird also
eine einzige Zeichenfolge mit den
Informationen des Titels sein , und ich werde
Github Copilot die
langweilige Arbeit hier machen lassen Github Copilot die
langweilige Arbeit hier machen Die Autoren werden
eine Liste von Autoren sein, die durch ein
Komma getrennt sind Denken Sie daran, Autoren sind eine Liste. Erinnerst du dich daran? Das ist eine Liste. Wir werden auch
die Zusammenfassung veröffentlichen , wir werden
die veröffentlichten Informationen veröffentlichen. Wir werden die Zeitschriftenreferenz angeben, die
Journalreferenz . Wir werden die
Di zur Hauptkategorie machen. Die Kategorien sind auch eine Liste. Obwohl wir diese Liste hier nicht
bearbeitet
haben, haben wir sie einfach hinzugefügt
und uns das hier angesehen. Alle Ergebniskategorien, das ist eine Liste von Zeichenketten. Wir können all diese
Zeichenketten mit diesem Befehl verbinden. Wir werden die
PDF-URL und auch die Archiv-URL haben. Was diesmal fehlschlägt
Githukpilot. Oh nein, es ist nicht gescheitert. Es ist die Archiv-URL. Ja, Archiv-URL. Okay, großartig. Jetzt haben
wir also unsere Saite. Was wir jetzt tun werden, ist den Inhalt
an ein Dokument
anzuhängen Und das Dokument ist verschwunden, der Import ist verschwunden,
weil ich
eine Einstellung habe , die
unbenutzte Dokumente löscht und speichert Okay. Bringen wir es also zurück und sagen wir, dass der Text inhaltlich sein
wird. Und natürlich müssen wir diese Liste
zurückgeben, richtig. Und jetzt rufen wir
diese Funktion auf. Sagen wir Dokumente,
Fortsetzung, um
Dokumente aus Papieren, Papieren zu erstellen Dokumente aus Papieren, Papieren Okay. Und sehen wir uns diese Liste an. Diese Liste ist also eine Liste
dieses Dokumentobjekts, und jedes
Dokumentobjekt hat eine ID. Es hat noch keine
Einbettung. Es hat leere Metadaten. Dies kann in vielen
Anwendungen mit Metadaten nützlich sein, aber wir legen keine
Metadaten für dieses Dokument fest. Wenn Sie möchten,
können Sie hier Metadaten und jedes Python-Wörterbuch hier
ablegen. Eine Information, die Sie wollen.
Lass mich das wieder schließen. Es hat auch mehr Attribute, aber das, was uns interessiert,
ist die Textressource, Medienressource, der Text, und das ist die Zeichenfolge, die wir erstellen. Sie können sehen, dass es sich um
eine sehr lange Zeichenfolge handeln kann. Okay. Jetzt, wo wir das haben, werden
wir unseren Index erstellen. Also, wie machen wir
das? Lassen Sie uns zuerst aus einem Index Dot Core
importieren. Lassen Sie uns Einstellungen importieren und
Vektoren importieren, um den Index zu
speichern. Lassen Sie uns auch aus Konstanten das Einbettungsmodell
importieren, denn denken Sie daran, dass wir den Text
durch ein Einbettungsmodell übergeben müssen Okay. Zuallererst werden
wir sagen, dass die Blockgröße
der Einstellungen 1024 Einstellungen der
Blocküberlappung gleich 50 sein wird 1024 Einstellungen der
Blocküberlappung gleich 50 Ich werde gleich erklären, was das
ist. Lassen Sie mich zuerst den Index erstellen. Ich werde sagen, Vector
Store Index aus Dokumenten. Wir werden die Liste der
Dokumente übergeben und das Einbettungsmodell
wird das Einbettungsmodell sein, das
wir in dieser
Konstante instanziiert Denken Sie daran, dass es sich um einen
großen Text handelt. Okay, was sind also diese
Chunk-Größe und Chunk-Überlappung? Okay, also die Chunk-Größe setzt die Chunk-Größe-Eigenschaft Das bedeutet, dass die Daten, der Text hier,
in Blöcken von 1024 Einheiten verarbeitet werden In diesem Fall
bedeuten Einheiten Zeichen. Wenn dieser
Text zum Beispiel 2080, tut mir leid,
2048 Zeichen hat , dann wird er in zwei Abschnitte
aufgeteilt,
aber nicht ganz, weil wir
diese andere Einstellung
haben, aber nicht ganz, weil wir
diese andere Einstellung
haben diese andere Einstellung Die Überlappung bedeutet
, dass es
eine Überlappung von 50 Einheiten zwischen aufeinanderfolgenden Abschnitten geben wird eine Überlappung von 50 Dies kann nützlich sein, um bei
der Datenverarbeitung die Kontinuität zwischen
Blöcken Das bedeutet, dass
ein Chunk einen
gewissen Kontext des aufeinanderfolgenden
Chunks haben kann gewissen Kontext des aufeinanderfolgenden
Chunks Diese beiden Einstellungen
sind also sehr wichtig. Sie werden
Hyperparameter genannt, weil sie 128 sein können, wenn Sie mehr Kontext behalten
möchten, aber Sie werden mehr
Chunks haben Das sind also gute Standardwerte
für diese beiden Eigenschaften. Jetzt, wo wir das haben, haben
wir bereits unseren Index Großartig. Hinter den Kulissen wird also tatsächlich
die OpenAI-API aufgerufen ,
um
all diese in Vektoren umzuwandeln Es verwendet das große
Einbettungsmodell „Text Embedding Three Konvertiert alles in Vektoren. Jetzt können wir
diesen Index speichern, indem wir
den Speicherkontext verwenden
, diese persistente Methode, und wir werden ihn
in einem Ordner namens Index speichern Richtig. Jetzt haben wir
diesen Indexordner mit all diesen JSON-Dateien, und das ist etwas, das wir wahrscheinlich
im Git Ignore haben wollen. Fügen wir also den Index hier in Getting hinzu
, weil er dynamisch ist. Wenn Sie nach
etwas anderem suchen, wird sich
der Index offensichtlich
ändern. Das ist es für den Aufbau eines Index. Sie können sehen, dass das mit dem
Lama-Index so einfach ist. Dieser Index
ist offensichtlich ein lokaler Index. Wir können einen Cloud-basierten Index wie Pine Cone, einen
Service wie Pinecone oder wir können anspruchsvollere
Tools wie Chroma TB verwenden, das ebenfalls eine lokale
Vektordatenbank ist, aber das müssen wir bereitstellen Es gibt andere Dienste,
Cloud-Dienste wie Vate,
um diese Indizes in der Cloud zu speichern Sie verwenden AWS hinter
den Kulissen oder GCP. Aber vorerst
werden wir
den Index lokal
in diesem Ordner speichern den Index lokal
in diesem Ordner Ich hoffe, dir gefällt dieses Video und wir sehen uns in der nächsten Lektion.
11. Das RAG-Abfrage-Engine-Tool erstellen: Hallo und willkommen zurück. Jetzt fangen
wir an, den Agenten selbst zu erstellen. Lassen Sie uns eine weitere
Datei namens Agent IPYNV erstellen. Diesmal müssen Sie hier den
Kernel auswählen. Denken Sie daran, VENV auszuwählen. Großartig Zuallererst
laden wir unseren Index aus dem Speicher. Das ist das Erste. Alles, was
in diesen JSON-Dateien gespeichert ist, werden
wir laden. Lama Index hat eine Methode namens Index aus dem Speicher
laden. Aus dem Lama-Index Dot Core importieren
wir also den Starch-Kontext
und
den Lastindex aus dem Wir müssen
das Embed-Modell importieren, sodass dieser Stärke-Kontext standardmäßig der
Speicherkontext
ist standardmäßig der
Speicherkontext und das persistente Verzeichnis der Index
ist. Jetzt können wir
den Index mit diesem Ladeindex aus dem Speicher laden Wir übergeben den
Speicherkontext und wir übergeben das Einbettungsmodell. Großartig. Jetzt haben wir unseren Index,
unseren lokalen Index geladen. Was wir jetzt tun werden, ist eine Abfrage-Engine dafür
zu erstellen. Wir werden sehen, wie
dieses Abfrage-Engine-Tool hinter den Kulissen
funktioniert. Aus den Lama Indexco Dot Tools importieren
wir
die Abfrage-Engine Wir werden auch das LLM-Modell aus
den Konstanten importieren den Konstanten Die Abfrage-Engine
wird also der Index sein,
aber dieser Index hat eine Methode, die als Abfrage-Engine
bezeichnet wird Wir müssen das LLM-Modell übergeben, das in unserem Fall GPT Four Omni sein wird
,
und wir können einen weiteren
Parameter übergeben, der Ähnlichkeit genannt wird Top K, Ähnlichkeit, Top K, und wir sagen fünf Wir werden
maximal fünf Vektoren abrufen ,
wenn wir eine Anfrage einreichen, wir werden maximal
fünf ähnliche Vektoren finden. Jetzt definieren wir
das RAC-Tool als
Abfrage-Engine-Tool. Und wieder verschwindet der
Import, also müssen wir ihn erneut machen. Kerntools,
Abfrage-Engine importieren in. Von den Standardeinstellungen, und die Standardwerte werden
die Abfrage-Engine sein Wir müssen auch
den Namen dieses Tools angeben. Der Name wird also Forschungspapier,
Query Engine Tool lauten. Und es ist auch eine gute Praxis
, es zu beschreiben. Und diese Beschreibung
hilft
dem Agenten zu wissen, worum es bei
diesem Tool geht. Ich werde also sagen, dass es
sich um eine Rag-Engine mit aktuellen Forschungsarbeiten handelt. Das ist also das Tool, das der Agent verwenden
wird,
um Informationen in unserer bestehenden Datenbank oder in
unserem bestehenden Repository abzurufen unserer bestehenden Datenbank oder in
unserem bestehenden Repository Jetzt möchte ich Ihnen
zeigen, dass ich
Ihnen die Eingabeaufforderungen zeigen möchte , die diese Abfrage-Engine
hinter den Kulissen verwendet Standardmäßig verwendet Lama Index eine verfeinerte Eingabeaufforderung, bevor
eine Antwort
zurückgegeben wird Und wir werden gleich
mehr darüber erfahren. Lassen Sie mich das Display zunächst
aus IPython importieren. Ich werde
Markdown und Display importieren. Dies sind nur
Hilfsfunktionen, um die Dinge hier auf dem Bildschirm
ein bisschen besser zu
sehen Ich werde dieses Wörterbuch für die
Eingabeaufforderung definieren, und ich werde das
Eingabeaufforderungswörterbuch
für die Tasteneingabe übergeben und
diese Elemente Ich werde hier
etwas Markdown anzeigen. Der Markdown wird
die Eingabeaufforderungstaste sein. Und all das wird
in einem Moment Sinn machen. Hab einfach Geduld mit mir. Und fordern Sie das auf, eine Vorlage abzurufen. Nachdem wir diese Funktion
definiert haben, werden
wir sagen, dass das Prompts
Dictionary die Abfrage-Engine
sein wird ,
die Eingabeaufforderungen empfängt, und wir werden die Eingabeaufforderungen
anzeigen Okay. Abfrage-Engine. Okay, wir haben diese Zelle nicht
ausgeführt. Okay. Hier ist es. Diese Abfrage-Engine
, die wir
hier definiert haben, hat also zwei Eingabeaufforderungen. Die erste ist diese
Antwortsynthesizer-Text-QA-Vorlage, und die zweite
ist diese
Antwortsynthesizer-Refine-Vorlage Antwortsynthesizer-Refine-Vorlage Wenn wir also die
relevanten Informationen abrufen, ein Informationsblock verwendet
, der wird
ein Informationsblock verwendet
, der den
relevantesten Teil rechts verwendet Es wird die
Frage oder eine andere Anfrage beantworten, die der Benutzer gepostet hat, indem er diesen Block
und diese Vorlage verwendet Die Kontextinformationen finden Sie unten. Und
beantworten Sie die Anfrage angesichts der
Kontextinformationen und nicht des Vorwissens. Die Anfrage ist das, was wir
als Benutzer gestellt haben, und die Antwort
ist die LLM-Antwort Sobald es eine Antwort hat, wird
es
über die anderen Blöcke, die anderen relevanten
Informationen,
iterieren anderen relevanten Denn denken Sie daran, dass wir fünf davon
haben werden, maximal fünf,
bei den anderen vier wird es hier diese
Vorlage verwenden Die ursprüngliche Abfrage
lautet wie folgt. Wir haben
eine bestehende Antwort bereitgestellt daher ist dies die Antwort
aus dieser Aufforderung hier.
Wir haben die
Möglichkeit, die bestehende Antwort nur bei
Bedarf mit einigen
weiteren Kontexten weiter unten zu verfeinern die bestehende Antwort nur . Dieser Kontext wird
ein weiterer Teil sein, eine weitere relevante
Information Sie angesichts des neuen Kontextes die ursprüngliche Antwort, Verfeinern Sie angesichts des neuen Kontextes die ursprüngliche Antwort,
um die Anfrage besser beantworten Wenn der Kontext nicht nützlich ist, geben Sie die ursprüngliche Antwort zurück. Dies wird im
Lama-Index als
Antwortmodus bezeichnet und wir haben
diese Dokumentation hier. Der Antwortmodus ist
standardmäßig verfeinert. Die Antwort wird
erstellt und verfeinert, indem
nacheinander
jeder Textblock zum Abrufen durchgegangen wird . Dadurch wird
ein separater LLM-Aufruf für den
Knoten oder den
Abruf-Chunk ein separater LLM-Aufruf für den
Knoten Die Details, der erste
Abschnitt, wird in
einer Abfrage verwendet, bei der der Text als Vorlage verwendet Wenn Sie diese Vorlage hier
verwenden und den relevantesten Abschnitt verwenden, verwenden und den relevantesten Abschnitt verwenden wird das LLM eine Antwort
abrufen Dann verwenden die Antwort
und der nächste Abschnitt
sowie die ursprüngliche
Frage eine Abfrage
mit der Eingabeaufforderung für die verfeinerte
Vorlage usw. bis alle Blöcke analysiert wurden Bei den aufeinanderfolgenden Blöcken hier diese
Vorlage verwendet und
es wird eine verfeinerte Antwort geben wird hier diese
Vorlage verwendet und
es wird eine verfeinerte Antwort geben
. Wenn ein Block aufgrund der Größe des Abschlussballs
zu groß ist, um in das Fenster zu
passen, Größe des Abschlussballs
zu groß ist, um in das Fenster zu
passen wird
er mithilfe eines
Token-Textsplitters aufgeteilt Wenn
Textüberschneidungen zwischen Blöcken zulässig sind, werden die neuen
zusätzlichen Blöcke als Teile der ursprünglichen
Chunks-Sammlung betrachtet Dies ist nur der Fall, wenn der Chunk zu groß ist. Es gibt einen anderen
Antwortmodus namens Compact. Compact,
ähnlich wie Refine,
aber kompakt verketten
die Chunks vorher,
was zu weniger aber kompakt verketten
die Chunks vorher,
was zu LLM-Aufrufen führt Anstatt also
die anderen vier
Chunks separat durchzugehen ,
werden all diese anderen vier Chunks zusammengeführt und diese Eingabeaufforderung ausgeführt,
wobei diese Inhalte zusammengeführt werden. Es ist also sehr
wichtig, dass Sie verstehen, was hinter den Kulissen passiert Ein Agent hat die Fähigkeit, sich selbst zu
korrigieren, indem er diese
kreative, raffinierte Technik anwendet. Wir werden
diesen Ansatz beibehalten und die Lektion hier
beenden. Ich hoffe, es gefällt dir und wir sehen uns
in der nächsten Lektion.
12. Aufbau und Interaktion mit dem Agenten: Hallo und willkommen zurück.
Jetzt werden wir die beiden anderen Tools
definieren , die die Agentur verwenden wird. Lassen Sie uns aus den Tools importieren, das PDF herunterladen und die Archivdokumente
abrufen Um diese Tools zu definieren, importieren
wir aus
Lama-Indexcord-Tools Wir werden das
Funktionstool importieren. Und wir werden das
Download-PDF-Tool definieren, das eine
Instanz dieses Funktionstools sein wird, und wir müssen
die Funktion selbst übergeben, nämlich PDF herunterladen. Wir müssen ihm wieder einen Namen
geben. Also werde ich dieses Tool zum
Herunterladen von PDF-Dateien nennen, und wir haben auch, oh, tut mir leid,
ein Funktionstool aus den Standardeinstellungen Und wir müssen es
auch beschreiben. Es ist eine bewährte Methode
, es zu beschreiben. Also werde ich sagen, dass
dies eine Python-Funktion ist. Das lädt die PDF-Datei per Link herunter. Das ist unser
PDF-Download-Tool und wir werden auch ein anderes Tool
namens FEG Archive definieren, das dasselbe
sein wird Wir übergeben die Funktion PE Archive
papers, geben ihr einen Namen und
holen sie aus dem Archiv ab Und wir werden
Ihnen die Beschreibung geben, in der steht laden Sie die neuesten Artikel zu diesem Thema herunter, die wir
hier ablegen können . Wir können diesen Platzhalter
aus dem Archiv dort ablegen. C. Und wir müssen das schließen. Okay, jetzt, wo wir diese beiden Tools
definiert haben, werden
wir eine neue Zelle
erstellen und wir werden den Agenten
erstellen. Also werden
wir aus dem
Lama-Indexpunkt Core, diesem Agenten, einen Reaktionsagenten importieren Wir haben hier also mehrere Dinge, wir werden eine
Instanz eines React-Agents erstellen Warum reagieren? Weil es an geht Dieser Agent arbeitet
in zwei Hauptphasen. der ersten Phase geht es um Argumentation . Der Agent erhält
also eine Anfrage.
Der Agent bewertet, ob er über
genügend Informationen verfügt , um
direkt zu antworten , oder ob er ein Tool benötigt, und dann handelt er Wenn sich der Agent für
die Verwendung eines Tools entscheidet, führt
er das Tool aus und kehrt
dann zur
Argumentationsphase zurück, um
festzustellen, ob
er
die Anfrage jetzt beantworten kann oder ob er Es ist also so einfach wie
React Agent aus Tools zu sagen. Und übergebe eine Liste von Tools. Laden Sie also PDF zwei, das
Rack-Tool, herunter und
holen Sie sich Archive zwei Wir müssen ein LM zur Verfügung stellen
, das es verwenden wird. Wir werden unser
LM-Modell, den GPT 40 Mini, weitergeben. guter Letzt werden
wir sagen, dass Vervos wahr ist, damit wir wissen, was hinter den Kulissen
passiert,
all die Logs, die dieser
Agent herauswirft Und das ist alles. Jetzt haben wir einen Agenten erstellt. So können wir anfangen,
mit unserem Agenten zu chatten. Dafür
benötigen wir eine Abfragevorlage. Lassen Sie uns eine Abfragevorlage erstellen, wir wahrscheinlich in zukünftigen Lektionen
verfeinern werden. Das heißt also, ich bin an einem Thema
interessiert, oder? Finden Sie Artikel zu diesem Thema in Ihrer
Wissensdatenbank . Verwenden Sie die folgende Vorlage
, um Forschungsarbeiten und das Query Engine-Tool abzufragen. Ich würde sagen, geben Sie den
Titel, die Zusammenfassung, Autoren und den Link zum
Herunterladen von vier Artikeln an. Lassen Sie mich vier Artikel zum
Thema sehen. Zeitraum. Ich habe Whoops. Und ich werde sagen,
falls nicht, könnten Sie die
aktuelle Version aus dem Archiv holen Aus dem Archiv. Okay. Also, das ist eine
Abfragevorlage, die ich
geschrieben habe . Mal sehen, ob das funktioniert. Lassen Sie uns ein neues Selbst erstellen und sagen, dass die Antwort dem Agenten
entspricht, der im Chat ist Wir werden
die Abfragevorlage übergeben und formatieren, um Ihnen das Thema
zu geben Das Thema wird Multi-Modell-Modelle
sein. Ich gehe davon aus, dass anhand dieser
Liste von Veröffentlichungen beispielsweise Modelle
mit mehreren Modellen abgerufen werden. Und wahrscheinlich noch etwas anderes. Aber ich weiß nicht,
welche anderen Artikel abgerufen
werden,
denn das ist nur der Titel. Und denken Sie an diese
Suchanfragen nach der Zusammenfassung, sie hat eine Zusammenfassung, sie hat
Kategorien und all das Zeug. Also wird es wahrscheinlich auch andere Zeitungen
holen. Lassen Sie uns das ausführen, und Sie können sehen, dass in der Ausgabe ein
laufender Schritt steht und diese ID, die Schritteingabe ist die
Abfragevorlage mit dem Thema, nämlich multimodale Modelle Der Agent denkt jetzt daran, dass die aktuelle
Sprache des Benutzers Englisch ist. Ich benötige ein Tool, das
mir bei der Beantwortung der Frage hilft. Die Maßnahme, die es ergreifen
wird, wird das
Forschungspapier und das Query Engine Tool verwenden, und der Input wird wie
folgt sein: Titelzusammenfassung, Autoren und Link
zum Herunterladen Artikeln zu
multimodalen Modellen Das heißt also, diese Abfrage-Engine zu
verwenden. Denken Sie daran, dass die Abfrage-Engine GPT Four Omni
verwendet.
Sie ist in der Lage, eine Antwort gemäß
dieser Vorlage hier zu geben eine Antwort gemäß
dieser Vorlage hier Folgen Sie oder geben Sie den
Titel, die Zusammenfassung der Autoren und den Link zum Herunterladen des Artikels an Die Beobachtung ist
, dass es zurückkehren wird. All dies wird von GPT 40 M
generiert. Es enthält den
Titel, die Zusammenfassung, die Autoren und die PDF-URL Wir können
diese Antwort besser visualisieren indem wir diese Markdown-Klasse verwenden Ich sage Markdown, antworte mit
Punktantwort. Okay. Jetzt können wir uns das besser
vorstellen. Dies ist die Antwort
von GPT 40 Mini. Es gab mir gerade eine Liste mit
vier Papieren. Das ist großartig. In dieser Lektion
werden wir hier enden. In der nächsten Lektion werden
wir prüfen, ob
all diese Dokumente heruntergeladen werden können. Ich hoffe es gefällt dir. Wir
sehen uns in der nächsten Lektion.
13. Herunterladen der Papiere und Abrufen neuer Papiere: Hallo und willkommen zurück.
In dieser Lektion werden
wir nun
all diese Dokumente herunterladen. Denken Sie daran, dass eine der Funktionen
des Agenten darin besteht, dass er die bereits erledigten Aufgaben
speichert. Da der Agent
diesen Chat-Verlauf speichert, können
wir verlangen, dass
die Dokumente geladen werden ohne
sie ausdrücklich zu erwähnen. Okay. Geben wir also diesen neuen
Anrufbeantworter ein, der chattet, und sagen wir
dem Agenten, dass er alle Dokumente herunterlädt,
die Sie erwähnt haben. Lass uns sehen, was passiert. Es führt also diesen Schritt aus und der Eingabeschritt besteht darin, alle Dokumente
herunterzuladen, von denen Sie die Aktion
oder den Gedanken
erwähnt Zuallererst muss ich mehrere PDF-Dateien
herunterladen, die auf den bereitgestellten URLs für
die Artikel zu
multimodalen Modellen
basieren die Artikel zu
multimodalen Modellen Die Aktion besteht darin, die zweite
PDF-Datei herunterzuladen. Die Aktionseingabe
ist diese PDF-URL und die Ausgabedatei ist diese. Dies ist nur für ein Papier. Sie können in diesem Ordner sehen,
dass nur ein Artikel heruntergeladen wurde. Und dann geht es
zum anderen Papier,
bei dem sprachübergreifenden Text geht, um
visuelles Verständnis zu erreichen ,
was das zweite ist Aber sieh dir das an. Jetzt sagt
es, dass
der Gangster sagt, dass er
ohne weitere Tools antworten kann, und es benutzt immer noch das Ähm, es macht keine Aktion
durch Die Antwort ist Aktion,
laden Sie PDF zwei herunter. Es wird weder
die zweite noch die
dritte oder vierte Datei heruntergeladen . Wir werden das Problem beheben, indem in diesem Chat umgehend technische Maßnahmen ergreifen. Aber lassen Sie uns vorerst
weitermachen und nun ja, lassen Sie uns die Antwort in Markdown eingeben ,
damit wir das besser sehen können Ich kann sehen, dass die Antwort
lautet: Laden Sie dies herunter, verwenden Sie
das
Download-PDF-Tool und es sagt uns
, was es zuletzt getan hat Dieser. Das ist nicht korrekt.
Das werden wir reparieren. Aber lassen Sie uns vorerst sehen,
was passiert, wenn wir nach einem Thema fragen, das in dieser
Liste, die wir gefunden haben, nicht
verfügbar ist . Lassen Sie uns
noch einmal
mit dem Agenten interagieren und lassen Sie uns über den Agenten und die
Abfragevorlage
sprechen ,
und wir werden mit einem anderen Thema
wie Quantencomputing
formatieren , etwa
so. keinem dieser Artikel Ich glaube, in keinem dieser Artikel
geht es um
Quantencomputer. Mal sehen, was passiert, wenn wir über dieses Thema
sprechen
, das nicht verfügbar ist. Wir werden die Antwort hier offensichtlich besser
sehen. Aber schauen wir uns den
Argumentationsprozess an. In der Vorlage geht es jetzt
um Quantencomputer. Der Gedanke ist, dass die
aktuelle Sprache des Benutzers Englisch ist. Ich benötige ein Tool, das
mir bei der Beantwortung der Frage hilft. Die Aktion besteht aus einem Forschungsbericht
und einem Query-Engine-Tool. Die Eingabe ist diese Vorlage, aber es sieht so aus, als ob es nichts mit Quantencomputing
zu tun hat. Der Gedanke ist also, es
scheint, dass in der
Wissensdatenbank keine Artikel zum
Thema Quantencomputer
verfügbar sind in der
Wissensdatenbank keine Artikel zum
Thema Quantencomputer
verfügbar . Ich werde aktuelle
Artikel aus dem Archiv holen. Jetzt benutzt es das dritte Tool,
nämlich Fetch from Archive, und die Eingabe für die Aktion ist der Titel Quantencomputer
und die Beiträge zählen fünf Okay. Also, jetzt habe ich
diese fünf Papiere hier gefunden. Man kann sich vorstellen,
Verschränkung zu untersuchen, Skalierung über einen
Quantenphasenübergang hinweg auf
einem Quantencomputer, gleichmäßige Additivität oder was auch immer,
dieses komplizierte Zeug Aber es hat definitiv
neue Veröffentlichungen gefunden , ohne dass wir in diesen Prozess
eingegriffen Das ist cool. Der nächste
Schritt in der nächsten Lektion, was wir
tun werden, ist, das Problem des
Herunterladens der Dokumente zu lösen.
14. Die Aufforderung zum Herunterladen von Dateien verbessern: Hallo und willkommen zurück. Lassen Sie uns also zunächst einen Commit durchführen, damit wir nicht
alle unsere Änderungen verlieren. Ich werde dieses Dokument löschen,
damit
Sie beim nächsten Mal, wenn wir dieses Papierproblem beheben, sehen, dass
alles behoben ist. Lassen Sie uns also alles hinzufügen. Fügen wir eine
Commit-Nachricht hinzu, die besagt, erste Version des Agenten zu
erstellen, und lassen Sie uns einen Push durchführen. Bei. Nun, was wir als Nächstes tun werden,
ist diese Aufforderung hier zu ändern, Download-Aufforderung, weil es im
Moment sehr einfach ist, und vielleicht ist das nicht
der beste Weg, es zu tun. Natürlich können Sie Chat, GPT oder Clot
verwenden um diese Aufforderung
hier zu verbessern, genau das habe ich getan Tatsächlich war die Aufforderung, die
zur Behebung dieses Problems zur Verfügung gestellt
wurde, zunächst ein iterativer
Prozess Ich habe das
mehrmals versucht, um dieses Problem zu beheben. Ich habe mehrere Eingabeaufforderungen ausprobiert, und diese hat
das Problem behoben Ich habe auch andere Ansätze ausprobiert, und ich werde Sie
einladen, andere Ansätze auszuprobieren Wir werden
das gleich besprechen. Im Moment werde ich der
Aufforderung mitteilen, die folgenden
Dokumente und für jedes Dokument
herunterzuladen. Ich werde zuallererst sagen: Ups.
Was passiert? Verarbeiten Sie ein Papier nach dem anderen. Zweitens, lass es uns so machen. So wie das. Ja. Zweitens geben Sie an, welche Papiernummer Sie von der Gesamtsumme
bearbeiten. Drittens weiß ich nicht,
warum das okay ist. Schließe einen vollständigen Download-Zyklus bevor du zum nächsten Vapor übergehst. Viertens: Geben Sie dies ausdrücklich an, wenn Sie zum nächsten Artikel
übergehen, und fünftens, geben Sie
eine endgültige Zusammenfassung erst an, nachdem alle Artikel
heruntergeladen wurden. Dies werden also die neuen Anweisungen
für den Download-Schritt
sein . Okay? Also lass uns sehen, was jetzt passiert. Ich werde alles
noch einmal ausführen, nur um es klar zu sagen,
lösche alle Ausgaben und führe alles aus
und lass uns sehen, was passiert. Es werden wieder die
vier Artikel abgerufen, die sich
auf multimodale Modelle beziehen .
Jetzt ist es da. Es sagt den Gedanken, ich fange an, die
Artikel einzeln herunterzuladen und jede Arbeit in
der Reihenfolge zu
bearbeiten, in der sie aufgelistet wurden. Aktion, das zweite PDF herunterladen, die zweite Aktion ist das erneute
Herunterladen der zweiten PDF-Datei. Aber jetzt zum
sprachübergreifenden Text Rich Visual:
Die dritte Aktion
ist dieselbe, bei der
das Download-PDF verwendet wird, aber mit diesen umfassenden
multimodalen Prototypen, und die vierte Aktion ist dieselbe, nur mit
einem Chat-Kleidungsstück Ratte. Jetzt hat es
die vier Artikel heruntergeladen. Jetzt wollen wir sehen, was passiert, wenn es den
Quantencomputer abruft. Oh, Hoppla Jetzt werden auch die für
Quantencomputer heruntergeladen. Also haben wir einen Teil des Problems behoben. Wir haben es geschafft,
die vier Dokumente herunterzuladen , die wir
ausdrücklich zum Herunterladen vorgesehen hatten, aber jetzt werden auch
die anderen heruntergeladen. Jetzt müssen wir also
etwas anderes tun, um diese Situation zu vermeiden,
und Sie können sehen dass auch
dieser letzte Schritt gescheitert ist. Lassen Sie mich aus
irgendeinem Grund noch einmal alle Dokumente hier löschen aus
irgendeinem Grund noch einmal alle Dokumente hier Es ist nicht ausdrücklich gesagt , dass die Dokumente nicht
heruntergeladen werden müssen. Auch hier habe ich
einen iterativen Prozess durchlaufen. Das ist Versuch und Irrtum
und dieser ist einfacher. Sie müssen nur sagen, laden
Sie keine Artikel herunter. Es sei denn, der Benutzer fragt
ausdrücklich danach. Also, indem Sie der KI einfach sagen: Hey, die Dokumente
nicht herunter,
es sei denn, der Benutzer sagt es, also schauen wir mal, was passiert. Ich werde alle
Ausgaben wieder löschen und alle ausführen. Diesmal musste ich
die Erstellungsvorlage ändern, nicht die Download-Vorlage Jetzt sucht es wieder in der
Datenbank oder im Index. Was ist das Papier über multimodale
Modelle? Es hat die vier Dokumente gefunden
und wir werden sehen, was passiert all diesem Prozess handelt es sich um
Prompt-Engineering, Bei all diesem Prozess handelt es sich um
Prompt-Engineering,
genauso wie Sie
Prompt-Engineering für HAGPT auch
Prompt-Engineering für Agenten durchführen können Mal sehen, was
in der Aktenmappe passiert. Ich habe die vier
Dokumente erfolgreich heruntergeladen. Die multimodalen Papiere. Auf 23 Sekunden. Und jetzt sucht es nach
neuen Artikeln zum Thema
Quantencomputer Was ich jetzt erwarte
, ist, dass es keine Dokumente
zum Thema
Quantencomputer herunterlädt . Hier ist es. Sie können jetzt sehen, dass es
diesmal nur
ein Papier gefunden hat , aber das ist gut. Zumindest wurden nicht alle Dokumente
heruntergeladen.
Das ist ein gutes Zeichen. Lassen Sie uns hier einen Commit abschließen. SG Commit, baue die zweite Version
von und lass uns pushen. Diesmal mit den
Papieren. Das war's für dieses Video. Hoffe es gefällt dir und wir sehen uns
in der nächsten Lektion.
15. Eine Klasse zur Verwaltung des Index erstellen: Hallo und willkommen zurück. wir jetzt tun werden, ist zwei Klassen
zu erstellen. Eine Klasse wird Indexmanager
genannt, und die zweite Klasse
wird Agentenklasse genannt
. Diese beiden Klassen
werden also dazu dienen, die gesamte Logik,
die wir hier in diesen
Jupiter-Notizbüchern
erstellt
haben,
in einer Klasse zusammenzufassen Logik,
die wir hier in diesen
Jupiter-Notizbüchern
erstellt , sodass wir sie wiederverwenden können, und wir werden
einen beleuchteten Stream erstellen , der
diese beiden Klassen verwendet , sodass die Verwaltung etwas
einfacher wird. Also werden wir zunächst die Index-Manager-Klasse
erstellen. Also hier werden wir
eine Klasse namens Index Manager definieren eine Klasse namens Index Manager und wir werden einen Konstruktor
erstellen Und hier werden wir
einfach das Einbettungsmodell als Parameter
haben Das Self Dot Embed-Modell wird
das sein, das wir hier übergeben. Wir werden auch
diese leere Reihe von Dämpfen definieren. Okay. Jetzt
definieren wir eine Methode zum Abrufen von Papieren, die
als Parameter das Thema, das wir abrufen
möchten, und die Anzahl der Dokumente erhält ,
die wir standardmäßig auf
zehn setzen
, wie wir es in den
Jupiter-Notizbüchern getan haben , werden Self-Dot-Papiere also Anstatt
jetzt ein leeres Array zu sein als
Archivpapiere mit einem bestimmten Thema bezeichnet,
und die Anzahl der Beiträge wird und die Anzahl der Thema. Großartig. Und wir
müssen hier reinkommen. Okay. Jetzt, wo wir
diese Dokumente abrufen haben, werden
wir auch
diese Methode entwickeln, die sich „
Dokumente aus Papieren erstellen“ nennt Diese Methode wird genau
dieselbe sein wie diese. Lassen Sie mich eigentlich einfach alles kopieren
und einfügen. Zieh das ein. Aber dieses Mal wird
es keine Papiere als Parameter erhalten, weil Papers hier bereits
initialisiert ist Ich sage nur für
Papier in selbstgepunkteten Papieren. Außerdem werde ich diese Dokumente hier
loswerden. Wir werden
Dokumente woanders initialisieren. Wir werden sagen,
Self-Punkt-Dokumente fügen Dokument hinzu. Wir müssen das Dokument
aus dem Lama-Index importieren, oder? Und wir können die Dokumente zurückgeben oder wir tun
es einfach nicht, das liegt an Ihnen Mir ist das wirklich egal. Ich werde sie
einfach zurückgeben. Okay, und es heißt, dass
Dokumente nicht existieren. Das liegt daran, dass wir keine Dokumente definiert
haben. Also gut, lass es uns hier machen. Schadet niemandem.
Lass es uns hier machen. Selbstdokumente und Terrain. Jetzt werden wir
eine Methode zur Indexerstellung erstellen,
Dev Create Index, und das wird
diese Funktion „Dokument
aus Papieren erstellen“ nennen , und sie wird auch diese Logik hier
sammeln und ausführen. Okay. Also so etwas, wir
haben das erfunden
und wir müssen Einstellungen und den
Vector Store Index
importieren. Okay. Und hier werden wir das einer
Instanzvariablen namens index zuweisen. Außerdem haben wir
das Modell einbetten im Konstruktor, also können wir uns selbst nennen,
das Modell einbetten, und Dokumente sind hier,
self the documents Also ich bevorzuge es, das hier
zu initialisieren. Da hast du es, und da hast du es. Das ist nur eine Frage
der Organisation. Hat keinen Einfluss auf das Ergebnis. Aber jetzt haben wir diese Klasse, die diese Methode
hat, um die Dokumente
abzurufen Ich werde das Papier-Array
auffüllen. Nachdem Sie
diese Methode ausgeführt
haben, können Sie den Index erstellen, und dann benötigen wir eine andere
Methode, um den Index abzurufen Diese Methode wird dasselbe
tun wie wir hier. Dieselbe Logik, wir
werden sie hier platzieren und natürlich müssen wir Dinge importieren,
Vektoren
zum Indexieren,
Index aus dem Speicher laden, aus irgendeinem Grund wurde
das dupliziert Das Bettmodell wird
Autodidakt sein und das Bt-Modell. Und was sonst? Wir werden das nicht zuweisen, sondern
diesen Tarif zurückgeben. Ich denke, das ist alles, was wir für diesen Kurs
tun müssen. Wir können auch
eine Arr-Methode definieren , nur um
die Titel der Artikel zu drucken. Also werde ich sagen, Artikel auflisten, und wir werden einfach die Logik dahinter
kopieren. Wie Papierkachel gegen
Papier drucken, ich selbst die Papiere, um Dinge zu zeigen, wenn Sie wollen Das war's für diesen Kurs. In der nächsten Lektion werden wir
die Agentenklasse erstellen. Vergiss nicht,
einen Commit zu machen , fügt
Indexmanager Cass hinzu. Das war's für diese Lektion. Ich hoffe es gefällt dir. Wir
sehen uns in der nächsten Lektion.
16. Einen Kurs für die Interaktion mit dem Agenten erstellen: Großartig. Jetzt werden wir eine weitere Klasse namens
Agentenklasse erstellen. Lassen Sie uns eine weitere Datei
namens Agent Dot PY erstellen. Hier werden wir
diese Klasse namens Agent definieren. In Destructor werden
wir den Index
und das LLM-Modell abrufen Self Dot Index wird
Index sein und das Self Dot LLM-Modell
wird ein LLM-Modell sein In Deconstructuor werden
wir die Abfrage-Engine, das RAG-Tool, das PDF-Download-Tool, das Fetch-Archivtool und
die Build-Agent-Methode zum Erstellen des Agenten erstellen Nehmen Sie also im Grunde
die Logik aus diesem
Jupiter-Notizbuch Also zuallererst, baue,
baue die Abfrage-Engine. Was das tun wird,
ist im Grunde das zu tun. Nimm diese
Codezeile und füge sie hier ein. Wir sagen,
Self Dot Query Engine entspricht Self
Dot Index als Query Engine, Self Dot M-Modul und Similarity Top
K gleich Fünf. Dies kann auch ein Parameter
des Konstruktors sein, aber lassen Sie uns ihn fest auf fünf codieren Die zweite Methode wird
das Build-RAC-Tool sein. Und im Grunde
wird es das sein. Self Dot Rat
wird also dem Query Engine Tool entsprechen
. Lassen Sie uns das in
diese Datei importieren und die Abfrage-Engine wird Self
Dot Query Engine sein. Lassen Sie uns das loswerden
und los geht's. Nun, die andere Methode
wird
das eingebaute
PDF-Download-Tool sein und es wird
im Grunde
genau das sein, also kopieren wir dieses PDF, das Sie
selbst herunterladen. Wir müssen das
Funktionstool importieren und das PDF aus
der Tools-Datei hier herunterladen. Da hast du's. Erstellen Sie jetzt das Fetch Archive-Tool. Nochmals, das wird das sein. Lass es uns einfach kopieren
und hier einfügen. Sagen Sie Self Dot Fetch
Archive Tool und importieren Sie das Fetch-Archiv
aus der Tools-Datei Da hast du's. Jetzt werden
wir eine weitere Methode definieren , nämlich Build Agent. Build Agent wird
genau das hier sein. Lass uns das einfach kopieren, hier
einfügen und es
oben importieren. Da hast du's. Und das werden das
Self Dot Download PDF Tool,
Self Dot G Tool,
Self Dot Fetch Archive Tool
und Self Dot LLM Model Auch hier gilt, dass all diese
Parameter wie Verben wahr sind. Sie können im
Initialisierer gesetzt werden, wenn Sie möchten. Ich werde sie einfach hart codieren und sagen, dass Variablen immer wahr sind
. Jetzt gehe ich in
den Initialisierer, um all diese
Methoden in dieser Reihenfolge
aufzurufen Zuerst die Abfrage-Engine, dann das Build-Rag-Tool, dann das
Build-PDF-Download-Tool, dann das beliebige
Haustierarchiv-Tool und schließlich den Agenten Großartig. Wir vermissen hier
nur eine Methode. Wenn wir
diese Agentenklasse initialisieren, wird
der Agent automatisch
initialisiert, aber ich möchte eine Chat-Methode, die eine Nachricht
empfängt Es wird das Ich selbst,
der Agent, der Chat zurückgeben . Nachricht. Im Grunde genommen werden
wir bei dieser
Interaktion diese
Abfragevorlagen nicht mehr weitergeben. Wir werden einfach jede Nachricht
weiterleiten. Die Nachricht wird hier
im Grunde eine beliebige Zeichenfolge sein. Okay, das war's
für diesen Kurs. Auch das ist Get at Git, Commit
als Agentenklasse und Push. Das war's für dieses
Video. Ich hoffe, es gefällt euch und wir sehen uns in
der nächsten Lektion in der wir
mit diesen beiden Klassen eine
Sprint-Let-App erstellen werden.
17. Eine Chat-UI mit Streamlit erstellen: Hallo und willkommen zurück.
Was wir jetzt
tun werden, ist
eine Stream-Let-App zu erstellen. The Stream Lead ist ein
Python-Framework zum Erstellen von Apps, insbesondere Daten-Apps,
wie es hier heißt. Es verwandelt Datenskripte in MD in
gemeinsam nutzbare Web-Apps, die alle miteinander verbunden sind Keine
Frontend-Erfahrung erforderlich. Wenn Sie zum Galeriebereich gehen, werden
Sie viele
Beispiele sehen, die Leute mit Stream It erstellt
haben. Zum Beispiel haben
sie für LMS Chatbots
oder Chat-GPT mit
Speicher gebaut , viele Dinge Sie können sich die Trends ansehen,
Math GBT, Portfolio, was Und
ich würde sagen, es hat viel
Kompatibilität oder viele Tools, um LLM-Karten zu erstellen Okay. Also werden wir anfangen, diesen Chatbot zu
bauen, um mit dem Agenten zu
interagieren Zuallererst müssen wir
streamlt als Abhängigkeit installieren streamlt als Abhängigkeit PDM fügt also Streamlet hinzu und wartet,
bis die Abhängigkeit installiert In der Zwischenzeit
werden wir eine Datei
namens App Dot PY erstellen . Okay. Also hier werden wir unsere Agentenklasse
importieren und wir werden auch
unsere Index-Manager-Klasse importieren. Außerdem werden wir aus den Konstanten, dem Embed-Modell und
dem LM-Modell
importieren . Okay. Und wir werden
Streamlt auch als
ST importieren . So haben die Leute in der Python-Community diese Bibliothek früher
importiert. Es erkennt es immer noch nicht , weil
es immer noch installiert
wird. Und wir werden anfangen, die App zu erstellen, während sie installiert
ist. Zuallererst müssen wir also ein Konzept in Streamlt
verstehen
, nämlich den Sitzungsstatus In streamlt
erstellen wir also ein Skript,
und dieses Skript wird ausgeführt, als
ob es sich in einer Wildschleife Alles, was wir hier schreiben,
wird also neu erstellt, wenn wir diese Variablen
nicht
in
den sogenannten Sitzungsstatus versetzen in
den sogenannten Sitzungsstatus Es
gibt mehrere Möglichkeiten
, diese Variablen zwischenzuspeichern, und eine dieser Möglichkeiten ist
die Verwendung eines Decorators Dieser Decorator wird
ST Stream Lit Cache genannt. Hier können wir eine Funktion definieren, und ich werde diese
Funktion initialize agent nennen Weil wir wollen, dass der Agent nur einmal initialisiert wird. Deshalb speichern wir diese Ressource im
Cache. Wir werden sagen, dass der
Indexmanager dem Indexmanager
entspricht . Denken Sie daran, dass wir das Embed-Modell übergeben müssen, und dann können wir den Index abrufen, indem wir
die Methode zum Abrufen des Index aufrufen
, die wir für diese Klasse erstellt haben Schließlich geben wir
einen Agenten
mit Index und LM-Modell zurück . Okay. Und jetzt werden wir den Agenten und den Sitzungsstatus
initialisieren Okay. Also, wie machen wir das? Wir sagen, wenn sich der Agent nicht
im Extremit-Punkt-Sitzung, Sitzungsstatus befindet, dann sagen
wir Stream-Sitzungsstatus Punkt
Agent, initialisierter dieses Skript zum ersten Mal ausgeführt wird, Wenn dieses Skript zum ersten Mal ausgeführt wird, befindet sich der
Agent nicht
im Sitzungsstatus, also wird er initialisiert Wir müssen auch die
Nachrichten des Chats
im Sitzungsstatus initialisieren Nachrichten des Chats
im Sitzungsstatus Wenn sich Nachrichten nicht im
Stream-Sitzungsstatus
befinden, werden
Nachrichten ein leeres Array sein Stream Lead hat also eine
Möglichkeit, Chats zu erstellen. Wir werden sehen, wie es das Konzept der Zeilen
verwendet. Ein Teil
des Chats wird also der Benutzer oder der Mensch sein, und der andere Teil
des Chats wird der Assistent oder die KI sein. Also werden wir gleich sehen
, wie das funktioniert. Dann werden
wir jetzt die Chat-Nachrichten
anzeigen. Denken Sie daran, dass
das alles wie in einer Zeitschleife ablaufen wird . Also müssen wir jedes Mal, wenn dieses Skript ausgeführt wird, die Nachrichten
drucken. Für Nachrichten in der Sitzung
geben diese Nachrichten an, dies ist die Syntax, die
wir verwenden, um
die Nachrichten mit SD zu schreiben die Nachrichten mit SD und diese hat diese
Chat-Nachrichtenvariable. Und was müssen wir angeben? Der Name? Der Name kann der Benutzer, der Assistent, die KI oder ein Mensch sein. Benutzer und Mensch sind
dasselbe. Assistent und KI
sind dasselbe. Aber die Nachricht wird
die Rolle enthalten. Also werden wir
Nachricht, Punkt, Rolle sagen. Nachrichtenrolle wird also entweder Benutzer oder Assistent sein.
Woher wissen wir das? Weil wir
das gleich definieren werden.
Hab einfach Geduld mit mir. Also hier, um
etwas in den Chat zu schreiben, verwenden
wir diese Markdown-Methode, und wir werden den Inhalt
der Nachricht hier drucken Okay. Man könnte sagen, dass
Nachrichten aus
einer Reihe von Wörterbüchern bestehen werden einer Reihe von Wörterbüchern bestehen und jedes Wörterbuch
eine Rolle und einen Inhalt haben
wird eine Rolle und einen Inhalt Die Rolle wird entweder ein Benutzer oder ein
Assistent
sein und der Inhalt wird die
Nachricht selbst sein,
die sich in Markdown befinden kann Jetzt werden wir die
Kernfunktionalität dafür entwickeln. Wir werden sagen, ob Eingabeaufforderung, und wir werden
diese Eingabemethode aufrufen. Fragen Sie mich etwas über
Forschungsdämpfe. Okay. Also, was bedeutet das? Das heißt, wenn diese Eingabeaufforderungsvariable nicht initialisiert
ist, bedeutet
diese Syntax, okay, initialisiere sie so, dass sie das was diese Chat-Eingabe zurückgibt Dies ist nur ein Platzhalter wie Sie gleich
sehen werden Was wir hier eingeben, wird
also dieser Eingabeaufforderung zugewiesen Okay. Jetzt werden wir Meldungen zum
Sitzungsstatus
anhängen und dieses Wörterbuch
hier
auflisten, dieses Wörterbuch
hier
auflisten denn wenn ich etwas eingeben
werde, bin
ich der Benutzer Die Rolle wird also der
Benutzer sein und der Inhalt ist das , was
in dieser Eingabeaufforderung zugewiesen
wird Großartig. Also haben wir das angehängt, aber jetzt müssen wir es auf dem Bildschirm
zeigen Also mit SD, der Chat-Nachricht, und dieses Mal
wird es der Benutzer sein Ich werde die Aufforderung
notieren. Also werde ich im Grunde anzeigen,
was ich eingegeben habe. Dann werde ich anzeigen,
was der Assistent reagiert. Mit ST-Chat-Nachricht, Assistent erhalte
ich die
Antwort und die Antwort wird
mit dem Agenten abgerufen. Denken Sie daran, dass wir diese Methode als
Chat-Chat
erstellen
und die Denken Sie daran, dass wir diese Methode als
Chat-Chat
erstellen
und Eingabeaufforderung übergeben , sodass etwas
zurückgegeben wird , das ein Antwortattribut
hat. Jetzt drucken wir die Antwort
aus und hängen schließlich die Antwort an die
Statusmeldungen
der Sitzung an , allerdings mit der Rolle
des Assistenten Das ist also alles. Wir haben diese App gerade in
33 Codezeilen
erstellt. Und um dies auszuführen, stellen Sie sicher, dass Sie in Ihrem Terminal das Terminal
schließen und es erneut öffnen und
dass es dies anzeigt. Das bedeutet, dass Sie sich in der virtuellen Umgebung befinden, Sir. Und wenn Sie das nicht sehen, können
Sie auch PDM use sorry, PDM Ben B ENV und
PDM BENV activate eingeben Ben B ENV und
PDM BENV activate Das ist der Befehl. Drucken Sie also den Befehl aus, um
die virtuelle Umgebung zu aktivieren. Sie müssen das also grundsätzlich eingeben
und einfügen. Okay. Jetzt bin ich also in einer
virtuellen Umgebung. Okay. Also solltest du dir das ansehen. Wenn Sie das sehen oder wenn Sie kein CSH
oder Mac haben, geben Sie das einfach ein Mit einem
korrekten Befehl geben
Sie natürlich stream
it run up dot PY Dadurch wird dieser Chat hier geöffnet, aber etwas stimmt nicht. Also lass mich sehen, was es ist
Cache-Ressource, nicht Cache. Also lass es uns noch einmal versuchen. Okay, lassen Sie uns
etwas hinzufügen, das ich übersehen habe, und es wird
eine Kachel sein, nur um
es ein bisschen schöner zu sehen es ein bisschen schöner Also bei File Archive,
Papers, Chatbot, ja. Das ist ein guter Name. hoffe, wenn Sie noch frisch sind, sehen
Sie diesen Titel. Okay, also wie ich dir schon sagte, das ist ein Platzhalter
für die Chat-Eingabe Aber ich kann hier alles eingeben. Ich frage Sie, können Sie
Artikel zur
Quantenmechanik holen Artikel zur
Quantenmechanik Und denken Sie daran, dass die
Quantenmechanik
nicht in der Wissensbasis enthalten ist nicht in der Wissensbasis enthalten Also hier wird dieses kleine Symbol angezeigt, das anzeigt
, dass ich der Benutzer bin und das ist der Assistent. Und hier werde
ich noch etwas hinzufügen, nur um es ein
bisschen besser zu machen. Zuallererst denke ich, dass
es die Antwort zurückgegeben hat, aber ich möchte
benutzerfreundlicher sein. Und hier in dieser Zeile sage
ich
mit St. Dot Spinner und ich sage Denken Das ist zwar nicht der Fall, aber während der Agent nachdenkt, zeigen
wir Spinner an ,
damit es benutzerfreundlicher ist Lass mich das einfach kopieren
und nochmal machen. Ich denke mit einem Spinner. Denken Sie daran, dass
das einige Zeit dauert. Dies ist eine benutzerfreundlichere
Methode, um das Ergebnis anzuzeigen. Mal sehen, was viele sind. Also ja, ich glaube, es ist fertig, oder ich glaube, es hat sich aus
irgendeinem Grund geirrt Lassen Sie uns das beenden und erneut
ausführen und
dieselbe Frage erneut stellen. Können Sie Artikel
zur Quantenmechanik holen? Es verwendet also das Tool zum Abrufen aus dem Archiv, denkt
aber immer noch nach Warten wir also einen Moment
und los geht's.
Das ist die Antwort. Okay, jetzt haben wir eine Benutzeroberfläche, auf der Sie die
Ergebnisse unserer harten Arbeit sehen können. Hoffe dir gefällt dieses Video, sehen uns in der nächsten Lektion.
18. Einen API-Schlüssel von Pinecone erhalten: Hallo und willkommen zurück.
Also werden wir jetzt unseren
Index in Pine Ce speichern. Pine Cone ist also ein Dienst in
der Cloud zum Speichern von Indizes. Das heißt, es ist eine
Vektordatenbank in der Cloud. Wie es hier heißt, können
Sie eine sachkundige KI aufbauen deren
Vektordatenbank das Herzstück bildet Pine Cone ist die führende
Wissensplattform für die Entwicklung genauer, sicherer und skalierbarer
KI-Anwendungen So können Sie
ein kostenloses Konto erstellen. Offensichtlich hat dies eine kostenlose Stufe. Sie können den
Startplan zum
Ausprobieren und für kleine
Anwendungen wählen . Es ist kostenlos. Sie haben Pinec serverlos, Sie haben Pinec Inference und Assistant, das sind einige Produkte,
die sie entwickeln, und Sie müssen
die Region USA Ost
eins von acht von uns verwenden die Region USA Ost
eins von acht von uns Sie können kostenlos starten,
ein Konto erstellen und sich dann anmelden. Ich werde das alleine machen. Hier, und dann werden
wir hier
einen Index erstellen. Klicken Sie auf diese Schaltfläche,
erstellen Sie einen Index, und ich werde „Recherche
archivieren“ sagen. Hier können Sie die
Abmessungen dieser Vektoren konfigurieren. Denken Sie daran, dass Vektoren Dimensionen
haben. Das sind die Einbettungen, oder Sie können ein Preset wählen Denken Sie daran, dass wir drei große
Texteinbettungen verwenden, sodass wir das einfach direkt auswählen können.
Und sieh dir das an Die Dimensionen werden automatisch mit 3.072 Dimensionen
gefüllt Das ist also die Dimension
der Einbettungen, wenn wir dieses Einbettungsmodell
verwenden Serverlos. Ich
werde Ws wählen. Ich kann andere
Cloud-Anbieter wählen, da
ich den kostenpflichtigen Tarif habe und andere Regionen wählen
kann. Wenn Sie jedoch
das kostenlose Kontingent nutzen, Sie nur AWS
UsesTo verwenden . Sie können den
Löschschutz aktivieren , um zu verhindern, dass Benutzer diesen Index versehentlich
löschen Da ich das so
oder so löschen werde , ist das egal Okay. Jetzt haben Sie
Ihren Index in der Cloud erstellt. Jetzt benötigen Sie einige API-Schlüssel. Ich habe einen API-Schlüssel erstellt.
Du kannst ihm einen Namen geben. Sie können benutzerdefinierte Berechtigungen vergeben oder, wenn Sie sich vorerst nicht
komplizieren möchten, geben Sie ihm
einfach alle Berechtigungen, und dann müssen Sie
diese kopieren und
an einem sicheren Ort In der nächsten Lektion werden
wir eine weitere
Klasse namens
Index Manager Pinecone erstellen , die vom Indexmanager
erbt, und einige Anpassungen
vornehmen, um die Daten in Pine Cone zu speichern
19. Einen Indexmanager für Pinecone erstellen: Hallo und willkommen zurück. Lassen Sie uns also zunächst eine Verpflichtung eingehen,
um unsere Arbeit zu retten. Also geh zu Git Commit
und ich habe vergessen, was wir gemacht haben. Also, oh ja, wir haben es
gebaut, gestreamt. Das haben wir getan.
Wir machen einen Git-Push. Okay. Also, was wir jetzt tun werden, ist
zunächst
zwei Abhängigkeiten zu installieren, die wir benötigen
, um Piece verwenden zu können. Zuallererst benötigen wir
den Pine Cone Client, und wir werden auch
den Lama-Indexvektor benötigen , der Pinecone
speichert Lassen wir also PDM die schwere Arbeit hier
erledigen und Die andere Sache ist, dass
wir
einen Indexmanager
Pinecone Dot Pyle erstellen einen Indexmanager
Pinecone Und wir werden
eine weitere Klasse namens
Indexmanager Pine Cone erstellen eine weitere Klasse namens
Indexmanager Aber wir werden hier
Vererbung verwenden und wir werden
vom Indexmanager erben Also werden wir
einige Methoden von der
Indexmanager-Klasse erben einige Methoden von der
Indexmanager-Klasse In diesem Konstruktor benötigen
wir also wieder das Einbettungsmodell, den Indexnamen
des Tannenzapfens, den wir Wir werden den übergeordneten Konstruktor aufrufen,
und der
übergeordnete Konstruktor benötigt
nur das Embed-Modell Und wir werden
eine Instanz von Pine Cone erstellen. Im Moment wird es nicht angezeigt,
weil es gerade installiert wird, aber lassen Sie uns es auf verschiedene Arten importieren. Also werden
wir
diesen Tannenzapfen von Pine Cone importieren Also, es ist fertig installiert,
also wird es jetzt erkannt Also werden wir den API-Schlüssel
benötigen. Und das wird aus
Umgebungsvariablen stammen.
Das haben wir nicht gemacht. Ich weiß nicht, warum es
das tut. Das haben wir nicht gemacht. Lassen Sie uns hier das
ENB-Beispiel, den Stiftkegel API-Schlüssel hier in der ENB eintragen.
Wir werden dasselbe eingeben
, Wir werden dasselbe eingeben aber mit dem tatsächlichen Wert Also habe ich
meinen API-Schlüssel bereits kopiert. Also solltest
du es auch kopieren und hier einfügen. Und natürlich werde
ich es später löschen. Okay. Also, um diesen API-Schlüssel zu
laden, brauchen
wir deload dot m. Also werden wir von Punkt
EM importieren Wir werden
Port-Load-Punkt M verwenden. Wir werden
das so aufrufen , um die Umgebung
b aus der EMV-Datei zu ermitteln Großartig. Jetzt sagen
wir Self Dot Pine Ce Index, PC Dot Index, und wir
übergeben den Indexnamen. Dann werden wir den Vektorspeicher
als Pinecone Vector Store
initialisieren , und das müssen wir importieren Wir werden das aus dem
Lama Index Dot Vectorstores
dot Pine cone, Import Pine Cone Vector store importieren.
Okay. Also dieser Vektorspeicher, wir müssen den
Tannenzapfenindex übergeben, hier
definiert haben, der
Self Dot Pinecone Index sein wird wir müssen den
Tannenzapfenindex übergeben, den wir hier
definiert haben, der
Self Dot Pinecone Index sein wird. Außerdem benötigen wir den Speicherkontext. Ich sage, Self Dot
Storage Context entspricht, und wir müssen den Speicherkontext aus dem
Lama-Indexpunktkern
importieren, also den Stärkekontext importieren Speicherkontext aus den Standardeinstellungen, und wir werden
dieses Mal den Vektorspeicher übergeben Okay. Großartig. Was wir bisher
getan haben, ist, den Konstruktor
dieses Indexmanagers aufzurufen und hier einige andere
Variablen
zuzuweisen Jetzt müssen wir
die Methode create index
aus dem Indexmanager schreiben die Methode create index
aus dem Indexmanager Denken Sie daran, wir haben
diesen Index erstellen. Wir müssen das umschreiben, weil wir die Dinge
jetzt
in Pine C speichern werden . Also machen wir dasselbe Wir initialisieren ein MTRray. Wir nennen das Erstellen von
Dokumenten aus Papieren und setzen die Einstellungen darauf Wir müssen auch
Einstellungen importieren. Lassen Sie uns auch die Einstellungen
von hier abrufen. guter Letzt werden
wir die Vektoren auf den
Kopf stellen Self or Vector sorry, Vector Store Index, wir
meiner Meinung
nach auch von hier importieren müssen Vektorspeicher-Index. Das, was wir hier
tun werden, stammt aus Dokumenten,
so wie wir es hier getan haben. Okay. Aus Dokumenten. Wir sind so auf dem
Self-Punkt-Index. Self-Punkt-Dokumente. Der Speicherkontext
wird
Self Dot Storage Context sein und das Embed-Modell oder das Embed-Modell
wird Self Dot Embed-Modell sein. Okay. Da hast du's. Um den Index abzurufen, wir einfach den Vektorspeicher-Indexpunkt
aus dem
Vektorspeicher zurück und
übergeben den Vektorspeicher, der Self Dot Vector Store ist
, Self Dot Vector Store ist
, und den Embed, der das Self Dot Embed-Modell sein wird
. Das ist es. Das ist alles, was
wir tun müssen, um Daten zu ändern und
den Index von Pin C abzurufen. Also wenn wir hier
in die Datenbank gehen, archivieren für die Suche, noch
keine Datensätze Wir werden also ein Jupiter-Notizbuch
erstellen, das
Pine C heißen wird ,
und in diesem
Jupiter-Notizbuch wir die Vektoren
auf den Kopf stellen Lassen Sie uns von Constance aus das Embed-Modell
importieren. Wählen wir zuerst den Kernel aus. Wir werden auch vom Indexmanager
Pinecone aus den Index importieren ,
Indexmanager Wir werden
eine Instanz
dieses Klassenindex-Managers PyCon erstellen , wir übergeben das Embed-Modell und
wir übergeben den Indexnamen, der in unserem Fall Archive research
, Archive
research lautet Und jetzt holen wir
die Zeitungen, holen ,
Sprachmodelle Wir werden die letzten
101 holen. Wir holen die Dokumente
und jetzt sind wir bereit, den Index zu erstellen Lassen Sie uns den Index erstellen. Sie können sehen, uups,
wir haben einen Fehler bekommen, und das liegt daran, dass es heißt, ich denke, das
muss ein eingebettetes Modell sein, nicht das Modell Lass es uns noch einmal versuchen. Lassen Sie uns sehen, ob das
Problem dadurch gelöst ist. Ja, also aus irgendeinem Grund ist
dies ein eingebettetes Modell, aber automatische Vervollständigung
hat bei mir nicht funktioniert Also Modell einbetten, nicht einbetten. Durch das Einbetten des Modells
werden die Vektoren verändert. Sie können jetzt sehen, dass wir diese Vektoren in den
Standardnamensraum Und Sie können hier den Vektor sehen. Das sind im Grunde nur Werte. Es gibt 3.072
dieser Zahlen hier, und das hat einige Metadaten, Knoteninhalt und Knotentyp, Dokument-ID, Dokument-ID usw. Das sind also im Grunde Vektoren. Wir haben zehn
davon, zehn Vektoren. Das sind Einbettungen. Das ist es. Das hat keine Magie mehr. Wir können
den Index auch abrufen, indem wir diesem Indexmanager
Index abrufen und BLA den Index
abrufen, und wir können auch
die Liste der Artikel drucken , die wir abgerufen haben Sie können jetzt also sehen,
dass es anders ist. Sie können das Video Panda sehen. Eigentlich werden wir hier
einige Änderungen vornehmen , weil
das schwer zu lesen ist. Lass uns sehen. Wir gehen
zum Indexmanager, und hier sagen wir für Papier für Papier in Zeitungen. Drucken Sie einfach die
Papierkachel aus. Füllen Sie die Zeitungen aus. Okay. Also das ist es. Das ist alles, was wir tun müssen. Das wird sich
leider nicht widerspiegeln, weil wir den Kernel neu starten
müssen. Lassen Sie uns also diesen
Indexmanager machen. Es tut uns leid. Und wir werden
nicht holen Nun
ja, lassen Sie uns die Dokumente holen,
aber lassen Sie uns erstellen, lassen Sie uns den Index nicht noch einmal
erstellen Ich werde nur die
Zeitungen auflisten und hier ist es. Das sind die Dokumente
, die wir gerade haben. Was wir jetzt tun werden
, ist, uns zu verpflichten, unseren Fortschritt zu speichern. Fügen Sie den Indexmanager
Pinec hinzu und holen Sie sich Push. Das war's für dieses Video. Hoffe es gefällt dir und lass uns mit der nächsten Lektion
fortfahren.
20. Den Pinecone-Index in der Streamlit-App verwenden: Großartig. Jetzt haben wir unsere
Vektoren in Pine Cone. Wir haben diese Daten,
diese Titel im Pine C. Test. Lassen Sie uns testen, ob
das tatsächlich funktioniert. In unserer Streamlt-App werden
wir also bei der Initialisierung unseres Agenten, anstatt
den Indexmanager zu verwenden, bei der Initialisierung unseres Agenten,
anstatt
den Indexmanager zu verwenden, den
Indexmanager Pinecone verwenden Okay. Also müssen wir den Indexnamen
übergeben , der
Archive research lauten wird. Das ist die einzige Änderung, die
wir vornehmen müssen,
um jetzt die
Daten von Pin C zu bekommen Testen
wir diesen
Streamlt Run Up Punkt PI Mal sehen, was das
Ergebnis jetzt ist. Also werde ich dieses Mal
diese Abfragevorlage verwenden , die wir beim letzten Mal
verwendet haben und die hier ist. Lass uns sehen. Lassen Sie uns das
ersetzen. Ich interessiere mich für mehreren Modellen und Modellen mit
mehreren Modellen. Schauen wir uns also an, ob der Agent in der
Lage
ist, Informationen aus diesem
Tannenzapfenindex abzurufen und die Artikel abzurufen ,
die sich auf multimodale Modelle
beziehen Wenn wir das hier sehen, wo ist das? Ikone. Dies sind die Papiere
von Sprachmodellen. Darin heißt es, dass es
sich hier um einige aktuelle Artikel handelt, die sich
mit multimodalen Modellen befassen. Sprachübersetzung
und -erkennung ohne Ressourcen mit LMS und
Sprachgenerierung in Langform
mit Modellen für gesprochene Sprache Wir haben einen von ihnen.
Wo ist das? Diese eine,
Sprachgenerierung in Langform mit gesprochenen Sprachmodellen, und die andere ist,
wie lautet der andere Name? Sprachübersetzung ohne Ressourcen, Sprachübersetzung
und -erkennung
ohne Ressourcen mit LM. Ich konnte
die Daten erfolgreich von PyCon abrufen .
Ist das nicht aufregend Das ist es. Jetzt haben wir einen Agenten
gebaut, der den Index in der Cloud
speichert. Es ruft das ab und
es funktioniert perfekt. Ich hoffe, dir gefällt diese Lektion
und wir sehen uns in der nächsten.
21. Die App in der Streamlit Community Cloud bereitstellen: Hallo und willkommen zurück. Jetzt
werden wir unsere App in der
gestreamten Community Cloud
bereitstellen Wie Sie auf
der Landingpage sehen können, ist die
Bereitstellung in der Community
Cloud kostenlos. Es ist kostenlos. Sie müssen sich also nur
anmelden, ein Konto erstellen, Ihr GitHub-Konto
verbinden und dann
können Sie das Repo finden Es muss sich in Ihrem
Github-Konto befinden und diese App bereitstellen. Es ist ein sehr, sehr einfacher Prozess. Was ich jetzt
tun werde, bevor das
mache, ist, eine TXT-Datei mit
Anforderungspunkten zu erstellen. Warum? Weil Streamlt
Community Cloud eine Anforderungstextdatei
erwartet , um alle Abhängigkeiten zu installieren Es erkennt
diese PDMT-Protokolldatei nicht, also werden sie es vielleicht in
Zukunft tun, aber vorerst benötigen sie den
Anforderungspunkt PDM hat also diesen Exportbefehl. Wenn Sie das also eingeben, wird
es im Terminal gedruckt
,
aber wir wollen, dass
es in einer Datei ist Also verwenden wir dieses
Größer-als-Zeichen und sagen:
Okay, wir wollen das als Punkttext für die
Anforderungen haben. Wenn Sie also diese Datei öffnen, enthält sie
alle Abhängigkeiten
, die im PDM-Protokoll enthalten sind, allerdings als TXT-Datei mit
dem Punkt „Anforderungen Lassen Sie uns eine
TXT-Datei mit einem Anforderungspunkt erstellen. Lass uns pushen. Und jetzt gehen wir
zur Streamed Community
Cloud zum Dashboard Sobald Sie sich angemeldet haben, melden Sie sich an,
verbinden Sie Ihr
GitHub-Konto und Sie können
auf diese Schaltfläche mit der
Aufschrift App erstellen klicken App erstellen Ich werde diese Option wählen,
nämlich eine
öffentliche App von GitHub bereitzustellen. Also werde ich nach dem
Archivforscher Ripple suchen. Denkt daran, das ist mein Ripple. Ich werde sagen, dass der
Hauptdateipfad App Dot PY ist und dies eine zufällig
gewählte Subdomain ist Ihre Domain wird diese Stream-App
sein. Sie können auf Bereitstellen klicken und schon wird Ihre App
bereitgestellt. Aber das wird
momentan nicht
funktionieren, weil wir der Umgebung neue
Maßstäbe setzen müssen. Denken Sie daran, dass wir
den OpenAI-API-Schlüssel
und den Pine
Hone-API-Schlüssel benötigen , damit dies funktioniert Wenn du zurück gehst, um diesen
Stream Dot IO zu teilen, auf
die Projekteinstellungen klickst und auf Geheim gehst, kannst du hier die Geheimnisse oder die
Umgebungsblasen
festlegen Ich werde das kopieren und phasen, aber Sie müssen das in Anführungszeichen setzen
. Sonst
wird es sich beschweren. Speichern Sie
die Änderungen, und jetzt wird die App mit diesen
Umgebungsblasen
bereitgestellt. Ich werde hier klicken. Wenn
Sie auf diese Verwaltungs-App klicken, werden
Sie sehen, dass sie die Abhängigkeiten
von den Anforderungen
installiert hat. Ich installiere das alles
und Python-Abhängigkeiten wurden von Requirements
Dot TXT installiert, und das war's. Jetzt kannst du
Hallo zum Chat sagen. Da es sich um ein LLM handelt, weiß es , dass es
keine Wissensdatenbank benötigt ,
um auf Hallo zu antworten Jetzt werden wir die
Vorlage verwenden, die wir hier hatten. Aber nur um zu bedenken
, dass Sie das nicht benötigen, können
Sie
mit anderen Vorlagen experimentieren, aber diese ist die, die
gerade funktioniert , also
werde ich sie verwenden. Ich interessiere mich hier für Modelle mit mehreren
Modellen, mehrere Modelle. Mal sehen, ob es das verarbeiten
kann. Ich erwarte, dass hier Protokolle angezeigt werden, aber nicht sicher, warum
sie nicht angezeigt werden. Lassen Sie mich das einfach aktualisieren. Ich werde das kopieren und aktualisieren, nur um zu sehen, dass etwas
dran ist. Ja. Wenn das nicht funktioniert, werde
ich die
App neu starten, um zu sehen, ob das funktioniert. Nun, diesmal hat es funktioniert, aber ich sehe die Protokolle hier nicht. Normalerweise werden die Protokolle hier angezeigt, aber ich bin mir nicht sicher, warum sie gerade nicht angezeigt
werden. Aber wie dem auch sei, es antwortete mit einem der Artikel aus
der Wissensdatenbank. Denken Sie daran, dass diese formlose
Sprachgenerierung mit den
Modellen der gesprochenen Sprache in
der Wissensdatenbank enthalten war .
Das ist es also. Jetzt kannst du diesen Link mit
deinen Freunden teilen und
sie deine App testen lassen. Ich hoffe dir gefällt dieses Video, sehen uns in der nächsten Lektion.
22. Fazit: Herzlichen Glückwunsch zum
Abschluss dieses Kurses. Vielen Dank, dass Sie an
dieser Reise teilgenommen haben, um zu lernen, wie man KI-Agenten erstellt. Sie kennen die Tools, um KI-Lösungen
mit realen Anwendungen zu entwickeln , zu
verbessern und bereitzustellen . Experimentieren Sie weiter,
bleiben Sie neugierig und denken Sie daran, dass die Möglichkeiten
mit KI endlos sind Was sind die nächsten Schritte? Wenden Sie Ihr Wissen auf
reale Projekte an. Das ist die beste Art zu lernen. Teile deine Erfolge und verbinde dich mit der
Community,
lerne weiter und bleibe über die Fortschritte der KI
auf dem Laufenden Ihr Feedback ist wichtig. Bitte nehmen Sie sich einen Moment Zeit, um eine Bewertung abzugeben oder Ihre Gedanken mitzuteilen. Ihr Feedback hilft dabei,
diesen Kurs und zukünftige Inhalte zu verbessern . Vergessen Sie nicht, auf dem Laufenden
zu bleiben. Melde dich mit Fragen, Projektideen oder einfach nur,
um deine Fortschritte zu teilen. Gemeinsam können wir KI
zugänglich machen, und ich bin Teil C.