Heim >Backend-Entwicklung >Python-Tutorial >Erstellen und implementieren Sie eine serverlose OpenAI-App in wenigen Codezeilen

Erstellen und implementieren Sie eine serverlose OpenAI-App in wenigen Codezeilen

Susan Sarandon
Susan SarandonOriginal
2024-10-09 06:11:02291Durchsuche

Build & Deploy a Serverless OpenAI App in ines of Code

? Möchten Sie eine interaktive KI-App erstellen und bereitstellen ?? ??? ?????in nur ? ????? ?? ?????

In diesem Tutorial verwenden Sie LlamaIndex, um eine Q&A-Engine zu erstellen, FastAPI, um sie über HTTP bereitzustellen, und DBOS, um sie serverlos in der Cloud bereitzustellen.

Es basiert auf dem 5-Zeilen-Starter von LlamaIndex und verfügt nur über 4 zusätzliche Zeilen, um es cloudfähig zu machen. Einfach, schnell und skalierbar!

Vorbereitung

Erstellen Sie zunächst einen Ordner für Ihre App und aktivieren Sie eine virtuelle Umgebung.

python3 -m venv ai-app/.venv
cd ai-app
source .venv/bin/activate
touch main.py

Dann installieren Sie Abhängigkeiten und initialisieren eine DBOS-Konfigurationsdatei.

pip install dbos llama-index
dbos init --config

Als nächstes benötigen Sie zum Ausführen dieser App ein OpenAI-Entwicklerkonto. Hier erhalten Sie einen API-Schlüssel. Legen Sie den API-Schlüssel als Umgebungsvariable fest.

export OPENAI_API_KEY=XXXXX

Deklarieren Sie die Umgebungsvariable in dbos-config.yaml:

env:
  OPENAI_API_KEY: ${OPENAI_API_KEY}

Lassen Sie uns zum Schluss noch einige Daten herunterladen. Diese App verwendet den Text aus Paul Grahams „What I Worked On“. Sie können den Text über diesen Link herunterladen und unter data/paul_graham_essay.txt Ihres App-Ordners speichern.

Jetzt sollte Ihre App-Ordnerstruktur so aussehen:

ai-app/
├── dbos-config.yaml
├── main.py
└── data/
    └── paul_graham_essay.txt

Laden Sie Daten und erstellen Sie eine Q&A-Engine

Jetzt verwenden wir LlamaIndex, um eine einfache KI-Anwendung in nur 5 Codezeilen zu schreiben.
Fügen Sie den folgenden Code zu Ihrer main.py hinzu:

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)

Dieses Skript lädt Daten und erstellt einen Index für die Dokumente im Ordner „data/“ und generiert eine Antwort durch Abfragen des Index. Sie können dieses Skript ausführen und es sollte Ihnen eine Antwort geben, zum Beispiel:

$ python3 main.py

The author worked on writing short stories and programming...

HTTP-Bereitstellung

Jetzt fügen wir einen FastAPI-Endpunkt hinzu, um Antworten über HTTP bereitzustellen. Ändern Sie Ihre main.py wie folgt:

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)

Jetzt können Sie Ihre App mit fastapi run main.py starten. Um zu sehen, dass es funktioniert, besuchen Sie diese URL: http://localhost:8000

Das Ergebnis kann jedes Mal, wenn Sie Ihr Browserfenster aktualisieren, etwas anders sein!

Hosting in der DBOS Cloud

Um Ihre App in der DBOS Cloud bereitzustellen, müssen Sie nur zwei Zeilen zu main.py hinzufügen:

  • aus dbos DBOS importieren
  • DBOS(fastapi=app)
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)

Jetzt installieren Sie die DBOS Cloud CLI, falls Sie dies noch nicht getan haben (erfordert Node.js):

npm i -g @dbos-inc/dbos-cloud

Dann werden die Abhängigkeiten zu „requirements.txt“ eingefroren und in der DBOS-Cloud bereitgestellt:

pip freeze > requirements.txt
dbos-cloud app deploy

In weniger als einer Minute sollte Folgendes angezeigt werden: Greifen Sie auf Ihre Anwendung unter zu.
Um zu sehen, ob Ihre App funktioniert, besuchen Sie in Ihrem Browser.

Herzlichen Glückwunsch, Sie haben Ihre erste KI-App erfolgreich in DBOS Cloud bereitgestellt! Sie können Ihre bereitgestellte App in der Cloud-Konsole sehen.

Nächste Schritte

Dies ist erst der Anfang Ihrer DBOS-Reise. Sehen Sie sich als Nächstes an, wie DBOS Ihre KI-Anwendungen skalierbarer und belastbarer machen kann:

  • Verwenden Sie dauerhafte Ausführung, um absturzsichere Arbeitsabläufe zu schreiben.
  • Verwenden Sie Warteschlangen, um AI/LLM-API-Ratenlimits elegant zu verwalten.
  • Möchten Sie eine komplexere App erstellen? Schauen Sie sich den KI-gestützten Slackbot an.

Probieren Sie es aus und teilen Sie mir Ihre Meinung mit?

Das obige ist der detaillierte Inhalt vonErstellen und implementieren Sie eine serverlose OpenAI-App in wenigen Codezeilen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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