一个基于 FastAPI 的多模型 LLM Web 工具平台,支持 OpenAI / Ollama 端点接入,提供对话、OCR 图文识别、ASR 语音转文字等多种工具。
# 安装依赖
pip install -e .
# 启动服务(默认端口 8000)
python main.py
浏览器访问 http://localhost:8000
# 运行容器
docker run -d \
-p 8000:8000 \
-v ./data:/app/data \
brantwang/llm-toolbox:v0.0.2
services:
llm-toolbox:
image: brantwang/llm-toolbox:v0.0.2
container_name: llm-toolbox
ports:
- "${APP_PORT:-8000}:${APP_PORT:-8000}"
environment:
- APP_HOST=0.0.0.0
- APP_PORT=${APP_PORT:-8000}
- APP_RELOAD=false
volumes:
- ./data:/app/data
restart: unless-stopped
| 变量 | 说明 | 默认值 |
|---|---|---|
APP_HOST | 监听地址 | 0.0.0.0 |
APP_PORT | 监听端口 | 8000 |
APP_RELOAD | 热重载开关 | false |
+ 按钮,填写 API 地址和密钥,测试连接后保存+ 按钮,选择工具类型、端点和模型,设置系统提示词├── main.py # FastAPI 主应用,路由和业务逻辑
├── models.py # Pydantic 数据模型定义
├── database.py # SQLite 异步数据库操作
├── llm/
│ ├── base.py # LLM 客户端基类
│ ├── openai_client.py # OpenAI 兼容 API 客户端
│ └── ollama_client.py # Ollama API 客户端
├── html/
│ ├── templates/
│ │ └── index.html # 主页面模板
│ └── static/
│ ├── css/
│ │ ├── style.css # 自定义样式
│ │ └── bootstrap.min.css
│ └── js/
│ ├── app.js # 前端交互逻辑
│ └── bootstrap.bundle.min.js
├── data/ # 数据目录(SQLite 数据库 + 上传文件)
├── Dockerfile # Docker 镜像构建
└── docker-compose.yml # Docker Compose 配置
GET /api/endpoints — 获取端点列表POST /api/endpoints — 创建端点PUT /api/endpoints/{id} — 更新端点DELETE /api/endpoints/{id} — 删除端点POST /api/endpoints/test — 测试端点连接POST /api/endpoints/{id}/fetch-models — 拉取可用模型POST /api/endpoints/{id}/models/batch — 批量添加模型GET /api/tools — 获取工具列表POST /api/tools — 创建工具PUT /api/tools/{id} — 更新工具DELETE /api/tools/{id} — 删除工具GET /api/conversations — 获取对话列表GET /api/conversations/{id} — 获取对话详情DELETE /api/conversations/{id} — 删除对话POST /api/chat/stream — 流式对话(SSE)POST /api/audio/upload — 上传音频文件POST /api/audio/transcribe — 音频转录Content type
Image
Digest
sha256:6c8e26499…
Size
248.1 MB
Last updated
7 months ago
docker pull brantwang/llm-toolbox