一个基于Flask的LLM应用后端服务框架,提供AI应用管理和对话接口。
LLMops-API是一个用于管理和部署AI应用的后端服务框架,提供了应用管理、对话接口等核心功能。该框架采用Flask作为Web框架,SQLAlchemy作为ORM,支持依赖注入、数据库迁移等特性。
- Web框架:Flask 3.1.2
- ORM:Flask-SQLAlchemy 3.1.1
- 数据库迁移:Flask-Migrate 4.1.0
- 依赖注入:Injector 0.22.0
- 表单验证:Flask-WTF 1.2.2, WTForms 3.2.1
- LLM集成:LangChain 1.0.2, LangChain-OpenAI 1.0.1, OpenAI 2.6.1
- 配置管理:python-dotenv 1.2.1
- 测试框架:pytest 8.4.2
llmops-api/
├── app/ # 应用入口
│ ├── http/ # HTTP服务相关
├── config/ # 配置文件
├── internal/ # 内部模块
│ ├── exception/ # 异常定义
│ ├── extension/ # 扩展模块
│ ├── handler/ # 请求处理器
│ ├── migration/ # 数据库迁移脚本
│ ├── model/ # 数据模型
│ ├── router/ # 路由定义
│ ├── schema/ # 数据验证模式
│ ├── server/ # 服务器定义
│ ├── service/ # 业务逻辑服务
├── pkg/ # 公共包
│ ├── response/ # 响应格式化
│ ├── sqlalchemy/ # SQLAlchemy扩展
├── storage/ # 存储目录
├── requirements.txt # 项目依赖
- Python 3.8+
- 数据库(支持PostgreSQL,需配置
SQLALCHEMY_DATABASE_URI)
- 克隆项目
git clone <repository-url>
cd llmops-api- 创建虚拟环境
python -m venv venv
source venv/bin/activate # macOS/Linux
# 或
venv\Scripts\activate # Windows- 安装依赖
pip install -r requirements.txt- 配置环境变量
创建.env文件,配置必要的环境变量:
# 数据库连接信息
SQLALCHEMY_DATABASE_URI=postgresql://username:password@localhost:5432/llmops
# SQLAlchemy配置
SQLALCHEMY_POOL_SIZE=30
SQLALCHEMY_POOL_RECYCLE=3600
SQLALCHEMY_ECHO=True
# WTF配置
WTF_CSRF_ENABLED=False
# OpenAI API配置(用于调试接口)
OPENAI_API_KEY=your_api_key_here
- 初始化数据库
# 运行数据库迁移
flask db upgradepython -m app.http.app服务将在http://localhost:5000启动。
POST /apps/<app_id>/debug
请求体:
{
"query": "你好,请介绍一下自己"
}响应:
{
"code": "success",
"message": "",
"data": {
"content": "你好,我是由Malog开发的AI人工智能助手,热心回答一切知道的问题。"
}
}注意:以下接口暂未启用,需要在
router.py中取消注释
-
创建应用
POST /app -
获取应用信息
GET /app/<app_id> -
更新应用
POST /app/<app_id> -
删除应用
POST /app/<app_id>/delete
数据模型定义在internal/model/目录下,目前包含App模型用于存储应用信息。
- 在
internal/handler/目录下创建或更新处理器 - 在
internal/router/router.py中注册新路由 - 如果需要表单验证,在
internal/schema/中定义验证模式
- 在
internal/model/目录下创建新的模型类 - 运行数据库迁移生成脚本
flask db migrate -m "Add new model" - 应用迁移
flask db upgrade
框架内置了统一的异常处理机制,自定义异常定义在internal/exception/exception.py中:
CustomException: 基础异常类FailException: 操作失败异常NotFoundException: 资源未找到异常UnauthorizedException: 未授权异常ForbiddenException: 禁止访问异常ValidErrorException: 验证错误异常
框架集成了LangChain,支持多种LLM模型。目前在调试接口中使用了OpenAI的qwen3-max模型,并实现了基于文件的对话历史存储。
配置文件位于config/目录下:
config.py: 主配置类,从环境变量加载配置default_config.py: 默认配置值
- 使用Gunicorn或uWSGI作为WSGI服务器
- 配置Nginx作为反向代理
- 设置适当的数据库连接池大小
- 关闭调试模式
生产环境中建议配置以下环境变量:
# 关闭调试模式
FLASK_ENV=production
# 数据库配置
SQLALCHEMY_DATABASE_URI=postgresql://username:password@localhost:5432/llmops
SQLALCHEMY_ECHO=False
# 安全配置
SECRET_KEY=your_secret_key_here
WTF_CSRF_ENABLED=True
MIT
Malog ([email protected])