?インタラクティブ 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
それでは、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 経由で応答を提供する 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 クラウドにデプロイするには、main.py に次の 2 行を追加するだけです。
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 アプリケーションのスケーラビリティと復元力をどのように高めることができるかを確認してください。
試してみて、感想を聞かせてください?
以上がコード内のサーバーレス OpenAI アプリを構築してデプロイするの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。