?想要构建和部署交互式 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...
现在,让我们添加一个 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 Cloud,您只需在 main.py 中添加两行:
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 应用程序更具可扩展性和弹性:
尝试一下并告诉我你的想法?
以上是在大量代码中构建和部署无服务器 OpenAI 应用程序的详细内容。更多信息请关注PHP中文网其他相关文章!