🍱🔗 BentoChain - 在BentoML上部署LangChain
参考:Medium 文章
BentoChain是一个使用🍱 BentoML部署🦜️🔗 LangChain的示例,灵感来自langchain-gradio-template。这个示例展示了如何使用OpenAI API、Transformers语音模型、Gradio和BentoML创建一个语音聊天机器人。聊天机器人从麦克风接收输入,然后使用语音识别模型将其转换为文本。
聊天机器人以文本形式回应用户的输入,然后可以使用文本到语音模型将其播放给用户。
演示
https://user-images.githubusercontent.com/6267065/235378103-54dd7c5b-16d1-4be7-b44a-fedde094c516.mp4
为什么要使用BentoML部署LangChain应用?
🐳 将LangChain应用容器化为标准OCI镜像。
🎱 自动生成OpenAPI和gRPC端点。
☁️ 将模型部署为在最优硬件上运行并独立扩展的微服务。
使用说明
安装Python依赖。
poetry install
poetry shell
下载并保存语音识别和文本到语音模型。
python train.py
在本地启动应用。
bentoml serve
访问http://0.0.0.0:3000获取OpenAPI Swagger页面,访问http://0.0.0.0:3000/chatbot获取聊天机器人的Gradio UI。请注意,由于端点不是HTTPS,麦克风输入功能可能在Google Chrome等浏览器上无法使用。但是,在部署到BentoCloud后,麦克风输入功能将正常工作。
将应用构建成可分发的Bento工件。
bentoml build
构建BentoML服务"voicegpt:vmjw2vucbodwkcvj",构建上下文为"/Users/ssheng/github/BentoChain"。
打包模型"speecht5_tts_processor:7pjfnkucbgjzycvj"
打包模型"speecht5_tts_vocoder:7suthpucbgjzycvj"
打包模型"whisper_processor:7s6wbnecbgjzycvj"
打包模型"whisper_model:7td75iucbgjzycvj"
打包模型"speecht5_tts_model:7pkfc3ecbgjzycvj"
██████╗░███████╗███╗░░██╗████████╗░█████╗░███╗░░░███╗██╗░░░░░
██╔══██╗██╔════╝████╗░██║╚══██╔══╝██╔══██╗████╗░████║██║░░░░░
██████╦╝█████╗░░██╔██╗██║░░░██║░░░██║░░██║██╔████╔██║██║░░░░░
██╔══██╗██╔══╝░░██║╚████║░░░██║░░░██║░░██║██║╚██╔╝██║██║░░░░░
██████╦╝███████╗██║░╚███║░░░██║░░░╚█████╔╝██║░╚═╝░██║███████╗
╚═════╝░╚══════╝╚═╝░░╚══╝░░░╚═╝░░░░╚════╝░╚═╝░░░░░╚═╝╚══════╝
成功构建Bento(标签="voicegpt:vmjw2vucbodwkcvj")。
可能的下一步:
* 使用`bentoml containerize`将您的Bento容器化:
$ bentoml containerize voicegpt:vmjw2vucbodwkcvj
* 使用`bentoml push`推送到BentoCloud:
$ bentoml push voicegpt:vmjw2vucbodwkcvj
生产部署
BentoML提供了多种部署选项。 为文本嵌入服务设置生产就绪端点的最简单方法是通过BentoCloud, 这是由BentoML团队为BentoML构建的无服务器云平台。
后续步骤:
-
在这里注册BentoCloud账户。
-
获取API令牌,参见此处的说明。
-
将您的Bento推送到BentoCloud:
bentoml push voicegpt:vmjw2vucbodwkcvj
-
通过Web UI部署,参见在BentoCloud上部署
然后推送到BentoCloud。