logo
0
0
Login

多模型聚合平台

基于 FastAPI + PostgreSQL 构建的多模型聚合平台,支持统一调用多家大模型API,具有用户管理、模型配置、对话管理等功能。

功能特性

  • 🔐 用户认证: 支持用户注册、登录、JWT Token认证
  • 🤖 多模型支持: 封装智谱AI、通义千问等大模型API
  • 💬 对话管理: 支持创建、查看、删除对话,对话列表按时间排序
  • ⚙️ 管理后台: 管理员可配置模型参数和API密钥
  • 🐳 容器化部署: 支持Docker和Docker Compose部署
  • 🌐 云原生支持: 适配CNB云原生环境,支持端口自动转发

技术栈

  • 后端: FastAPI, SQLAlchemy, Pydantic
  • 数据库: PostgreSQL
  • 认证: JWT, bcrypt
  • 前端: HTML5, Bootstrap, JavaScript
  • 部署: Docker, Docker Compose

项目结构

/workspace/ ├── main.py # FastAPI主应用 ├── database.py # 数据库模型和连接 ├── schemas.py # Pydantic数据模型 ├── auth.py # 认证和授权模块 ├── model_services.py # 模型服务封装 ├── requirements.txt # Python依赖 ├── Dockerfile # Docker镜像配置 ├── docker-compose.yml # Docker Compose配置 ├── init_db.py # 数据库初始化脚本 ├── .env.example # 环境变量示例 ├── templates/ # HTML模板 │ ├── index.html # 用户前端 │ └── admin.html # 管理后台 ├── static/ # 静态文件 │ └── js/ │ ├── app.js # 用户前端JS │ └── admin.js # 管理后台JS └── README.md # 项目说明

快速开始

1. 环境准备

确保已安装:

  • Python 3.8+
  • Docker & Docker Compose
  • PostgreSQL (可选,Docker方式会自动安装)

2. 安装依赖

pip install -r requirements.txt

3. 数据库初始化

方式一:使用Docker Compose(推荐)

# 启动所有服务 docker compose up -d # 查看服务状态 docker compose ps # 查看日志 docker compose logs -f app

方式二:手动启动数据库

# 启动PostgreSQL docker run -d --name postgres -p 5432:5432 \ -e POSTGRES_DB=model_platform \ -e POSTGRES_USER=postgres \ -e POSTGRES_PASSWORD=password \ postgres:15 # 初始化数据库 python init_db.py

4. 启动应用

# 开发模式(自动重载) uvicorn main:app --host 0.0.0.0 --port 8000 --reload # 生产模式 uvicorn main:app --host 0.0.0.0 --port 8000

5. 访问应用

默认账号

  • 管理员: admin / admin123
  • 首次启动会自动创建默认管理员账号

API接口

认证接口

  • POST /api/auth/register - 用户注册
  • POST /api/auth/login - 用户登录

模型管理接口(管理员)

  • POST /api/admin/models - 添加模型配置
  • GET /api/admin/models - 获取模型列表

用户接口

  • GET /api/models - 获取可用模型
  • POST /api/conversations - 创建对话
  • GET /api/conversations - 获取对话列表
  • GET /api/conversations/{id} - 获取对话详情
  • POST /api/chat - 发送消息

模型配置

在管理后台添加模型配置时,需要提供以下信息:

智谱AI (Zhipu)

  • 提供商: zhipu
  • API URL: https://open.bigmodel.cn/api/paas/v4/chat/completions
  • API Key: 从智谱AI平台获取

通义千问 (Qwen)

  • 提供商: qwen
  • API URL: https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions
  • API Key: 从阿里云DashScope获取

OpenAI兼容

  • 提供商: openai
  • API URL: https://api.openai.com/v1/chat/completions
  • API Key: 从OpenAI平台获取

部署到云服务器

1. 构建Docker镜像

docker compose build

2. 启动服务

docker compose up -d

3. 环境变量配置

创建 .env 文件:

cp .env.example .env # 编辑 .env 文件,设置实际的API密钥等配置

4. CNB云原生环境

在CNB环境中,服务会自动通过外网地址访问:

  • 用户界面: https://*******-8000.cnb.run/
  • 管理后台: https://*******-8000.cnb.run/admin

开发说明

添加新的模型提供商

  1. model_services.py 中继承 BaseModelService
  2. 实现 chat 方法
  3. ModelServiceFactory 中注册新的提供商

数据库迁移

项目使用SQLAlchemy的自动建表功能。对于生产环境,建议使用Alembic进行数据库迁移。

故障排除

常见问题

  1. 数据库连接失败

    • 检查PostgreSQL服务是否正常运行
    • 验证数据库连接字符串
  2. 模型API调用失败

    • 检查API密钥是否正确
    • 验证API URL是否可访问
    • 查看应用日志获取详细错误信息
  3. 端口冲突

    • 修改 docker-compose.yml 中的端口映射
    • 确保8000和5432端口未被占用

许可证

MIT License

About

No description, topics, or website provided.
Language
Python47.7%
JavaScript32%
HTML20%
Dockerfile0.3%