Maison  >  Article  >  développement back-end  >  Comment créer un chatbot IA à l'aide d'une seule API pour accéder à plusieurs LLM

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

王林
王林original
2024-08-25 06:02:02637parcourir

Publié à l'origine sur le blog Streamlit par Liz Acosta

Vous vous souvenez à quel point c'était cool de jouer avec un générateur d'images IA pour la première fois ? Ces vingt millions de doigts et ces images cauchemardesques de mangeurs de spaghettis étaient plus qu'amusantes, elles révélaient par inadvertance que oups ! Les modèles d’IA sont aussi intelligents que nous. Comme nous, ils ont aussi du mal à dessiner les mains.

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

Les modèles d’IA sont rapidement devenus plus sophistiqués, mais ils sont désormais très nombreux. Et – encore une fois – comme nous, certains d’entre eux sont meilleurs que d’autres dans certaines tâches. Prenez la génération de texte, par exemple. Même si Llama, Gemma et Mistral sont tous des LLM, certains d'entre eux sont meilleurs dans la génération de code tandis que d'autres sont meilleurs dans le brainstorming, le codage ou l'écriture créative. Ils offrent différents avantages en fonction de l'invite, il peut donc être judicieux d'inclure plusieurs modèles dans votre application d'IA.

Mais comment intégrer tous ces modèles dans votre application sans dupliquer le code ? Comment rendre votre utilisation de l’IA plus modulaire et donc plus facile à maintenir et à faire évoluer ? C'est là qu'une API peut offrir un ensemble standardisé d'instructions pour communiquer entre différentes technologies.

Dans cet article de blog, nous verrons comment utiliser Replicate avec Streamlit pour créer une application qui vous permet de configurer et d'inviter différents LLM avec un seul appel d'API. Et ne vous inquiétez pas – quand je dis « application », je ne parle pas de devoir démarrer tout un serveur Flask, de configurer fastidieusement vos itinéraires ou de vous soucier du CSS. Streamlit a ce qu'il vous faut ?

Lisez la suite pour apprendre :

  • Qu'est-ce que la réplication
  • Qu'est-ce que Streamlit
  • Comment créer une démo de l'application Replicate chatbot Streamlit
  • Et les bonnes pratiques d'utilisation de Replicate

Vous n’avez pas envie de lire ? Voici d'autres façons d'explorer cette démo :

  • Trouvez le code dans le dépôt Streamlit Cookbook ici
  • Essayez une version déployée de l'application ici
  • Regardez une présentation vidéo du concepteur fondateur de Replicate, Zeke Sikelianos, ici

Qu’est-ce que la réplication ?

Replicate est une plate-forme qui permet aux développeurs de déployer, d'affiner et d'accéder à des modèles d'IA open source via une CLI, une API ou un SDK. La plate-forme facilite l'intégration par programmation des capacités d'IA dans les applications logicielles.

Modèles disponibles sur Replicate

  • Texte : des modèles comme Llama 3 peuvent générer un texte cohérent et contextuellement pertinent en fonction des invites de saisie.
  • Image : des modèles tels que la diffusion stable peuvent générer des images de haute qualité à partir d'invites de texte.
  • Discours : des modèles comme Whisper peuvent convertir la parole en texte tandis que des modèles comme xtts-v2 peuvent générer une parole au son naturel.
  • Vidéo : des modèles comme animate-diff ou des variantes de diffusion stable comme videocrafter peuvent générer et/ou éditer des vidéos à partir d'invites de texte et d'image, respectivement.

Lorsqu'ils sont utilisés ensemble, Replicate vous permet de développer des applications multimodales capables d'accepter des entrées et de générer des sorties dans différents formats, qu'il s'agisse de texte, d'image, de parole ou de vidéo.

Qu’est-ce que Streamlit ?

Streamlit est un framework Python open source permettant de créer des applications hautement interactives, en seulement quelques lignes de code. Streamlit s'intègre à tous les derniers outils d'IA générative, tels que n'importe quel LLM, base de données vectorielles ou divers frameworks d'IA comme LangChain, LlamaIndex ou Weights & Biases. Les éléments de chat de Streamlit facilitent particulièrement l'interaction avec l'IA afin que vous puissiez créer des chatbots qui « parlent à vos données ».

Combiné à une plateforme comme Replicate, Streamlit vous permet de créer des applications d'IA génératives sans aucune surcharge de conception d'application.

? Pour en savoir plus sur la manière dont Streamlit vous incite à progresser, consultez cet article de blog.

Pour en savoir plus sur Streamlit, consultez le guide 101.

Essayez la recette de l'application : Répliquer + Streamlit

Mais ne me croyez pas sur parole. Essayez l'application vous-même ou regardez une vidéo et voyez ce que vous en pensez.

Dans cette démo, vous lancerez une application de chatbot Streamlit avec Replicate. L'application utilise une seule API pour accéder à trois LLM différents et ajuster des paramètres tels que la température et le top-p. Ces paramètres influencent le caractère aléatoire et la diversité du texte généré par l'IA, ainsi que la méthode par laquelle les jetons sont sélectionnés.

? Qu'est-ce que la température du modèle ? La température contrôle la façon dont le modèle sélectionne les jetons. Une température plus basse rend le modèle plus conservateur, privilégiant les mots courants et « sûrs ». À l'inverse, une température plus élevée encourage le modèle à prendre plus de risques en sélectionnant des jetons moins probables, ce qui entraîne des résultats plus créatifs.

? Qu'est-ce que top-p ? Également connu sous le nom d'« échantillonnage de noyau » : il s'agit d'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. Cloner le dépôt Cookbook : git clone https://github.com/streamlit/cookbook.git
  2. À partir du répertoire racine du Cookbook, changez le répertoire en Répliquer la recette : 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éez 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 conditions.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 vers secrets.toml
    (Pour en savoir plus sur la gestion des secrets dans Streamlit, reportez-vous à la documentation ici.)

  4. À partir du répertoire racine du livre de recettes, changez de répertoire dans la recette Répliquer : cd recettes/replicate

  5. Installez les dépendances : pip install -r conditions.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="")
    
  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 » de réplication 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 demander 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)

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 la sortie de la boîte.

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

Améliorez les performances avec les webhooks, le streaming et les URL d'images

Les données de sortie de Replicate ne sont disponibles que pendant une heure. Utilisez des webhooks pour enregistrer les données sur votre propre stockage. Vous pouvez également configurer des webhooks pour gérer les réponses asynchrones des modèles. Ceci est crucial pour créer des applications évolutives.

Tirez parti du streaming lorsque cela est possible. Certains modèles prennent en charge le streaming, vous permettant d'obtenir des résultats partiels au fur et à mesure de leur génération. C'est idéal pour les applications en temps réel.

L'utilisation d'URL d'images offre des performances améliorées par rapport à l'utilisation d'images téléchargées codées en base 64.

Libérez le potentiel de l’IA avec Streamlit

Avec Streamlit, des mois et des mois de travail de conception d'applications sont rationalisés en quelques lignes de Python seulement. C’est le cadre idéal pour présenter vos dernières inventions en matière d’IA.

Lancez-vous rapidement avec d'autres recettes d'IA dans le livre de recettes Streamlit. (Et n'oubliez pas de nous montrer ce que vous construisez sur le forum !)

Bon streamlit-ing ! ?

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!

Déclaration:
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
Article précédent:Tutoriel Python - introductionArticle suivant:Tutoriel Python - introduction