在大量程式碼中建置和部署無伺服器 OpenAI 應用程式

Susan Sarandon
發布: 2024-10-09 06:11:02
原創
164 人瀏覽過

Build & Deploy a Serverless OpenAI App in ines of Code

?想要建置和部署互動式 AI 應用程式? ??? ?????? 就在 內? ???? ?? ????

在本教學課程中,您將使用 LlamaIndex 建立問答引擎,使用 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}
登入後複製

最後,讓我們下載一些資料。這個應用程式使用保羅·格雷厄姆的“我的工作內容”中的文字。您可以從此連結下載文字並將其保存在應用程式資料夾的 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 端點以透過 HTTP 提供回應。修改你的 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 Cloud,您只需在 main.py 中新增兩行:

  • 從 dbos 匯入 DBOS
  • DBOS(fastapi=應用程式)
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 Cloud:

pip freeze > requirements.txt
dbos-cloud app deploy
登入後複製

不到一分鐘,它就會列印 Access your application at
若要查看您的應用程式是否正常執行,請造訪 在您的瀏覽器中。

恭喜您,您已成功將您的第一個 AI 應用程式部署到 DBOS Cloud!您可以在雲端控制台中看到您部署的應用程式。

下一步

這只是您 DBOS 之旅的開始。接下來,看看 DBOS 如何讓您的 AI 應用程式更具可擴展性和彈性:

  • 使用持久執行來編寫防崩潰工作流程。
  • 使用佇列優雅地管理 AI/LLM API 速率限制。
  • 想要建立更複雜的應用程式嗎?查看人工智慧驅動的 Slackbot。

試試看並告訴我你的想法?

以上是在大量程式碼中建置和部署無伺服器 OpenAI 應用程式的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:dev.to
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!