一行代码创建可对文档问答的生产级LLM机器人,自动带API和UI
LangChain管理链路、OpenAI生成答案、langchain-serve与Gradio分别自动暴露API和UI,Megabots封装为一行调用
方案简介
Megabots 是一个提供开箱即用、生产就绪 LLM 应用的 Python 库,核心目标是让开发者"不需要从零搭建"就能创建机器人。它最典型的配方是把 LangChain(链管理)、OpenAI(答案生成)、langchain-serve(生产级 API)、Gradio(UI)组合在一起,封装成一个 bot() 函数调用。
该库可以创建的机器人具备:对文档问答、连接向量数据库、自动通过 FastAPI 暴露健壮 API、自动用 Gradio 暴露 UI 等能力。适合希望在几分钟内搭建出文档问答机器人并快速上线 API 与界面的开发者。注意该项目仍在开发中,API 可能变化。
亮点与能力
- 分钟级创建生产就绪的机器人
- 可对文档进行问答(qna-over-docs)
- 可连接向量数据库
- 使用 FastAPI 自动暴露健壮的 API(早期版本)
- 使用 Gradio 自动暴露 UI
- 支持自定义 prompt(含 context、question、history 变量)
- 支持为对话添加 memory(如 conversation-buffer)
- 可保存/加载索引以节省索引构建成本
组成与分工
- Megabots:核心库,将所有组件封装为
bot()一行式接口 - LangChain:管理 LLM 链(chains)
- OpenAI:生成答案(当前唯一支持的 LLM)
- langchain-serve:创建生产就绪的 API 服务
- FastAPI:API 底层框架
- Gradio:自动生成机器人 UI
前置要求
需要 Python 环境、OPENAI_API_KEY,安装库:
bash
pip install megabots
实施步骤
1. 安装并设置密钥
bash
pip install megabots
python
os.environ["OPENAI_API_KEY"] = "my key"
2. 创建机器人并提问
python
from megabots import bot
qnabot = bot("qna-over-docs")
answer = qnabot.ask("How do I use this bot?")
创建时会自动从 ./index 或 index.pkl 加载数据,两者需有其一。
3. 保存/加载索引以省成本
python
qnabot.save_index("index.pkl")
qnabot = bot("qna-over-docs", index="./index.pkl")
也可以从文档目录建索引:
python
qnabot = bot("qna-over-docs", index="./index")
4. 换模型(可选)
python
qnabot = bot("qna-over-docs", model="text-davinci-003")
5. 暴露 API
bash
lc-serve deploy local megabots.api
访问 http://localhost:8000/docs 查看 API 文档。云部署:
bash
lc-serve deploy jcloud megabots.api
使用与配置要点
- 自定义 prompt:
qna-over-docs类型需传入context(索引中检索到的知识)和question(用户问题)两个变量 - 使用 memory 时若用自定义 prompt,需额外加入
history变量以承载聊天历史 - memory 可传字符串(如
"conversation-buffer"),或用memory工厂函数做更细配置,如mem("conversation-buffer-window", k=5) - 更换模型通过
model参数,如"text-davinci-003"
注意事项与常见问题
- 项目仍在进行中(work in progress),API 可能变化
- 创建 bot 时需要
./index目录或index.pkl二者有其一 - 构建索引会调用 GPT,产生成本,建议保存索引复用
- 使用 memory + 自定义 prompt 时必须包含
history变量,否则聊天历史无法注入 - langchain-serve API 属于 early release
- 暂时只支持 OpenAI 生成答案,未来计划支持其他 LLM
优缺点
- ✓ 分钟级产出生产可用机器人
- ✓ 自动暴露API与UI
- ✕ API尚在早期发布阶段
- ✕ 目前仅支持OpenAI生成答案
出处
本方案挖掘自开源项目 momegas/megabots,方案内容与实施命令均来自其 README 原文。
本方案由真实开源项目挖掘整理,实施命令均来自其 README 原文,安装使用请遵循项目开源协议。