Werk:AI mit Arnie/Unser erster KI-Agent
In diesem Video bauen wir tatsächlich schon unseren ersten Agenten, und wir machen das bis jetzt noch so einfach wie möglich.
Ich zeig dir kurz, was wir in etwa bauen wollen: Wir wollen unseren Boss haben, wie du es eigentlich schon mal gesehen hast. Und der Boss soll vielleicht so zwei Arbeiter weiter haben. Das heißt, das Ganze wird jetzt so einfach wie möglich. Auf das Function Calling verzichten wir bis jetzt noch. Das heißt, unsere Arbeiter, die werden keinen Internetzugriff haben, keine Python Bibliotheken oder was auch immer.
Wir machen das jetzt so einfach wie möglich. Wir brauchen unseren Boss. Den Boss verbinden wir mit zwei Arbeitern, und der Boss sagt danach den Arbeitern, was sie zu machen haben. Natürlich brauchen wir auch ein Chatmodell.
Das Ganze sieht danach in etwa so aus, dass wir das Chatmodell verbinden mit dem Boss, und der Boss verwendet danach dasselbe Chatmodell wie auch die Arbeiter. Und die, die werden danach für uns die Aufgaben ausführen. Und ich zeig dir, wie das läuft.
Ich kann das hier natürlich schließen. Wir sind zurück im Flowise. Wir gehen auf die Agent Flows. Wie gesagt, es geht hier um Agenten und nicht um einfache Chatbots. In Flowise kann man auch einfache Chatbots machen, aber es geht um Agenten.
Wir klicken auf „Add New“, wir klicken auf „+“, und jetzt starten wir natürlich mit dem Supervisor. Der Supervisor ist hier unser Chef. Danach klicken wir wieder auf „+“, und wir brauchen einen Arbeiter. Und der erste Arbeiter, der ist natürlich noch etwas schwach, nur einen Arbeiter zu haben. Dementsprechend brauchen wir natürlich einen zweiten.
Und jetzt machen wir das Ganze so, dass wir den Chef, also den Supervisor, verbinden mit dem ersten Arbeiter. Und jetzt siehst du auch, wo diese Dinge andocken. Diese Dinge docken immer nur dort an, wo sie funktionieren. Wenn du die Dinge wieder lösen willst, klickst du hier drauf.
Das heißt, den Supervisor, den kann ich z. B. nicht hier unten andocken, sondern hier oben, muss ich ihn andocken. Ich könnte ihn auch hier andocken. Es ist einfach nur wichtig, dass du dort andockst, wo es anzudocken geht. Dementsprechend: Supervisor muss hier angedockt werden.
Und du weißt, alle Dinge, die rot sind, die musst du ausfüllen. Dementsprechend muss unser erster Arbeiter auch einen Namen haben und hier unten einen Worker Prompt.
Lass uns zuerst aber noch den Supervisor verbinden mit dem zweiten Arbeiter. Und du weißt natürlich, ein Supervisor und eins, zwei Arbeiter, die sind ja generell ganz cool. Aber du siehst hier vorher noch Folgendes: Supervisor Name: „Supervisor“. Das ist schon okay. Wir können das Ding auch „Boss“ heißen. Also, es ist völlig egal, wie du das Ding heißt. Supervisor passt schon.
Aber du siehst, es ist wichtig, dass wir noch ein Tool Calling Chatmodell verwenden. Auch das ist rot markiert. Und du gehst hier drüber, und du siehst das da: Du brauchst ein Modul, das auch Function Calling erlaubt. Sonst ist es nicht kompatibel mit diesem Supervisor.
ChatOpenAI, ChatMistral, ChatAnthropic, ChatGoogle Generative AI, GroqChat sollten hier tatsächlich gut funktionieren. Und die GPT-4-Modelle so gut wie am besten.
Das heißt, klickst du hier „+“, dann können wir natürlich als Nächstes auf die Chatmodelle gehen. Und die Chatmodelle haben wir hier. Und wir arbeiten jetzt tatsächlich mit dem vorgeschlagenen Tool, nämlich mit ChatOpenAI. Ich muss hier dazu sagen, auch wenn es nicht steht: Ollama funktioniert auch. Das sehen wir uns danach noch an.
Also müssen wir auch ChatGPT hier reinschmeißen, ChatOpenAI Modell. Dieses Modell müssen wir jetzt verbinden, hier oben. Und eigentlich haben wir jetzt schon die meisten Dinge mit dabei: Supervisor, das Chatmodell und unsere zwei Arbeiter.
Jetzt wollen wir aber die Prompts für die Arbeiter schreiben. Und wir machen das jetzt für diesen einzelnen Test so einfach wie möglich.
Der erste Arbeiter: Lassen wir das einfach mal einen kreativen Schreiber sein. Das heißt, unser erster Agent heißt „Kreativer Schreiber“. Wir machen das groß. Was soll der kreative Schreiber machen? Das müssen wir hier jetzt festlegen. Ich mache das so einfach wie möglich. Die Prompts sind noch nicht gut. Ich zeig dir dann noch, wie wir bessere Prompts machen. Ich will einfach mal irgendwas haben, dass du testen kannst: Du bist ein kreativer Schreiber. Deine Aufgabe ist es, Kindergeschichten zu machen von verschiedenen Tieren. Die Geschichten sollen 800 Wörter lang sein.
Geschichten schreibe ich hier klein, weil es mich überhaupt nicht interessiert. Und auch das LLM interessiert sich nicht wirklich für Rechtschreibung. Das Ding sieht ja Token und nicht Wörter.
Dementsprechend klicke ich „Save“.
Und was macht jetzt mein zweiter Arbeiter? Titelgenerator. Ich mache das Ding groß, und jetzt schreibe ich hier sowas rein: Deine Aufgabe ist es, … Deine Aufgabe ist es, dir die Geschichte vom kreativen Schreiber anzusehen und acht Titel zu machen, die gut funktionieren und SEO-technisch optimiert sind.
SEO steht für Search Engine Optimization. Das bedeutet, wenn man eine solche Geschichte z. B. auf Google posten würde, dann sollten wir Stichwörter enthalten haben.
Ich klicke jetzt „Save“. Vielleicht könnten wir den ersten Prompt noch etwas umschreiben. Am Ende könnten wir noch sowas dazuschicken: „Deine Geschichte sendest du an den Titelgenerator weiter.“ Und das war’s.
Also, wie gesagt, das ist hier jetzt wirklich sehr, sehr schlecht gewählt. alles. Schlechte Prompts, nicht einen guten Anwendungszweck. Aber das Ganze ist einfach.
Damit das läuft. Brauchen wir jetzt API Keys von OpenAI. Ich will ganz, ganz kurz sagen, was ein API Key ist. Du kennst ja ChatGPT. Wenn du dort Text eintippst, dann bekommst du natürlich deine Antworten zurück. Das ist natürlich nur das normale Interface. Wir können als Entwickler auch ChatGPT verwenden und zwar nicht im Interface von ChatGPT. Und dafür brauchen wir einen API Key.
Wir machen eine sogenannte „API Request“ an OpenAI, und sie leihen uns sozusagen das Modell aus. Das heißt, wir gehen ganz einfach zu OpenAI, stöpseln dort an und bekommen die Antworten von OpenAI. Das ist hier die einfachste Erklärung.
Dafür gehen wir einfach mal auf Google, und wir tippen Folgendes ein: OpenAI Playground. Und wir klicken natürlich auf den Playground. Und hier drinnen können wir jetzt unsere API Keys machen. Bevor wir das machen, ist Folgendes wichtig: Du klickst auf deinen Namen, und du gehst auf dein Profil. Auf deinem Profil musst du jetzt auf „Billing“ klicken. Und bei Billing ist es wichtig, dass du hier Geld aufgeladen hast. Ja, API Requests sind leider Gottes nicht gratis.
Ich will hier jetzt mal kurz zeigen, was API Requests in etwa kosten. Hier bei OpenAI, beim Pricing, wird uns Folgendes aufgezeigt: GPT-4 Omni ist aktuell das beste Modell. Wahrscheinlich gibt es ein neues Modell, sobald du dir das ansiehst. Aber beim Pricing sehen wir Folgendes: 5 Dollar für 1 Million Input Tokens und 15 für 1 Million Output Tokens. Es gibt noch die sogenannte Batch API, über die will ich aktuell nicht sprechen. Aber du siehst, das Ganze ist noch günstiger: 5 bis 15 Dollar. Nimmst du hier einen Mittelwert von Input und Output, dann bist du bei 10, wahrscheinlich ist der Output etwas größer, also 11, 12 Dollar für 1 Million Tokens.
Und du weißt natürlich noch, was 1 Million Tokens ungefähr sind: 750.000 Wörter. Das heißt, du kannst viel generieren. Klickst du hier auf das da „Show Price per 1000 Tokens“, dann siehst du, was es in etwa kostet, wenn du 750 Wörter generierst. 750 Wörter kannst du für ein bis zwei Cent generieren. Du siehst, das ist also relativ günstig. Dementsprechend, wie gesagt, du musst hier Geld aufladen. Dafür klickst du auf „Payment Methods“, und hier klickst du „Add Payment Method“.
Leider brauchst du eine Kreditkarte. Du musst eine Kreditkarte hinterlegen. Einige Leute können das auch ohne Kreditkarte machen. Dafür kannst du eine sogenannte virtuelle Kreditkarte machen. Ich würde dir aber generell empfehlen, wenn du irgendwas entwickeln willst, dann brauchst du nun mal eine Kreditkarte. Die allerallermeisten amerikanischen APIs, die wollen eine Kreditkarte, zumindest da, wo wir bezahlen müssen. Es lohnt sich auf alle Fälle, wenn du versuchst, mehr Dinge zu entwickeln. Dann ist es das Einfachste, wenn du eine Kreditkarte hast, tatsächlich.
Dementsprechend, wir können jetzt wieder zurückgehen auf dieses Dashboard. Das da ist übrigens der Playground. Auch hier drinnen läuft ChatGPT auch. Hier könntest du Prompts absenden. Das wissen viele, um ehrlich zu sein, gar nicht. Aber wir brauchen jetzt die API Keys.
Und bei den API Keys klicken wir einfach nur hier oben „Create New Key“. Und wir nennen das Ding jetzt einfach mal „Flowise“. Wir klicken jetzt „Create Secret Key“. Und das da ist jetzt unser API Key von Flowise.
Auf diesen Key solltest du aufpassen. Wenn andere Leute den Key sehen, dann können sie auf deinen Account zugreifen bzw. deine Tokens aufbrauchen, und du bezahlst dafür. Und das wollen wir nicht. Wir klicken „Copy“. Ich lösche diesen Key natürlich nach dem Kurs wieder raus, damit den niemand verwenden kann.
Wir gehen zurück in Flowise. Und jetzt müssen wir die Credentials eingeben. Dementsprechend klicken wir hier. Ich habe schon einige Credentials, aber ich mache neue Credentials. Wir nennen das jetzt einfach mal „Flowise Test“. Und danach geben wir hier OpenAI Key. Wir müssen das jetzt hier eingeben. Du siehst, ich habe hier schon Keys laufen. Aber das macht nichts. Ich klicke jetzt „Add“.
Und jetzt müssen wir noch das Modell verwenden, das wir gerne haben. Ich empfehle dir wirklich, GPT-4 Omni zu wählen. Das ist das beste Modell. Die Temperatur – also es geht hier um kreatives Schreiben – die können wir ruhig mal auf 1 hochsetzen, z. B. 0,9 hätte auch funktioniert. Ich will jetzt das ganze Ding einfach mal auf 1 lassen.
Jetzt müssen wir „Speichern“ klicken. Und wir nennen den ganz einfach mal „Storyteller Kinder“, meinetwegen. Ich klick jetzt „Save“.
Und wenn du hier jetzt draufklickst, dann kannst du mit dem Ding sprechen. Wir können das auch groß machen. Wir könnten z. B. sowas reinschreiben: „Katze“. Wir schicken jetzt „Katze“ los.
Und jetzt wird unser Supervisor getriggert. Der Supervisor sagt: „Write the story or descriptive passage involving a cat.“ Diese Aufgabe schickt er an den kreativen Schreiber. Und der kreative Schreiber wird sich jetzt auf den Weg machen und eine Geschichte zu einer Katze schreiben. Und schwups, da haben wir die Katzengeschichte. Die ist relativ lang, mit 800 Wörtern. Und du siehst, es geht hier schon los. Ich scroll nach oben, damit wir das besser sehen können.
Also: Eine 800 Wörter lange Geschichte von einer Katze. Weil wir das natürlich schon spezifisch im Prompt vorgegeben haben. Und die Geschichte, auf den ersten Blick sieht sie gut aus. „Es war mal in einem kleinen, gemütlichen Dorf namens Schnurhausen, wo eine Katze namens Mia lebte.“ Also, in Schnurhausen lebt die Katze namens Mia. Du kannst dir das selber durchlesen, wenn du willst.
Diese Geschichte hat jetzt im Output in etwa ein bis zwei Cent gekostet, gehe ich in etwa davon aus. Danach scrollen wir runter. Die Geschichte ist relativ lang.
Danach wurde wieder der Supervisor getriggert. Und der Supervisor macht jetzt das da: „Generate a captivating and appropriate title for Mia’s the cat adventure with friends“ und so weiter. Und der Titelgenerator ging jetzt her und machte mir natürlich meine acht verschiedenen Titel:
- Mia und die magische Glocke
- Ein Abenteuer in Schnurhausen
- Die Freundschaft der Tiere
- Wie Mia und ihre Freunde die Glocke fanden
- Mia, die neugierige Katze
- Eines Tages in Schnurhausen
- …
Also, du siehst, wir haben acht Titel. Danach geht der Supervisor noch mal her und sagt „Finish“. Und hier noch mal die Titel. Alles hat perfekt geklappt. Wenn wir das jetzt nicht mehr haben wollen, können wir „Clear Chat“ klicken. Also „Clear“. Wir könnten jetzt noch mal losgehen, z. B. mit einem Hund, mit einem Igel, mit was weiß ich. Aber ich denke, das Konzept ist dir jetzt bekannt.
Was haben wir hier jetzt also gemacht? Wir haben den Boss, und der Boss sagt ganz einfach den Arbeitern, was sie zu tun haben. Das müssen wir auch in den Prompts reinschreiben. Der Boss triggert als erstes natürlich den kreativen Schreiber. Sobald der alles erledigt hat, geht der nächste Arbeiter her, der Titelgenerator. Und wird Titel machen von diesem Typen hier.
Jetzt ist es wichtig, dass das der einfachste KI-Agent ist, den du nur machen kannst. Wir können hier wirklich ganz, ganz viele Nodes einfügen. Wir können Tools einfügen. Wir können interessante Dinge machen. Und darum geht es natürlich in den nächsten Videos. Wir können verschiedene LLMs hinzufügen. Wir können, wie gesagt, wahnsinnig viel machen. Aber das ist der erste Agent.
Und ich hoffe, du hast das Ganze mitgemacht. Und so kannst auch du diese Dinge tatsächlich haben.
Ich will jetzt noch sofort anmerken: Wieso ist es eigentlich wichtig? Also, wir könnten ja auch z. B. nur einen Agenten haben. Und bei diesem Agent, wir würden einfach nur den alleine sagen: „Kreiere eine Geschichte und danach acht Titel.“ Aufgepasst: Es wurde sogar durch Studien bewiesen, dass wir durch dieses System Prompts das LLM besser machen können. Das heißt, erstmal haben wir hier im gesamten System Prompt diesem LLM gesagt, dass es ein kreativer Schreiber ist. Und das nächste LLM ist danach natürlich dafür da, die Titel zu machen.
Und wenn man ein LLM hat, das das alleine macht, dann ist es in diesem spezifischen Task besser gedacht, als wenn man die ganzen Dinge mit einem LLM macht.
Also, so eine Aufgabe, die könnte natürlich auch ein LLM alleine machen. Aber auch hier sind zwei LLMs besser, die miteinander kommunizieren. Und bei jedem dieser Worker und auch beim Supervisor arbeitet hier GPT-4 Omni. Wir könnten aber auch andere Modelle hier einbauen. Und die ganzen Dinge sehen wir uns natürlich über die nächsten Videos an.
In diesem Video haben wir uns so einfach wie möglich angesehen, wie wir einen KI-Agenten bauen können. Wir müssen einfach nur auf die Agent Flows gehen, starten einen Supervisor, reinschmeißen ein paar Arbeiter, ein Chatmodell und die OpenAI API verknüpfen. Danach in den Prompts angeben, was die Arbeiter machen sollen, und wir können sofort starten.
Wie gesagt, das ist der einfachste Agent, wie es nur irgendwie geht. Und über die nächsten Videos bauen wir komplexere Agenten, die Function Calling machen können, wo wir vier, fünf verschiedene Agenten haben und die komplette Aufgaben für uns übernehmen können.