Einen KI-Agenten erstellen (OpenAI, LlamaIndex, Pinecone und Streamlit) | David Armendariz | Skillshare

Playback-Geschwindigkeit


1.0x


  • 0.5x
  • 0.75x
  • 1x (normal)
  • 1.25x
  • 1.5x
  • 1.75x
  • 2x

Einen KI-Agenten erstellen (OpenAI, LlamaIndex, Pinecone und Streamlit)

teacher avatar David Armendariz

Schau dir diesen Kurs und Tausende anderer Kurse an

Erhalte unbegrenzten Zugang zu allen Kursen
Lerne von Branchenführern, Ikonen und erfahrenen Experten
Wähle aus einer Vielzahl von Themen, wie Illustration, Design, Fotografie, Animation und mehr

Schau dir diesen Kurs und Tausende anderer Kurse an

Erhalte unbegrenzten Zugang zu allen Kursen
Lerne von Branchenführern, Ikonen und erfahrenen Experten
Wähle aus einer Vielzahl von Themen, wie Illustration, Design, Fotografie, Animation und mehr

Einheiten dieses Kurses

    • 1.

      Einführung

      1:46

    • 2.

      Einrichten der Entwicklungsumgebung

      15:19

    • 3.

      Einen OpenAI-API-Schlüssel erhalten

      3:16

    • 4.

      LlamaIndex und RAG verstehen

      3:39

    • 5.

      Was sind Agenten?

      5:04

    • 6.

      Vektor-Einbettungen

      2:37

    • 7.

      Ein Tool zum Abrufen von Papiere aus arXiv erstellen

      8:11

    • 8.

      Ein Tool zum Herunterladen von Papiere erstellen

      3:48

    • 9.

      Die Einbettungs- und LLM-Modelle definieren

      3:40

    • 10.

      Den Index erstellen und lokal speichern

      11:55

    • 11.

      Das RAG-Abfrage-Engine-Tool erstellen

      10:33

    • 12.

      Aufbau und Interaktion mit dem Agenten

      9:03

    • 13.

      Herunterladen der Papiere und Abrufen neuer Papiere

      5:15

    • 14.

      Die Aufforderung zum Herunterladen von Dateien verbessern

      7:39

    • 15.

      Eine Klasse zur Verwaltung des Index erstellen

      6:13

    • 16.

      Einen Kurs für die Interaktion mit dem Agenten erstellen

      4:53

    • 17.

      Eine Chat-UI mit Streamlit erstellen

      13:34

    • 18.

      Einen API-Schlüssel von Pinecone erhalten

      3:09

    • 19.

      Einen Indexmanager für Pinecone erstellen

      11:29

    • 20.

      Den Pinecone-Index in der Streamlit-App verwenden

      2:42

    • 21.

      Die App in der Streamlit Community Cloud bereitstellen

      5:31

    • 22.

      Fazit

      0:53

  • --
  • Anfänger-Niveau
  • Fortgeschrittenes Niveau
  • Fortgeschrittenes Niveau
  • Jedes Niveau

Von der Community generiert

Das Niveau wird anhand der mehrheitlichen Meinung der Teilnehmer:innen bestimmt, die diesen Kurs bewertet haben. Bis das Feedback von mindestens 5 Teilnehmer:innen eingegangen ist, wird die Empfehlung der Kursleiter:innen angezeigt.

501

Teilnehmer:innen

1

Projekte

Über diesen Kurs

Bist du bereit, in die Welt der KI einzutauchen und leistungsstarke Agenten mit modernsten Tools zu erstellen? Dieser Kurs wurde entwickelt, um dich von null zu einem Helden beim Aufbau intelligenter KI-Agenten mit OpenAI, LlamaIndex, Pinecone und Streamlit zu bringen. Egal, ob du ein Anfänger in der Erforschung von KI bist oder ein erfahrener Entwickler, der seine Fähigkeiten erweitern möchte, dieser Kurs bietet alles, was du brauchst, um interaktive, reale KI-Anwendungen zu erstellen.

Was du lernen wirst:

  • Die Verwendung der OpenAI-API, um intelligente Antworten zu generieren.

  • Aufbau und Verwaltung von Wissensindizes mit LlamaIndex.

  • Vektor-Einbettungen mit Pinecone für effiziente KI-Suchen.

  • Interaktive Benutzeroberflächen für deine KI-Agenten mit Streamlit erstellen

  • Best Practices für die Integration dieser Tools zur Erstellung skalierbarer KI-Lösungen.

Warum diesen Kurs?

Die Nachfrage nach KI-basierten Anwendungen steigt in die Höhe, und das Verständnis für die Erstellung von KI-Agenten ist eine bahnbrechende Fähigkeit. Dieser Kurs bietet praktische, praktische Erfahrungen mit realen Anwendungsfällen. Am Ende hast du einen voll funktionsfähigen KI-Agenten entwickelt, der bereit ist zu implementieren und zu präsentieren.

Für wen dieser Kurs ist:

  • Entwickler und Ingenieure, die sich für KI und maschinelles Lernen interessieren.

  • Datenwissenschaftler, die KI-basierte Tools erkunden möchten

  • Unternehmer und Innovatoren, die KI-basierte Anwendungen entwickeln möchten.

  • Studenten und Profis, die praktische Erfahrung in der KI-Entwicklung suchen.

Jetzt Mitglied werden und das Potenzial von KI-Agenten in deinen Projekten entfesseln!

Triff deine:n Kursleiter:in

Teacher Profile Image

David Armendariz

Kursleiter:in

Hi! My name is David Armendariz. I am from Ecuador.

I studied mathematics at USFQ (Universidad San Francisco de Quito). However, I love coding and that's why I transitioned to the software industry. I love to share my knowledge here in Skillshare.

I hope you enjoy my courses as much as I enjoy doing them and remember: never stop learning!

Vollständiges Profil ansehen

Level: Beginner

Kursbewertung

Erwartungen erfüllt?
    Voll und ganz!
  • 0%
  • Ja
  • 0%
  • Teils teils
  • 0%
  • Eher nicht
  • 0%

Warum lohnt sich eine Mitgliedschaft bei Skillshare?

Nimm an prämierten Skillshare Original-Kursen teil

Jeder Kurs setzt sich aus kurzen Einheiten und praktischen Übungsprojekten zusammen

Mit deiner Mitgliedschaft unterstützt du die Kursleiter:innen auf Skillshare

Lerne von überall aus

Ob auf dem Weg zur Arbeit, zur Uni oder im Flieger - streame oder lade Kurse herunter mit der Skillshare-App und lerne, wo auch immer du möchtest.

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.