首页 >后端开发 >Python教程 >在大量代码中构建和部署无服务器 OpenAI 应用程序

在大量代码中构建和部署无服务器 OpenAI 应用程序

Susan Sarandon
Susan Sarandon原创
2024-10-09 06:11:02299浏览

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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn