Maison > développement back-end > Tutoriel Python > Créez et déployez une application OpenAI sans serveur en quelques lignes de code

Créez et déployez une application OpenAI sans serveur en quelques lignes de code

Susan Sarandon
Libérer: 2024-10-09 06:11:02
original
293 Les gens l'ont consulté

Build & Deploy a Serverless OpenAI App in ines of Code

? Vous souhaitez créer et déployer une application d'IA interactive ?? ??? ????? en seulement  ? ????? ?? ?????

Dans ce didacticiel, vous utiliserez LlamaIndex pour créer un moteur de questions-réponses, FastAPI pour le servir via HTTP et DBOS pour le déployer sans serveur dans le cloud.

Il est basé sur le démarreur à 5 lignes de LlamaIndex, avec seulement 4 lignes supplémentaires pour le rendre prêt pour le cloud. Simple, rapide et prêt à évoluer !

Préparation

Tout d'abord, créez un dossier pour votre application et activez un environnement virtuel.

python3 -m venv ai-app/.venv
cd ai-app
source .venv/bin/activate
touch main.py
Copier après la connexion

Ensuite, installez les dépendances et initialisez un fichier de configuration DBOS.

pip install dbos llama-index
dbos init --config
Copier après la connexion

Ensuite, pour exécuter cette application, vous avez besoin d'un compte développeur OpenAI. Obtenez une clé API ici. Définissez la clé API comme variable d'environnement.

export OPENAI_API_KEY=XXXXX
Copier après la connexion

Déclarez la variable d'environnement dans dbos-config.yaml :

env:
  OPENAI_API_KEY: ${OPENAI_API_KEY}
Copier après la connexion

Enfin, téléchargeons quelques données. Cette application utilise le texte de "What I Worked On" de Paul Graham. Vous pouvez télécharger le texte à partir de ce lien et l'enregistrer sous data/paul_graham_essay.txt de votre dossier d'application.

Maintenant, la structure des dossiers de votre application devrait ressembler à ceci :

ai-app/
├── dbos-config.yaml
├── main.py
└── data/
    └── paul_graham_essay.txt
Copier après la connexion

Charger des données et créer un moteur de questions-réponses

Utilisons maintenant LlamaIndex pour écrire une application d'IA simple en seulement 5 lignes de code.
Ajoutez le code suivant à votre main.py :

from llama_index.core import VectorStoreIndex, SimpleDirectoryReader

documents = SimpleDirectoryReader("data").load_data()
index = VectorStoreIndex.from_documents(documents)

query_engine = index.as_query_engine()
response = query_engine.query("What did the author do growing up?")
print(response)
Copier après la connexion

Ce script charge les données et crée un index sur les documents sous le dossier data/, et génère une réponse en interrogeant l'index. Vous pouvez exécuter ce script et il devrait vous donner une réponse, par exemple :

$ python3 main.py

The author worked on writing short stories and programming...
Copier après la connexion

Service HTTP

Maintenant, ajoutons un point de terminaison FastAPI pour servir les réponses via HTTP. Modifiez votre main.py comme suit :

from llama_index.core import VectorStoreIndex, SimpleDirectoryReader
from fastapi import FastAPI

app = FastAPI()

documents = SimpleDirectoryReader("data").load_data()
index = VectorStoreIndex.from_documents(documents)
query_engine = index.as_query_engine()

@app.get("/")
def get_answer():
    response = query_engine.query("What did the author do growing up?")
    return str(response)
Copier après la connexion

Vous pouvez maintenant démarrer votre application avec fastapi et exécuter main.py. Pour voir que cela fonctionne, visitez cette URL : http://localhost:8000

Le résultat peut être légèrement différent à chaque fois que vous actualisez la fenêtre de votre navigateur !

Hébergement sur DBOS Cloud

Pour déployer votre application sur DBOS Cloud, il vous suffit d'ajouter deux lignes à main.py :

  • à partir de dbos importer DBOS
  • DBOS (fastapi = application)
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader
from fastapi import FastAPI
from dbos import DBOS

app = FastAPI()
DBOS(fastapi=app)

documents = SimpleDirectoryReader("data").load_data()
index = VectorStoreIndex.from_documents(documents)
query_engine = index.as_query_engine()

@app.get("/")
def get_answer():
    response = query_engine.query("What did the author do growing up?")
    return str(response)
Copier après la connexion

Maintenant, installez DBOS Cloud CLI si vous ne l'avez pas déjà fait (nécessite Node.js) :

npm i -g @dbos-inc/dbos-cloud
Copier après la connexion

Gelez ensuite les dépendances dans Requirements.txt et déployez sur DBOS Cloud :

pip freeze > requirements.txt
dbos-cloud app deploy
Copier après la connexion

En moins d'une minute, le message devrait s'imprimer. Accédez à votre candidature à l'adresse .
Pour vérifier que votre application fonctionne, visitez dans votre navigateur.

Félicitations, vous avez déployé avec succès votre première application d'IA sur DBOS Cloud ! Vous pouvez voir votre application déployée dans la console cloud.

Prochaines étapes

Ce n'est que le début de votre voyage DBOS. Découvrez ensuite comment DBOS peut rendre vos applications d'IA plus évolutives et plus résilientes :

  • Utilisez une exécution durable pour écrire des flux de travail résistants aux pannes.
  • Utilisez les files d'attente pour gérer efficacement les limites de débit de l'API AI/LLM.
  • Vous souhaitez créer une application plus complexe ? Découvrez le Slackbot alimenté par l'IA.

Essayez-le et dites-moi ce que vous en pensez ?

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 articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal