Comment créer un chatbot IA à l'aide d'une seule API pour accéder à plusieurs LLM

王林
Libérer: 2024-08-25 06:02:02
original
582 Les gens l'ont consulté

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.

AberWieintegrieren Sie all diese Modelle in Ihre App,ohneCode 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.

?Qu'est-ce que top-p ?Également connu sous le nom d'« échantillonnage de noyau » — est une autre méthode d'ajustement du caractère aléatoire. Cela fonctionne en considérant un ensemble plus large de jetons à mesure que la valeur top-p augmente. Une valeur top-p plus élevée conduit à l'échantillonnage d'une gamme plus diversifiée de jetons, produisant des sorties plus variées.

Conditions préalables

  • Version Python >=3.8, !=3.9.7
  • Une clé API de réplication (Veuillez noter qu'un mode de paiement est requis pour accéder aux fonctionnalités au-delà des limites de l'essai gratuit.)

? Pour en savoir plus sur les clés API, consultez l'article de blog ici.

Configuration de l'environnement

Configuration locale

  1. Clonez le dépôt Cookbook : git clone https://github.com/streamlit/cookbook.git
  2. Depuis le répertoire racine du Cookbook, changez de répertoire dans la recette Replicate : cd Recipes/replicate
  3. Ajoutez votre clé API Replicate au fichier .streamlit/secrets_template.toml
  4. Mettez à jour le nom de fichier de secrets_template.toml vers secrets.toml : mv .streamlit/secrets_template.toml .streamlit/secrets.toml (Pour en savoir plus sur la gestion des secrets dans Streamlit, reportez-vous à la documentation ici.)
  5. Créer un environnement virtuel : python -m venv réplicatevenv
  6. Activer l'environnement virtuel : source réplicatevenv/bin/activate
  7. Installez les dépendances : pip install -r exigences.txt

Configuration des espaces de codes GitHub

  1. À partir du dépôt Cookbook sur GitHub, créez un nouvel espace de code en sélectionnant l'option Codespaces à partir du bouton Code

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

  2. Une fois l'espace de code généré, ajoutez votre clé API Replicate au fichier Recipes/replicate/.streamlit/secrets_template.toml

  3. Mettez à jour le nom de fichier de secrets_template.toml à secrets.toml
    (Pour en savoir plus sur la gestion des secrets dans Streamlit, reportez-vous à la documentation ici.)

  4. Depuis le répertoire racine du Cookbook, changez le répertoire en Répliquer la recette : cd recettes/replicate

  5. Installez les dépendances : pip install -r exigences.txt

Exécuter un modèle de génération de texte avec Replicate

  1. Créez un fichier dans le répertoire recettes/replicate appelé replique_hello_world.py
  2. Ajoutez le code suivant au fichier :

    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="")
    Copier après la connexion
  3. Exécutez le script : python replique_hello_world.py

Vous devriez voir une impression du texte généré par le modèle.

Pour en savoir plus sur les modèles Replicate et leur fonctionnement, vous pouvez vous référer à leur documentation ici. À la base, un « modèle » Replicate fait référence à un programme logiciel formé, packagé et publié qui accepte les entrées et renvoie les sorties.

Dans ce cas particulier, le modèle est meta/meta-llama-3-8b et l'entrée est "prompt" : "Qu'est-ce que Streamlit ?". Lorsque vous exécutez le script, un appel est effectué au point de terminaison Replicate et le texte imprimé est la sortie renvoyée par le modèle via Replicate.

Exécutez la démo de l'application de chatbot Replicate Streamlit

Pour exécuter l'application de démonstration, utilisez la CLI Streamlit : streamlit run streamlit_app.py.

L'exécution de cette commande déploie l'application sur un port sur localhost. Lorsque vous accédez à cet emplacement, vous devriez voir une application Streamlit en cours d'exécution.

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

Vous pouvez utiliser cette application pour inviter différents LLM via Répliquer et produire du texte génératif en fonction des configurations que vous fournissez.

Une API commune pour plusieurs modèles LLM

L'utilisation de Replicate signifie que vous pouvez lancer plusieurs LLM open source avec une seule API, ce qui contribue à simplifier l'intégration de l'IA dans les flux logiciels modernes.

Ceci est accompli dans le bloc de code suivant :

for event in replicate.stream(model, input={"prompt": prompt_str, "prompt_template": r"{prompt}", "temperature": temperature, "top_p": top_p,}): yield str(event)
Copier après la connexion

Les configurations du modèle, de la température et du top p sont fournies par l'utilisateur via les widgets de saisie de Streamlit. Les éléments de chat de Streamlit facilitent l'intégration des fonctionnalités de chatbot dans votre application. Le meilleur, c'est que vous n'avez pas besoin de connaître JavaScript ou CSS pour implémenter et styliser ces composants – Streamlit fournit tout cela dès le départ.

Répliquer les meilleures pratiques

Utilisez le meilleur modèle pour l'invite

Replicate fournit un point de terminaison API pour rechercher des modèles publics. Vous pouvez également explorer les modèles présentés et les cas d'utilisation sur leur site Web. Cela facilite la recherche du modèle adapté à vos besoins spécifiques.

Différents modèles ont des caractéristiques de performance différentes. Utilisez le modèle approprié en fonction de vos besoins de précision et de rapidité.

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 Pythonrationalisiert. Es ist der perfekte Rahmen, um Ihre neuesten KI-Erfindungen zu präsentieren.

Machen Sie sichschnellan 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! ?

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!