Ursprünglich veröffentlicht auf dem Streamlit-Blog von Liz Acosta
Erinnern Sie sich, wie cool es war, zum ersten Mal mit einem KI-Bildgenerator zu spielen? Diese zwanzig Millionen Finger und alptraumhaften Spaghetti-Essen-Bilder waren mehr als nur amüsant, sie zeigten ganz nebenbei, dass Ups! KI-Modelle sind nur so schlau wie wir. Wie wir haben auch sie Schwierigkeiten, Hände zu zeichnen.
KI-Modelle sind schnell ausgefeilter geworden, aber mittlerweile gibt es so viele davon. Und – wiederum – wie wir sind einige von ihnen bei bestimmten Aufgaben besser als andere. Nehmen wir zum Beispiel die Textgenerierung. Auch wenn Llama, Gemma und Mistral allesamt LLMs sind, sind einige von ihnen besser im Generieren von Code, während andere besser im Brainstorming, Programmieren oder kreativen Schreiben sind. Sie bieten je nach Anforderung unterschiedliche Vorteile, daher kann es sinnvoll sein, mehr als ein Modell in Ihre KI-Anwendung einzubeziehen.
Aber Wie integrieren Sie all diese Modelle in Ihre App, ohne Code zu duplizieren? Wie gestalten Sie Ihren Einsatz von KI modularer und damit einfacher zu warten und zu skalieren? Hier kann eine API einen standardisierten Satz von Anweisungen für die Kommunikation über verschiedene Technologien hinweg bereitstellen.
In diesem Blogbeitrag werfen wir einen Blick darauf, wie Sie Replicate mit Streamlit verwenden, um eine App zu erstellen, mit der Sie verschiedene LLMs mit einem einzigen API-Aufruf konfigurieren und aufrufen können. Und keine Sorge – wenn ich „App“ sage, meine ich nicht, dass Sie einen ganzen Flask-Server hochfahren oder Ihre Routen mühsam konfigurieren oder sich um CSS kümmern müssen. Streamlit hat das für Sie abgedeckt ?
Lesen Sie weiter, um zu erfahren:
Keine Lust auf Lesen? Hier sind einige andere Möglichkeiten, diese Demo zu erkunden:
Replicate ist eine Plattform, die es Entwicklern ermöglicht, Open-Source-KI-Modelle über eine CLI, API oder ein SDK bereitzustellen, zu optimieren und darauf zuzugreifen. Die Plattform erleichtert die programmgesteuerte Integration von KI-Funktionen in Softwareanwendungen.
Bei gemeinsamer Verwendung ermöglicht Ihnen Replicate die Entwicklung multimodaler Apps, die Eingaben akzeptieren und Ausgaben in verschiedenen Formaten generieren können, sei es Text, Bild, Sprache oder Video.
Streamlit ist ein Open-Source-Python-Framework zum Erstellen hochgradig interaktiver Apps – in nur wenigen Codezeilen. Streamlit lässt sich in die neuesten Tools der generativen KI integrieren, wie z. B. jedes LLM, jede Vektordatenbank oder verschiedene KI-Frameworks wie LangChain, LlamaIndex oder Weights & Biases. Die Chat-Elemente von Streamlit machen die Interaktion mit KI besonders einfach, sodass Sie Chatbots erstellen können, die „mit Ihren Daten sprechen“.
In Kombination mit einer Plattform wie Replicate ermöglicht Ihnen Streamlit die Erstellung generativer KI-Anwendungen ohne Aufwand für das App-Design.
? Um mehr darüber zu erfahren, wie Streamlit Sie zum Fortschritt vorantreibt, schauen Sie sich diesen Blogbeitrag an.
Um mehr über Streamlit zu erfahren, schauen Sie sich den 101-Leitfaden an.
Aber glauben Sie mir nicht beim Wort. Probieren Sie die App selbst aus oder schauen Sie sich ein Video an und sehen Sie, was Sie denken.
In dieser Demo starten Sie eine Streamlit-Chatbot-App mit Replicate. Die App nutzt eine einzige API, um auf drei verschiedene LLMs zuzugreifen und Parameter wie Temperatur und Top-P anzupassen. Diese Parameter beeinflussen die Zufälligkeit und Vielfalt des KI-generierten Textes sowie die Methode, mit der Token ausgewählt werden.
? Was ist die Modelltemperatur? Die Temperatur steuert, wie das Modell Token auswählt. Eine niedrigere Temperatur macht das Modell konservativer und bevorzugt gebräuchliche und „sichere“ Wörter. Umgekehrt ermutigt eine höhere Temperatur das Modell, mehr Risiken einzugehen, indem es weniger wahrscheinliche Token auswählt, was zu kreativeren Ergebnissen führt.
? Was ist Top-P? Auch bekannt als „Nucleus Sampling“ – ist eine weitere Methode zur Anpassung der Zufälligkeit. Es funktioniert, indem ein breiterer Satz von Token berücksichtigt wird, wenn der Top-P-Wert steigt. Ein höherer Top-P-Wert führt zu einer vielfältigeren Auswahl an Token, die abgetastet werden, was zu vielfältigeren Ergebnissen führt.
? Um mehr über API-Schlüssel zu erfahren, lesen Sie den Blogbeitrag hier.
Lokales Setup
GitHub Codespaces-Setup
Erstellen Sie im Cookbook-Repository auf GitHub einen neuen Codespace, indem Sie über die Schaltfläche „Code“ die Option „Codespaces“ auswählen
Sobald der Codespace generiert wurde, fügen Sie Ihren Replicate-API-Schlüssel zur Datei „recipes/replicate/.streamlit/secrets_template.toml“ hinzu
Aktualisieren Sie den Dateinamen von Secrets_template.toml in Secrets.toml
(Weitere Informationen zum Umgang mit Geheimnissen in Streamlit finden Sie in der Dokumentation hier.)
Wechseln Sie im Stammverzeichnis des Kochbuchs in das Verzeichnis „Rezept replizieren“: cd Rezepte/replicate
Installieren Sie die Abhängigkeiten: pip install -r require.txt
Fügen Sie der Datei den folgenden Code hinzu:
import replicate import toml import os # Read the secrets from the secrets.toml file with open(".streamlit/secrets.toml", "r") as f: secrets = toml.load(f) # Create an environment variable for the Replicate API token os.environ['REPLICATE_API_TOKEN'] = secrets["REPLICATE_API_TOKEN"] # Run a model for event in replicate.stream("meta/meta-llama-3-8b", input={"prompt": "What is Streamlit?"},): print(str(event), end="")
Führen Sie das Skript aus: python replicate_hello_world.py
Sie sollten einen Ausdruck des vom Modell generierten Textes sehen.
Um mehr über Replicate-Modelle und ihre Funktionsweise zu erfahren, können Sie sich hier die Dokumentation ansehen. Im Kern bezieht sich ein Replikat-„Modell“ auf ein trainiertes, verpacktes und veröffentlichtes Softwareprogramm, das Eingaben akzeptiert und Ausgaben zurückgibt.
In diesem speziellen Fall ist das Modell meta/meta-llama-3-8b und die Eingabe ist „prompt“: „Was ist Streamlit?“. Wenn Sie das Skript ausführen, erfolgt ein Aufruf an den Replicate-Endpunkt und der gedruckte Text ist die vom Modell über Replicate.
zurückgegebene AusgabeUm die Demo-App auszuführen, verwenden Sie die Streamlit-CLI: streamlit run streamlit_app.py.
Durch Ausführen dieses Befehls wird die App auf einem Port auf localhost bereitgestellt. Wenn Sie auf diesen Standort zugreifen, sollte eine Streamlit-App ausgeführt werden.
Mit dieser App können Sie verschiedene LLMs über „Replizieren“ anfordern und generativen Text gemäß den von Ihnen bereitgestellten Konfigurationen erstellen.
Durch die Verwendung von Replicate können Sie mehrere Open-Source-LLMs mit einer API aufrufen, was die KI-Integration in moderne Softwareabläufe vereinfacht.
Dies wird im folgenden Codeblock erreicht:
for event in replicate.stream(model, input={"prompt": prompt_str, "prompt_template": r"{prompt}", "temperature": temperature, "top_p": top_p,}): yield str(event)
Die Modell-, Temperatur- und Top-P-Konfigurationen werden vom Benutzer über die Eingabe-Widgets von Streamlit bereitgestellt. Die Chat-Elemente von Streamlit erleichtern die Integration von Chatbot-Funktionen in Ihre App. Das Beste daran ist, dass Sie weder JavaScript noch CSS beherrschen müssen, um diese Komponenten zu implementieren und zu gestalten – Streamlit bietet all das direkt nach dem Auspacken.
Replicate bietet einen API-Endpunkt für die Suche nach öffentlichen Modellen. Sie können auch vorgestellte Modelle und Anwendungsfälle auf ihrer Website erkunden. So finden Sie ganz einfach das richtige Modell für Ihre spezifischen Bedürfnisse.
Verschiedene Modelle haben unterschiedliche Leistungsmerkmale. Verwenden Sie das passende Modell basierend auf Ihren Anforderungen an Genauigkeit und Geschwindigkeit.
Die Ausgabedaten von Replicate sind nur eine Stunde lang verfügbar. Verwenden Sie Webhooks, um die Daten in Ihrem eigenen Speicher zu speichern. Sie können auch Webhooks einrichten, um asynchrone Antworten von Modellen zu verarbeiten. Dies ist entscheidend für die Erstellung skalierbarer Anwendungen.
Nutzen Sie nach Möglichkeit Streaming. Einige Modelle unterstützen Streaming, sodass Sie Teilergebnisse bereits während der Generierung erhalten. Dies ist ideal für Echtzeitanwendungen.
Die Verwendung von Bild-URLs bietet eine verbesserte Leistung im Vergleich zur Verwendung hochgeladener Bilder, die mit Base 64 kodiert sind.
Mit Streamlit werden monatelange App-Designarbeiten auf nur wenige Zeilen Python rationalisiert. Es ist der perfekte Rahmen, um Ihre neuesten KI-Erfindungen zu präsentieren.
Machen Sie sich schnell an die Arbeit mit anderen KI-Rezepten im Streamlit-Kochbuch. (Und vergessen Sie nicht, uns im Forum zu zeigen, was Sie bauen!)
Viel Spaß beim Streamliten! ?
Das obige ist der detaillierte Inhalt vonSo erstellen Sie einen KI-Chatbot mit einer API, um auf mehrere LLMs zuzugreifen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!