Administrator
发布于 2025-12-21 / 9 阅读
0
0

使用python自建一个ai后端

使用fast-api 自建一个ai后端

readme文档

# Python AI Backend

企业级 FastAPI 后端项目模板,采用三层架构(Controller → Service → Repository),支持 MySQL/SQL Server 数据库连接,便于维护和扩展。

---

## 功能概览

- **RESTful API 服务**(FastAPI)
- **数据库访问**(SQLAlchemy ORM)
- **三层架构**:Controller / Service / Repository
- **数据库迁移支持**(Alembic)
- **轻量可维护、企业规范**
- **无需鉴权**(可后期扩展 JWT 或 OAuth2)

---

## 系统需求

- Python 3.11+
- MySQL 或 SQL Server 数据库
- pip
- 可选:虚拟环境管理(venv / pyenv / conda)

---

## 安装依赖

bash
# 1. 克隆项目
git clone <project-repo-url>
cd python-ai-backend

# 2. 创建虚拟环境
python -m venv .venv

# 3. 激活虚拟环境
# macOS / Linux
source .venv/bin/activate
# Windows
.venv\Scripts\activate

# 4. 安装依赖
pip install -r requirements.txt


---

## 配置环境变量

在项目根目录创建 `.env` 文件,例如:

DB_DRIVER=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_NAME=ui_use
DB_USER=xxx
DB_PASSWORD=xxx
OPENAI_API_KEY=your_openai_api_key


---

## 目录结构说明

```text
python-ai/
├── app/
│   ├── main.py                # 应用入口
│   │
│   ├── core/                  # 基础设施
│   │   ├── config.py          # 配置管理
│   │   ├── database.py        # 数据库连接
│   │   └── logging.py         # 日志管理
│   │
│   ├── api/                   # Controller 层
│   │   └── v1/
│   │       └── health.py      # 示例接口
│   │
│   ├── service/               # 业务层
│   │   └── ui_use_service.py
│   │
│   ├── repository/            # 数据访问层
│   │   └── ui_use_repo.py
│   │
│   ├── model/                 # ORM 模型
│   │   └── ui_use.py
│   │
│   └── schema/                # 请求/响应模型
│       └── ui_use_schema.py
│
├── alembic/                   # 数据库迁移
├── alembic.ini
├── requirements.txt
└── .env


---

## 启动开发环境


# 进入虚拟环境
source .venv/bin/activate

# 启动 FastAPI 服务(热重载)
uvicorn app.main:app --reload

# 浏览器访问
# http://127.0.0.1:8000/docs

# 停止服务
Ctrl + C

# 退出虚拟环境
deactivate


---

## 部署生产环境(Windows / Linux)


# 禁用 reload 模式
python run.py
uvicorn app.main:app --host 0.0.0.0 --port 8000 --workers 4


1. 可配合 Windows 服务 或 Linux systemd 实现开机自启  
2. 配置日志文件输出,方便运维监控  
3. 使用 `.env` 管理敏感信息(数据库密码、OpenAI Key 等)  

---

## 数据库迁移


# 初始化 Alembic(第一次执行)
alembic init alembic

# 自动生成迁移脚本
alembic revision --autogenerate -m "init schema"

# 执行迁移
alembic upgrade head


---

## API 版本管理


from fastapi import FastAPI
from app.api.v1 import v1_router
from app.api.v2 import v2_router

app = FastAPI(title="Company AI Backend")

# 挂载不同版本 API
app.include_router(v1_router, prefix="/api/v1")
app.include_router(v2_router, prefix="/api/v2")


评论