So erstellen Sie einen KI-Chatbot mit einer API, um auf mehrere LLMs zuzugreifen

王林
Freigeben: 2024-08-25 06:02:02
Original
582 Leute haben es durchsucht

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.

How to create an AI chatbot using one API to access multiple LLMs

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:

  • Was Replicate ist
  • Was Streamlit ist
  • So erstellen Sie eine Demo-Replikation der Chatbot-Streamlit-App
  • Und Best Practices für die Verwendung von Replicate

Keine Lust auf Lesen? Hier sind einige andere Möglichkeiten, diese Demo zu erkunden:

  • Den Code finden Sie hier im Streamlit Cookbook-Repo
  • Probieren Sie hier eine bereitgestellte Version der App aus
  • Sehen Sie sich hier eine Video-Komplettlösung von Replicate-Gründungsdesigner Zeke Sikelianos an

Was ist Replizieren?

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.

Verfügbare Modelle auf Replicate

  • Text: Modelle wie Llama 3 können basierend auf Eingabeaufforderungen kohärenten und kontextrelevanten Text generieren.
  • Bild: Modelle wie Stable Diffusion können aus Textaufforderungen hochwertige Bilder generieren.
  • Sprache: Modelle wie Whisper können Sprache in Text umwandeln, während Modelle wie xtts-v2 natürlich klingende Sprache erzeugen können.
  • Video: Modelle wie animate-diff oder Varianten von Stable Diffusion wie Videocrafter können Videos aus Text- bzw. Bildaufforderungen generieren und/oder bearbeiten.

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.

Was ist Streamlit?

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.

Probieren Sie das App-Rezept aus: Replicate + Streamlit

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.

Voraussetzungen

  • Python-Version >=3.8, !=3.9.7
  • Ein replizierter API-Schlüssel (Bitte beachten Sie, dass für den Zugriff auf Funktionen, die über die Grenzen der kostenlosen Testversion hinausgehen, eine Zahlungsmethode erforderlich ist.)

? Um mehr über API-Schlüssel zu erfahren, lesen Sie den Blogbeitrag hier.

Umgebungseinrichtung

Lokales Setup

  1. Klonen Sie das Cookbook-Repo: Git-Klon https://github.com/streamlit/cookbook.git
  2. Wechseln Sie im Stammverzeichnis des Kochbuchs in das Replikate-Rezept: cd Rezepte/replicate
  3. Fügen Sie Ihren Replikate-API-Schlüssel zur Datei .streamlit/secrets_template.toml hinzu
  4. Aktualisieren Sie den Dateinamen von Secrets_template.toml zu Secrets.toml: mv .streamlit/secrets_template.toml .streamlit/secrets.toml (Weitere Informationen zum Umgang mit Geheimnissen in Streamlit finden Sie in der Dokumentation hier.)
  5. Erstellen Sie eine virtuelle Umgebung: python -m venv replicatevenv
  6. Aktivieren Sie die virtuelle Umgebung: source replicatevenv/bin/activate
  7. Installieren Sie die Abhängigkeiten: pip install -r require.txt

GitHub Codespaces-Setup

  1. Erstellen Sie im Cookbook-Repository auf GitHub einen neuen Codespace, indem Sie über die Schaltfläche „Code“ die Option „Codespaces“ auswählen

    How to create an AI chatbot using one API to access multiple LLMs

  2. Sobald der Codespace generiert wurde, fügen Sie Ihren Replicate-API-Schlüssel zur Datei „recipes/replicate/.streamlit/secrets_template.toml“ hinzu

  3. 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.)

  4. Wechseln Sie im Stammverzeichnis des Kochbuchs in das Verzeichnis „Rezept replizieren“: cd Rezepte/replicate

  5. Installieren Sie die Abhängigkeiten: pip install -r require.txt

Führen Sie mit Replicate ein Textgenerierungsmodell aus

  1. Erstellen Sie eine Datei im Verzeichnis „recipes/replicate“ mit dem Namen „repliate_hello_world.py“.
  2. 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="")
    
    Nach dem Login kopieren
  3. 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 Ausgabe

Führen Sie die Demo-Chatbot-App Replicate Streamlit aus

Um 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.

How to create an AI chatbot using one API to access multiple LLMs

Mit dieser App können Sie verschiedene LLMs über „Replizieren“ anfordern und generativen Text gemäß den von Ihnen bereitgestellten Konfigurationen erstellen.

Eine gemeinsame API für mehrere LLM-Modelle

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)
Nach dem Login kopieren

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.

Best Practices replizieren

Verwenden Sie das beste Modell für die Eingabeaufforderung

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.

Verbessern Sie die Leistung mit Webhooks, Streaming und Bild-URLs

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.

Erschließen Sie das Potenzial der KI mit Streamlit

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!

Quelle:dev.to
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!