Heim > Artikel > Backend-Entwicklung > So erstellen Sie einen KI-Chatbot mit einer API, um auf mehrere LLMs zuzugreifen
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, Codieren 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 nicht meinem 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.
? What is top-p? Also known as “nucleus sampling” — is another method for adjusting randomness. It works by considering a broader set of tokens as the top-p value increases. A higher top-p value leads to a more diverse range of tokens being sampled, producing more varied outputs.
? To learn more about API keys, check out the blog post here.
Local setup
GitHub Codespaces setup
From the Cookbook repo on GitHub, create a new codespace by selecting the Codespaces option from the Code button
Once the codespace has been generated, add your Replicate API key to the recipes/replicate/.streamlit/secrets_template.toml file
Update the filename from secrets_template.toml to secrets.toml
(To learn more about secrets handling in Streamlit, refer to the documentation here.)
From the Cookbook root directory, change directory into the Replicate recipe: cd recipes/replicate
Install the dependencies: pip install -r requirements.txt
Add the following code to the file:
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="")
Run the script: python replicate_hello_world.py
You should see a print out of the text generated by the model.
To learn more about Replicate models and how they work, you can refer to their documentation here. At its core, a Replicate “model” refers to a trained, packaged, and published software program that accepts inputs and returns outputs.
In this particular case, the model is meta/meta-llama-3-8b and the input is "prompt": "What is Streamlit?". When you run the script, a call is made to the Replicate endpoint and the printed text is the output returned from the model via Replicate.
To run the demo app, use the Streamlit CLI: streamlit run streamlit_app.py.
Running this command deploys the app to a port on localhost. When you access this location, you should see a Streamlit app running.
You can use this app to prompt different LLMs via Replicate and produce generative text according to the configurations you provide.
Using Replicate means you can prompt multiple open source LLMs with one API which helps simplify AI integration into modern software flows.
This is accomplished in the following block of code:
for event in replicate.stream(model, input={"prompt": prompt_str, "prompt_template": r"{prompt}", "temperature": temperature, "top_p": top_p,}): yield str(event)
The model, temperature, and top p configurations are provided by the user via Streamlit’s input widgets. Streamlit’s chat elements make it easy to integrate chatbot features in your app. The best part is you don’t need to know JavaScript or CSS to implement and style these components – Streamlit provides all of that right out of the box.
Replicate provides an API endpoint to search for public models. You can also explore featured models and use cases on their website. This makes it easy to find the right model for your specific needs.
Different models have different performance characteristics. Use the appropriate model based on your needs for accuracy and speed.
Die Ausgabedaten des Replikats 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 rationalisiert auf nur wenige Zeilen Python. 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!