leon 2f151b3f18 feat:新增 Shell 脚本并修复迁移兼容性 il y a 1 mois
..
.idea ef4fadc284 fix:调整项目目录 il y a 1 mois
evals fa0f7d2ea1 init:项目初始化 il y a 1 mois
migrations 2f151b3f18 feat:新增 Shell 脚本并修复迁移兼容性 il y a 1 mois
src 1a3290ce8f fix:1、处理前端展示bug;2、新增代码注释 il y a 1 mois
tests 2f151b3f18 feat:新增 Shell 脚本并修复迁移兼容性 il y a 1 mois
.env e16061333b fix:调整.env文件 il y a 1 mois
.env.example 2f151b3f18 feat:新增 Shell 脚本并修复迁移兼容性 il y a 1 mois
README.md cd9621d1cc fix:调整项目目录 il y a 1 mois
alembic.ini cd9621d1cc fix:调整项目目录 il y a 1 mois
pyproject.toml cd9621d1cc fix:调整项目目录 il y a 1 mois
uv.lock cd9621d1cc fix:调整项目目录 il y a 1 mois

README.md

智保通后端

本目录是智保通的统一后端,使用 Python 3.12 和 FastAPI 开发,负责 API、 业务规则、身份认证及数据库访问。

技术栈

  • Python 3.12
  • FastAPI、Pydantic
  • SQLAlchemy、Alembic
  • LangChain 1.x、DeepSeek、LangSmith
  • MySQL 8、Redis
  • uv(依赖与虚拟环境管理)
  • pytest、Ruff、mypy(测试与代码检查)

项目使用 pyproject.tomluv.lock 管理依赖,不使用 requirements.txt、Poetry 或 Conda。

目录结构

backend/
├── src/
│   └── zbt/               # 可安装的智保通 Python 包
│       ├── api/           # HTTP 路由、请求参数和响应格式
│       ├── commands/      # 初始化数据等命令行工具
│       ├── core/          # 配置、安全、密码和公共错误
│       ├── domains/       # 业务模型、仓储接口和业务服务
│       ├── harness/       # Agent 内核、策略和资源
│       ├── infrastructure/# MySQL、Redis 等基础设施实现
│       └── main.py        # FastAPI 应用入口
├── migrations/            # 三个数据库的 Alembic 迁移
├── tests/                 # 自动化测试
├── alembic.ini
├── pyproject.toml
└── uv.lock

项目采用 src 布局,uv sync 会以可编辑模式安装 zbt 包;执行 uv build 可以生成 wheel 和源码包。

代码主要调用方向:

HTTP 请求 → api 路由 → domain service → repository → MySQL

AI Agent 的主要调用方向:

Agent API → Agent service → LangChain create_agent
          → DeepSeek(OpenAI 兼容接口)→ 产品目录 Tool
          → Agent MySQL 持久化 + LangSmith Trace

环境配置

后端读取当前 backend 目录中的 .env

首次使用时,在 backend 目录创建并配置 .env

notepad .env

常用配置包括:

  • MYSQL_HOSTMYSQL_PORT:MySQL 地址和端口
  • MYSQL_USERMYSQL_PASSWORD:后端数据库账号
  • REDIS_URL:Redis 连接地址
  • JWT_ACCESS_SECRETJWT_REFRESH_SECRET:登录令牌密钥
  • DEV_FIXED_OTP:开发环境固定验证码
  • DEEPSEEK_API_KEYDEEPSEEK_BASE_URLDEEPSEEK_MODEL:模型配置
  • LANGSMITH_API_KEYLANGSMITH_ENDPOINTLANGSMITH_PROJECTLANGSMITH_TRACING:Agent 链路追踪配置
  • MOCK_PAYMENT_CALLBACK_SECRET:本地模拟支付回调的 HMAC 签名密钥

不要把包含真实密码和密钥的 .env 提交到 Git。

安装后端依赖

Set-Location C:\Users\yxl\Desktop\new_harness\01-zhibaotong-smart-enrollment\backend
uv sync --locked

uv sync --locked 会按照 uv.lock 创建或更新 .venv,确保每台电脑安装 相同版本的依赖。

初始化数据库

请先启动 MySQL 8 和 Redis,然后在项目根目录执行:

.\scripts\check-env.ps1
.\scripts\init-databases.ps1
.\scripts\migrate.ps1
.\scripts\seed.ps1
.\scripts\build-analytics.ps1
.\scripts\verify-seed.ps1

这些脚本依次完成环境检查、创建数据库、建表、写入初始数据、构建分析数据 和验证初始化结果。

单独启动后端

Set-Location C:\Users\yxl\Desktop\new_harness\01-zhibaotong-smart-enrollment\backend
uv run uvicorn zbt.main:app --reload --host 127.0.0.1 --port 8000

启动后访问:

Ctrl + C 停止后端。

测试和代码检查

backend 目录执行:

uv run pytest
uv run ruff check .
uv run mypy app

也可以在项目根目录执行 .\scripts\test.ps1,同时检查前端和后端。

数据库迁移

项目使用三个相互独立的数据库:

  • insurance_s1_core
  • insurance_s1_agent
  • insurance_s1_analytics

需要手动执行迁移时,在 backend 目录运行:

uv run alembic -c alembic.ini --name alembic_core upgrade head
uv run alembic -c alembic.ini --name alembic_agent upgrade head
uv run alembic -c alembic.ini --name alembic_analytics upgrade head

已经发布的迁移文件不要直接修改;表结构发生变化时应新增 revision。