Werk:AI mit Arnie/Lokaler RAG-Chatbot mit LLama3 & Ollama
In diesem Video sehen wir uns an, wie wir einen lokalen Chatbot erstellen können. Ich habe dir ja schon mal gezeigt, wie man lokale Chatbots verwenden kann, und zwar in LM Studio. In LM Studio kann man natürlich all diese lokalen Chatbots verwenden, z. B. Lama, Mistral, Phy 3 und so weiter. Und man kann die wirklich laufen lassen, man kann die unzensiert laufen lassen, man kann viele, viele verschiedene Dinge machen.
Aber diese LLMs, die haben natürlich ein paar Nachteile. Wir haben nicht all die coolen Features wie von ChatGPT. Wir können diese Modelle z. B. nicht trainieren an unseren eigenen Daten, wir können RAG nicht verwenden in LM Studio. Auch längere Konversationen mit Memory sind nicht wirklich möglich mit diesen Modellen, weil sie ganz einfach sich nicht merken können, worüber wir sprechen.
Das heißt, ja, wir können diese Dinge lokal verwenden, aber sie sind nicht unbedingt richtig praktisch. Will man z. B. einen Chatbot haben für sein eigenes Business, der trainiert ist an Daten, die eventuell sogar heikel sind, das heißt, die niemals rauskommen dürfen, dann ist es erstmal natürlich das alller Allersicherste, lokal zu arbeiten, weil einfach niemand jemals Zugriff haben kann. Auch die API, ja, die sagen uns zwar, dass sie niemals trainieren werden an unseren Daten, aber wer weiß das schon wirklich?
Wer also auf absolut Nummer sicher gehen will, der sollte Open-Source-LLMs verwenden. Und Open-Source-LLMs kann man natürlich mit der RAG-Technologie und mit Memory noch viel, viel besser machen. Deshalb sehen wir uns in diesem Video an, wie wir Ollama in Flowise verwenden, mit RAG und Memory.
Also raus aus LM Studio, und jetzt machen wir erstmal was Witziges. Als Allererstes müssen wir Ollama installieren. Wir geben einfach nur in der Google-Suche "Ollama" ein und klicken auf den ersten Link. Der Link "ollama.com" ist der richtige Link, und hier siehst du schon, dass man jedes LLM lokal laufen lassen kann. Das heißt Lama 3, Phy 3, Mistral, Cheema und so weiter. Wir klicken hier einfach nur auf "Download" und das Ding wird sich runterladen. Das kannst du machen mit Mac, Linux oder Windows. Ich habe das Ding extra nochmal deinstalliert, dann machen wir das zusammen.
Das heißt, wir laden jetzt natürlich das Ding für Windows runter. Sobald das Ding runtergeladen ist, zeigen wir es natürlich im Ordner an, und wir klicken oder machen einfach Doppelklick und installieren das Ding. „Install“ Die Installation geht auch relativ schnell, und sobald das installiert ist, wird das einfach weggehen. Das heißt, es ist weg. Boom! Und das war's. Aber das ist alles kein Problem, das ist jetzt wirklich schon die gesamte Installation. Es wird nichts aufpoppen. Wir müssen Ollama tatsächlich manuell starten. Das heißt, du kannst hier die Dinge zumachen, das wieder zumachen, sogar diese Seite brauchst du nicht mehr.
Du musst den Terminal aufmachen, und dafür klickst du auf die Lupe und du brauchst die Eingabeaufforderung. Du kannst hier auch "Command Prompt" eingeben, wenn du magst, also "Command Prompt". Aber du brauchst die normale System-Eingabeaufforderung. Das Ding sollte so aussehen, sobald du es öffnest. Microsoft Windows, die Version wird dir angezeigt. Also einfach nur die Eingabeaufforderung suchen. Übrigens, du kannst das auch über PowerShell öffnen, also Windows PowerShell, und auch über den Terminal. Es ist relativ egal, womit du es öffnest. Ich würde das einfach über die Eingabeaufforderung machen.
Also die Eingabeaufforderung öffnen einfach, und bitte daran erinnern: Wir haben immer noch Note offen, denn auf Note läuft natürlich immer noch unsere Flowise-Instanz. Das Erste, was wir machen müssen, ist, erstmal ein Modell runterzuladen. Das heißt, wir haben jetzt Lama runtergeladen, und wir klicken jetzt hier mal auf "Models". Dann können wir uns ansehen, was wir hier alles haben. Lama 3 ist natürlich ein richtig, richtig gutes, starkes Modell. Das hat erst vor 11 Tagen ein Update bekommen. Die Dinge, die werden immer Updates bekommen. Danach haben wir hier „Phy 3". Das ist dementsprechend interessant, weil es ein sehr, sehr kleines Modell ist, aber dennoch relativ stark und gut reagiert, tatsächlich.
Ich würde dir raten, dass du einfach ein Modell runterlädst, das für dich optimal ist, und hier kannst du dir die Dinge wirklich raussuchen, die du magst. Das normale Lama 3 Modell, wenn du auf das klickst, dann siehst du, dass du natürlich verschiedene Möglichkeiten hast. Du kannst hier natürlich auch das 70-Billionen-Parameter-Modell verwenden. Ich würde aber sagen, mit dem 8-Billionen-Parameter-Modell bist du richtig gut aufgehoben. Und verwende nicht das Instruct-Modell, weil die Instruct-Modelle, ich sag mal, die sind dumm. Die sind nicht wirklich fein-getunt. Das heißt, du hast viele, viele verschiedene hier, du willst aber das da verwenden: Das 8-Billionen-Modell mit dem neuesten Update. Das ist generell das Einfachste und das Beste, was du machen kannst.
Ich muss dir noch was sagen: Wenn du zurückgehst und du gibst hier "Lama 3" ein, dann findest du auch das da: Lama 3 Dolphin. Das heißt, dieses Modell ist natürlich jetzt ganz, ganz speziell fein-getunt. Das ist wieder keinen Bias hat. Das heißt, du kannst auch das machen, und du kannst auf das "Read Me" runtergehen. Und du siehst, Dolphin ist natürlich unzensiert, hat keinen Bias und antwortet dir einfach alles, was du magst. Es gibt es als 8-Billionen-Modell und als 70-Billionen-Modell. Und das Coolste am Dolphin-Modell ist, dass es 256.000 Token Kontextfenster hat. Das heißt, es ist relativ egal, welches Modell du verwendest. Es ist nur wichtig, dass es nicht zu groß ist für dich.
Ich will hier nochmal kurz zurückgehen. Du siehst hier, wenn du "Lama 3" eingibst, dieses Standard-Lama-3-Modell, das wurde 1,8 Millionen Mal runtergeladen. Das Dolphin-Modell wurde auch oft runtergeladen, 65.000 Mal. Ich verwende für dieses Tutorial einfach das Standard-Lama-3, zwar mit 8-Billionen-Parametern. Und jetzt sehen wir uns an, wie wir das Ding runterladen können und wie wir es laufen lassen können. Also, wir kopieren ganz einfach das da. Das ist jetzt das Lama-3-Modell mit 8-Billionen. Ein richtig starkes, gutes Modell.
Und wir öffnen wieder unseren Terminal. Das heißt, die Eingabeaufforderung. Ich habe die noch hier drüben. Und wir kopieren das hier jetzt rein. Also: "Ollama run Lama 3". Und wir schicken das Ganze ab. Und du siehst, die Dinge werden hier runtergeladen. Wir haben natürlich unser Ollama erst schon runtergeladen und installiert. Das funktioniert jetzt, weil wir Ollama bereits runtergeladen haben. Und du siehst, wenn du hier die Dinge umänderst, z. B. auf das 70-Billionen-Modell, dann wird dieser Prompt natürlich etwas umgeändert bzw. diese Eingabe.
Ich denke, dieses Modell ist wirklich zu stark für die Allermeisten. Wenn du einen Computer hast, der 4.000, 5.000, 6.000 € aufwärts kostet, dann kannst du es auch gerne damit probieren. Aber die Allermeisten sind wirklich mit diesem Modell hier, mit dem 8-Billionen-Parameter-Modell, richtig, richtig gut beraten. Es ist auch nur 4 GB groß, und deshalb hat es auch jetzt schon um fast alles runtergeladen, während ich hier schwafel. Das Ding haben wir jetzt also runtergeladen, und es sollte hier drinnen auch funktionieren.
Ich muss jetzt schon sagen, das brauchst du nur ein einziges Mal machen. Das heißt, dieses Modell läuft dann immer. Und wir fragen uns oder bekommen jetzt die Dinge „Send a message", und wir können das ja einfach mal machen. Ich kann ja z. B. mal "Hallo Lama" sagen: "Hola amigo, it's great to see you. How can I help or entertain you?" „Kannst du auch Deutsch?“ "Ja, ich spreche Deutsch. Was gibt's Neues?" Generell sprechen diese Modelle besser Englisch, aber du siehst, wir haben jetzt Lama laufen, lokal auf unserem Computer. Und das ist natürlich toll.
Jetzt ist es so, wir brauchen natürlich einen Server. Und um einen Server hier anzulegen: Wir könnten das tatsächlich auch in LM Studio machen. Ich hatte ja bei LM Studio schon gezeigt, dass man auch hier einen lokalen Server aufsetzen kann. Also, das funktioniert auch relativ ähnlich. Ich will aber hier alle Möglichkeiten aufzeigen.
Und wir wollen hier jetzt erstmal uns sozusagen ausloggen, und zwar mit "Control+D". Also einfach Steuerung+D. Danach kommt hier das da: "C:\Users\Arnold". Und jetzt müssen wir einen lokalen Server erstellen, den wir danach mit Flowise verbinden können. Und dafür tippen wir einfach nur ein: "Ollama serve". Und das schicken wir ab.
Ich bekomme gerade diesen Fehler, aber das bedeutet einfach nur, dass Ollama bereits läuft, und zwar auf diesem Server. Und das können wir ja einfach mal testen. Wir kopieren einfach mal diese URL und schmeißen das in den Browser und sehen uns an, ob unser Lama läuft. Wenn ich das jetzt abschicke, dann sollte ich bekommen: "Olama is running." Und ganz genau das bekommen wir. "Is running." Also, da Ollama schon gelaufen ist bzw. schon läuft auf diesem Server, würde natürlich alles schon funktionieren. Ich will das hier nochmal schließen, ich öffne sie wieder, also Eingabeaufforderung. Und ich schreibe hier einfach rein: "Ollama serve." Siehst du? Ich bekomme immer diesen Fehler. Das heißt, das Ding läuft hier immer noch.
Wenn du die Sitzung von dieser Eingabeaufforderung beendest, dann kann es sein, dass du Ollama einfach mal laufen lassen musst. Du musst dich nur daran erinnern: Wenn du "Ollama serve" eingibst und du bekommst diesen Fehler, dann ist dieser Fehler absolut nicht schlimm. Dieser Fehler ist sogar zu erwarten, weil dieses Ding halt schon läuft. Und falls es nicht läuft, wird es gestartet.
Jetzt aber zurück in Flowise. Denn Ollama ist running, und zwar auf unserem eigenen Server. In Flowise klicken wir jetzt natürlich bei den Chatflows auf "Add new", und ich würde das Ganze einfach mal speichern, und wir sagen hier "Local Lama". Wir klicken natürlich auf "Plus". Jetzt müssen wir uns mal eine Chain raussuchen. Ich würde sagen, wir nehmen einfach die "Conversational Chain". Denn die passt uns hier natürlich recht gut. Danach nochmal "Plus". Wir brauchen natürlich ein Chatmodell. "Chat Models". Und wir verwenden natürlich Ollama. Das ist das Standard-Ollama. Und Ollama kann mittlerweile auch Function Calling machen. Wir verwenden aber einfach mal das Standard-Olama-Modell hier.
Und du siehst hier das da: „localhost:11434". Und wenn ich nochmal hier zurückgehe auf mein Terminal, dann siehst du auch das da: "11434". Genau dieselbe Nummer. Das heißt, wir sind hier der Host von dieser Sitzung. Natürlich kannst du das Ding auch kopieren, wenn du magst. Wenn wir das kopieren und in einen neuen Chat schmeißen, dann sollten wir auch hier ganz genau "Ollama is running" bekommen. Das passiert hier alles tatsächlich automatisch.
Und rate mal, was wir machen: Wir verbinden Ollama natürlich mit dem Chatmodell. Okay, das Ganze wollen wir natürlich auch immer wieder mal speichern. Und jetzt natürlich "Model Name". Und wir haben natürlich nicht Lama 2 hier laufen, sondern das Ganze ist Lama 3. Wenn du nicht mal weißt, was du laufen hast, geh nochmal zurück und sieh dir an, wie das Ding heißt. Es heißt also Lama 3. Es ist das 8-Billionen-Modell. Aber Lama 3 alleine reicht uns vollkommen aus hier in Flowise.
Die Temperatur, die kannst du lassen, wie sie ist. Du kannst sie auch runtersetzen, meinetwegen auf 0,5, wenn du magst. Jetzt sollten wir hier tatsächlich schon die ersten Antworten bekommen. Aber du siehst noch das da: Memory. Natürlich, wir brauchen auch Memory, damit sich das Ding an uns erinnern kann. Denn es ist ja eine Conversational Chain. Das heißt, das Modell muss sich daran erinnern, was wir vorher gefragt haben. Dementsprechend klicken wir hier auf "Plus". Wir gehen runter zu Memory, und jetzt können wir natürlich eine Memory mit einfügen. Und ich denke, die Buffer Memory passt uns hier schon relativ gut.
Du kannst mit allen Dingen spielen. Die Buffer Memory, die verbinden wir jetzt natürlich mit dieser Memory. Und jetzt haben wir hier schon einen minimalen Chatbot laufen. Dieser Chatbot hat natürlich noch die RAG-Technologie nicht integriert, aber der Chatbot sollte funktionieren. Das heißt, ich klicke hier mal darauf und sage: "Hey Lama". Natürlich bitte speichern, bevor wir die Dinge probieren. Ich war hier tatsächlich zu dumm. Jetzt aber: "Hey Lama." "Hello there." Natürlich spricht das Ding jetzt erstmal Englisch, aber das passt schon. "My name is Arnie.“ „Nice to meet you Arnie“, „what is your name?" "My name is Lama.“ „Can you remember my name?" Und das Ding sollte eigentlich wissen, wie ich heiße. "Ja, sehr gut."
Wie gesagt, wir können hier auch Deutsch sprechen, aber die Modelle sind halt in Englisch etwas besser. Und ja, ich gehe davon aus, dass auch die Open-Source-Modelle besser werden in Deutsch. Die Dinge sollten nachziehen. "Kannst du Deutsch?" "Ja, ich kann Deutsch.“ „Bitte antworte komplett in Deutsch." "Gerne, Arnie. Ja, ich kann Deutsch und bin bereit, mit dir in deiner Muttersprache zu chatten. Ich werde mein Bestes tun, um deine Fragen und Kommentare zu beantworten.… Wie läuft’s Arni?“ Also, das Ding ist schon relativ gut, muss man sagen. Die Open-Source-Modelle, die ziehen natürlich immer weiter nach.
Wie machen wir jetzt aber einen richtigen RAG-Chatbot daraus? Vielleicht hat der ein oder andere schon aufgepasst: Wir brauchen natürlich eine andere Chain. Also lösche ich erstmal diese Chain. Wir klicken nochmal auf "Plus". Wir wollen bei den Chains natürlich jetzt das da verwenden: Die "Conversational Retrieval Q&A Chain". Also wir können auch Dokumente und so weiter alles einfügen. Das heißt, wir schmeißen das Ding rein. Wir verbinden es natürlich wieder mit dem Chatmodell. Auch eine Memory will ich hier einbauen. Das heißt, wir verbinden hier die Memory.
Und jetzt brauchen wir natürlich einen Vector Store Retriever, damit wir das Ding trainieren können an unseren eigenen Daten. Wir klicken "Plus", wir suchen uns natürlich wieder die Memory raus. Wir suchen uns natürlich wieder den Vector Store raus. Wir haben hier natürlich viele verschiedene Vector Stores, und die Dinge funktionieren eigentlich alle gleich oder alle relativ ähnlich. Bei den Vector Stores solltest du darauf achten, dass du nicht die „deprecated“ Dinge verwendest, diese sind veralteten. Also such dir die neuen Dinge raus.
Hier kannst du viele, viele verschiedene Vector Data Stores tatsächlich verwenden. Eines der Einfachsten ist natürlich die InMemory Vector Store. Die können wir natürlich reinziehen, aber du kannst natürlich jede Vector Store reinziehen, die du magst. Generell ist auch Pinecone cool. Das heißt, wenn du hier Pinecone reinholst, dann musst du dir aber auch einen Pinecone-Index holen, einen Pinecone-API-Key. Ich will das hier so einfach wie möglich lassen, so schnell wie möglich. Deshalb suchen wir uns hier eine Vector Store, wo wir keinen API-Key brauchen. Und das sollte diese InMemory Store sein.
Das heißt, wir brauchen hier keinen wirklichen API-Key. Alles, was wir machen müssen, ist natürlich, das Ding hier zu verbinden. Aber wir brauchen natürlich auch die Embeddings. Das heißt, wir müssen natürlich unsere Daten auch so zerstückeln, Embeddings-Modelle daraus machen, dass sie die Vector-Datenbank lesen können. Das heißt, wir suchen uns jetzt die Embedding-Modelle raus. Dafür klicken wir natürlich wieder auf "Plus". Du erinnerst dich natürlich noch, was Embeddings sind, sobald wir RAG durchgemacht haben. Wir suchen uns die Embeddings raus.
Und wir brauchen jetzt natürlich auch nicht die Open Embeddings, sondern wir brauchen die Ollama Embeddings. Also ziehen wir die Ollama Embeddings hier rein, und wir verbinden die Embeddings hiermit bup, natürlich wieder mit dem Localhost. Das heißt, das Ganze läuft lokal, auch das wird hier natürlich gratis sein. Dementsprechend: Model Name ist natürlich wieder Lama 3.
Bei zusätzlichen Parametern bekommen wir noch etwas wie "use mmap". Ich habe die Erfahrung gemacht, dass es besser funktioniert, wenn man das aktiviert. Ist es unbedingt nötig? Nein, aber ich würde es einfach mal aktivieren und damit rumspielen.
Jetzt müssen wir natürlich Dokumente hochladen. Und was machen wir, wie immer? Wir klicken "Plus", wir suchen die Dinge raus, die wir brauchen. Und natürlich brauchen wir Document Loaders. Und du kannst natürlich verwenden, was du willst. Du kannst sogar einen API-Loader hier mit reinnehmen und du könntest das verbinden mit verschiedenen APIs. Du könntest den Cheerio-Webscraper verwenden und könntest das verbinden mit gewissen Webseiten. Und genau das mache ich jetzt. Sagen wir, du bist ein Unternehmen, und du hast eine Webseite, und du willst die Dinge von deiner Webseite hier reinziehen in diesen Bot.
Natürlich könntest du auch CSV-Files nehmen und die Dinge reinziehen, aber ich will das einfach mal machen. Ich gehe davon aus, dass du eine Webseite hast, und du willst die Informationen von deiner Webseite mit deinem lokalen RAG-Chatbot verwenden. Wie gesagt, such dir einfach die Dinge raus, die du hier verwenden willst. Das heißt, ich nehme das Ding hier. Natürlich werden wir die Dokumente jetzt verbinden, hier mit den Dokumenten. Jetzt kommt es natürlich darauf an, wie groß deine Webseite ist. Denn du könntest das natürlich noch verbessern, indem du einen Textsplitter einbaust. Du siehst hier den Textsplitter. Natürlich wieder "Plus", Textsplitters. Kommt darauf an, was du alles hast.
Also, du könntest einen Textsplitter einbauen, wenn du magst. Du weißt natürlich noch, wir können solche gewissen Chunks hier machen. Wenn du z. B. sowas reinziehst, dann kannst du die Chunk-Size angeben und den Chunk-Overlap. Also kannst du natürlich auch das hier verbinden mit dem Textsplitter. Wie gesagt, das ist jetzt nicht mehr unbedingt nötig. Diese Chain, die könntest du auch löschen, wenn du magst. Ich lasse sie einfach mal dabei.
Was aber wichtig ist, ist natürlich, dass du eine URL eingibst. Ich verwende einfach mal die Webseite von OpenAI, von der Dokumentation. Das sind nur diese paar Zeilen hier, aber ich verwende einfach mal diese Webseite. Das könnte natürlich im Optimalfall deine Webseite sein. Ich schicke das Ganze hier rein bzw. kopiere es rein. Jetzt speichern wir das Ganze. Und jetzt haben wir theoretisch unseren Chatbot.
Ich zeige dir nochmal, was die ganzen Dinge machen, und mache es etwas hübscher. Wir haben unsere "Conversational Retrieval Q&A Chain". Mit dieser Chain haben wir verbunden unser Lama, das lokal läuft über unser Eingabefeld, über diesen Server. Der Server ist natürlich dieser Localhost. Das Modell ist Lama 3. Die Temperatur ist 0,5. Zusätzlich haben wir die Memory eingebaut, damit wir uns länger unterhalten können. Wir haben hier den InMemory Vector Store.
Damit die Memory Vector Store besser funktioniert, brauchen wir die Embeddings. Du erinnerst dich noch, was die Embeddings-Modelle sind. Die Embeddings-Modelle die splitten einfach nur deine Eingaben in die Dinge, dass sie besser in der Vector-Datenbank gespeichert werden können, für jeden, der es nicht mehr weiß.
Danach brauchen wir natürlich auch Dokumente, die in unserer Vector-Datenbank gespeichert werden. Z. B. die URL von dieser Webseite, das könnte deine Webseite sein. Und noch einen Textsplitter. In diesem Fall ist der Textsplitter Overkill, den würden wir nicht brauchen, da diese Webseite nicht besonders groß ist. Also könnte ich den natürlich auch löschen, wenn ich mag, aber ich lasse das einfach mal dabei.
Wir klicken auf "Speichern", und jetzt sollten wir uns mit Lama unterhalten können. Ich lösche ganz einfach mal diesen Chat hier raus. Wir klicken drauf, und ich sage hier erstmal: "Hey, ich bin Arnie." Denn das Ding sollte sich im Optimalfall an uns erinnern. "Hallo Arnie, wie kann ich helfen?" Ich will jetzt etwas fragen, das direkt von der OpenAI-Webseite kommt. Was frage ich hier? "Welche Textgeneration-Modelle hat OpenAI?" "Welche Textgeneration-Modelle hat OpenAI?" Und wir sollten hier die Antworten bekommen. Und ich denke, diese Antworten kommen aus der Dokumentation.
"Hat OpenAI Assistance?" Das ist tatsächlich etwas Neues. Also, Lama ist auf alle Fälle nicht daran trainiert. Denn an den anderen Text könnte Lama tatsächlich auch trainiert sein. "Ja, OpenAI hat ein Tool namens Assistance. Erinnere dich daran." Wir sollten natürlich sagen, er soll Deutsch sprechen, wenn dieser Roboter Deutsch mit uns sprechen sollte. Denn wie gesagt, die Default-Settings sozusagen sind hier einfach Englisch.
Um dir zu zeigen, dass wir den Textsplitter nicht unbedingt brauchen, kann ich den auch rauslöschen. Tatsächlich. Ich klicke nochmal "Speichern", und wir könnten nochmal was fragen. Wir fragen einfach mal: Wie viele ein Token in englischen Wörter sind. "Wie viel ist ein Token in etwa als englisches Wort?" Und wir bekommen hier die super gute Zusammenfassung. Also, eigentlich sollte alles perfekt funktionieren. Was ich noch nicht genau weiß, ist natürlich, ob das Ding immer noch weiß, wie ich heiße. "Arnie?" "Sehr gut." Also, das Ding merkt sich, wie ich heiße, wegen unserer Memory.
Es verwendet unser Lama, das lokal ist. Es hat den Vector Data Store hier, in dem natürlich die Embeddings gemacht werden mit Lama, das wir lokal laufen haben. Und zwar von der Webseite von OpenAI, von dieser Dokumentation.
Noch eine wichtige Zwischeninformation: Sollte es Probleme geben, gerade beim Durchsuchen von dieser Vector-Datenbank, dann klickt man hier oben drauf und man klickt natürlich "Upsert". Das heißt, wir werden genau diese Dinge jetzt in die Vector-Datenbank hochladen. Man kann auch "Show API" klicken, und du siehst, was hier passiert. Wir klicken jetzt "Upsert". Jetzt sollte das Ganze passen. Nochmal kurz speichern, und wir können natürlich nochmal fragen und uns sicher gehen, ob wir auch wirklich die Informationen der Webseite bekommen.
"Was sind Assistance von OpenAI?" Und du siehst, hier bekommen wir jetzt wirklich die Dinge, die auch auf der OpenAI-API-Webseite gelistet sind. Das heißt: "Conversational Understanding", "Knowledge Retrieval" und "Idea Generation". Du siehst, wir bekommen hier wirklich die Dinge, die auch auf der OpenAI-Webseite ganz, ganz genauso gelistet sind. Also, generell ein Chatbot, der lokal läuft, der nützlich ist. Und wenn du z. B. ein Unternehmen hast, du willst einen lokalen Chatbot haben, der aber auch die RAG-Technologie verwenden kann, dann solltest du so oder so ähnlich vorgehen.
Und diese Tools, die können mittlerweile sogar Function Calling machen. Das weißt du natürlich auch. Wenn du auf die Chat-Models gehst, dann siehst du, dass wir hier natürlich auch "Chat Ollama Function" haben. Das heißt, das neueste Ollama, das kann natürlich auch Function Calling machen – mittlerweile. Das heißt, wir könnten auch hier, wenn wir das da z. B. reinziehen, natürlich Tools hinzufügen und verschiedenste andere Dinge. Da auch dieses Modell mittlerweile Function Calling machen kann. Aber ich bin der Meinung, beim Function Calling sollten wir einfach die Assistant-API verwenden, weil diese besser funktioniert.
In diesem Video hast du gelernt, wie du einen lokalen RAG-Chatbot laufen lassen kannst, der komplett privat ist, komplett sicher. Den du an Texts bzw. sogar Webseiten und an allen trainieren kannst, mit der RAG-Technologie, die du nur willst. Wir brauchen Memory, damit sich das Ding erinnert, wer wir sind, worüber wir gesprochen haben. Wir brauchen eine Vector-Datenbank, wir brauchen die Embedding-Modelle, eventuell noch einen Textsplitter. Und das Ding läuft. Natürlich können wir das auch als Standalone-App verwenden. Wir müssen nicht unbedingt hier drinnen arbeiten. Das zeige ich dir natürlich später noch etwas genauer.