ホームページ  >  記事  >  バックエンド開発  >  コード内のサーバーレス OpenAI アプリを構築してデプロイする

コード内のサーバーレス OpenAI アプリを構築してデプロイする

Susan Sarandon
Susan Sarandonオリジナル
2024-10-09 06:11:02166ブラウズ

Build & Deploy a Serverless OpenAI App in ines of Code

?インタラクティブ AI アプリ を構築して展開したいですか?? ??? ????だけで? ??????? ?? ?????

このチュートリアルでは、LlamaIndex を使用して Q&A エンジンを作成し、FastAPI を使用して HTTP 経由でサービスを提供し、DBOS を使用してそれをサーバーレスでクラウドにデプロイします。

これは LlamaIndex の 5 行スターターに基づいており、クラウド対応にするために 4 行だけ追加されています。シンプル、高速、すぐに拡張可能!

準備

まず、アプリ用のフォルダーを作成し、仮想環境をアクティブにします。

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

次に、依存関係をインストールし、DBOS 構成ファイルを初期化します。

pip install dbos llama-index
dbos init --config

次に、このアプリを実行するには、OpenAI 開発者アカウントが必要です。ここで API キーを取得します。 API キーを環境変数として設定します。

export OPENAI_API_KEY=XXXXX

dbos-config.yaml で環境変数を宣言します:

env:
  OPENAI_API_KEY: ${OPENAI_API_KEY}

最後に、データをダウンロードしましょう。このアプリは、Paul Graham の「What I Worked On」のテキストを使用しています。このリンクからテキストをダウンロードし、アプリ フォルダーの data/paul_graham_essay.txt に保存できます。

これで、アプリのフォルダー構造は次のようになります:

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

データをロードして Q&A エンジンを構築する

それでは、LlamaIndex を使用して、わずか 5 行のコードで簡単な AI アプリケーションを作成してみましょう。
次のコードを 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)

このスクリプトはデータをロードし、data/ フォルダーの下のドキュメントにインデックスを構築し、インデックスをクエリして回答を生成します。このスクリプトを実行すると、次のような応答が返されるはずです。

$ python3 main.py

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

HTTP サービス

次に、HTTP 経由で応答を提供する FastAPI エンドポイントを追加しましょう。 main.py を次のように変更します:

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)

これで、fastapi run main.py を使用してアプリを起動できるようになりました。動作していることを確認するには、次の URL にアクセスしてください: http://localhost:8000

ブラウザ ウィンドウを更新するたびに、結果が若干異なる場合があります。

DBOSクラウドでのホスティング

アプリを DBOS クラウドにデプロイするには、main.py に次の 2 行を追加するだけです。

  • dbos import DBOS から
  • 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)

DBOS Cloud CLI をまだインストールしていない場合はインストールします (Node.js が必要)。

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

次に、依存関係をrequirements.txtに凍結し、DBOSクラウドにデプロイします:

pip freeze > requirements.txt
dbos-cloud app deploy

1 分以内に、「Access your application at 」と表示されます。
アプリが動作していることを確認するには、 にアクセスしてください。ブラウザで。

おめでとうございます。最初の AI アプリが DBOS クラウドに正常にデプロイされました。デプロイされたアプリはクラウド コンソールで確認できます。

次のステップ

これは DBOS の旅の始まりにすぎません。次に、DBOS が AI アプリケーションのスケーラビリティと復元力をどのように高めることができるかを確認してください。

  • 耐久性のある実行を使用してクラッシュプルーフのワークフローを作成します。
  • キューを使用して AI/LLM API レート制限を適切に管理します。
  • より複雑なアプリを構築したいですか? AI を活用した Slackbot をチェックしてください。

試してみて、感想を聞かせてください?

以上がコード内のサーバーレス OpenAI アプリを構築してデプロイするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。