Files
012-kaopeilian/docs/规划/后端开发拆分策略/项目脚手架结构.md
111 998211c483 feat: 初始化考培练系统项目
- 从服务器拉取完整代码
- 按框架规范整理项目结构
- 配置 Drone CI 测试环境部署
- 包含后端(FastAPI)、前端(Vue3)、管理端

技术栈: Vue3 + TypeScript + FastAPI + MySQL
2026-01-24 19:33:28 +08:00

230 lines
8.8 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 考培练系统后端项目脚手架结构
## 完整的项目目录结构
```
kaopeilian-backend/
├── app/
│ ├── __init__.py
│ ├── main.py # FastAPI 应用入口
│ ├── config/ # 统一配置管理
│ │ ├── __init__.py
│ │ ├── settings.py # 系统配置
│ │ ├── database.py # 数据库配置
│ │ ├── coze_config.py # Coze平台配置
│ │ └── dify_config.py # Dify平台配置
│ ├── core/ # 核心公共模块
│ │ ├── __init__.py
│ │ ├── dependencies.py # 依赖注入
│ │ ├── security.py # 认证授权
│ │ ├── exceptions.py # 统一异常处理
│ │ ├── middleware.py # 中间件
│ │ └── logger.py # 日志配置
│ ├── models/ # 数据库模型(统一)
│ │ ├── __init__.py
│ │ ├── base.py # 基础模型类
│ │ ├── user.py # 用户相关模型
│ │ ├── course.py # 课程相关模型
│ │ ├── exam.py # 考试相关模型
│ │ ├── training.py # 陪练相关模型
│ │ └── analytics.py # 分析相关模型
│ ├── schemas/ # Pydantic 模式(统一)
│ │ ├── __init__.py
│ │ ├── base.py # 基础响应模式
│ │ ├── user.py # 用户相关模式
│ │ ├── course.py # 课程相关模式
│ │ ├── exam.py # 考试相关模式
│ │ ├── training.py # 陪练相关模式
│ │ └── analytics.py # 分析相关模式
│ ├── services/ # 业务逻辑服务层
│ │ ├── __init__.py
│ │ ├── base_service.py # 基础服务类
│ │ ├── user_service.py # 用户业务逻辑
│ │ ├── course_service.py # 课程业务逻辑
│ │ ├── exam_service.py # 考试业务逻辑
│ │ ├── training_service.py # 陪练业务逻辑
│ │ ├── analytics_service.py # 分析业务逻辑
│ │ ├── ai/ # AI平台集成服务
│ │ │ ├── __init__.py
│ │ │ ├── base_ai_service.py # AI服务基类
│ │ │ ├── coze/ # Coze API 集成
│ │ │ │ ├── __init__.py
│ │ │ │ ├── client.py # Coze客户端封装
│ │ │ │ ├── training.py # AI陪练功能
│ │ │ │ └── chat.py # 课程对话功能
│ │ │ └── dify/ # Dify API 集成
│ │ │ ├── __init__.py
│ │ │ ├── client.py # Dify客户端封装
│ │ │ ├── exam.py # 动态考试功能
│ │ │ ├── assessment.py # 能力评估功能
│ │ │ └── recommend.py # 课程推荐功能
│ │ └── external/ # 外部服务集成
│ │ ├── __init__.py
│ │ ├── sms_service.py # 短信服务
│ │ └── badge_service.py # 智能工牌API
│ └── api/ # API 路由(按模块分离)
│ ├── __init__.py
│ ├── deps.py # 路由依赖
│ └── v1/ # API v1版本
│ ├── __init__.py
│ ├── auth.py # 认证相关
│ ├── users.py # 用户管理
│ ├── courses.py # 课程管理
│ ├── exams.py # 考试模块
│ ├── training.py # 陪练模块
│ ├── analytics.py # 数据分析
│ ├── admin.py # 系统管理
│ └── websocket.py # WebSocket支持
├── migrations/ # 数据库迁移
│ └── alembic/
│ ├── alembic.ini
│ └── versions/
├── tests/ # 测试代码
│ ├── __init__.py
│ ├── conftest.py # 测试配置
│ ├── unit/ # 单元测试
│ ├── integration/ # 集成测试
│ └── e2e/ # 端到端测试
├── scripts/ # 脚本工具
│ ├── init_db.py # 初始化数据库
│ ├── seed_data.py # 种子数据
│ └── generate_docs.py # 生成文档
├── docs/ # 项目文档
│ ├── api/ # API文档
│ ├── development/ # 开发文档
│ └── deployment/ # 部署文档
├── requirements/ # 依赖管理
│ ├── base.txt # 基础依赖
│ ├── dev.txt # 开发依赖
│ └── prod.txt # 生产依赖
├── docker/ # Docker相关
│ ├── Dockerfile
│ ├── Dockerfile.dev # 开发环境
│ └── nginx/ # Nginx配置
├── .env.example # 环境变量示例
├── .gitignore
├── docker-compose.yml # 本地开发
├── docker-compose.prod.yml # 生产环境
├── Makefile # 快捷命令
├── README.md # 项目说明
└── pyproject.toml # Python项目配置
```
## AI平台集成架构
### Coze平台集成用于AI陪练和课程对话
```python
# app/services/ai/coze/client.py
from cozepy import Coze, TokenAuth
from app.config.coze_config import settings
class CozeClient:
"""Coze平台客户端封装"""
def __init__(self):
self.client = Coze(
auth=TokenAuth(settings.COZE_API_TOKEN),
base_url=settings.COZE_API_BASE
)
async def create_conversation(self, bot_id: str):
"""创建会话"""
pass
async def stream_chat(self, bot_id: str, conversation_id: str, message: str):
"""流式对话"""
pass
```
### Dify平台集成用于动态考试和能力评估
```python
# app/services/ai/dify/client.py
import httpx
from app.config.dify_config import settings
class DifyClient:
"""Dify平台客户端封装"""
def __init__(self):
self.base_url = settings.DIFY_API_BASE
self.api_key = settings.DIFY_API_KEY
self.client = httpx.AsyncClient(
base_url=self.base_url,
headers={"Authorization": f"Bearer {self.api_key}"}
)
async def run_workflow(self, workflow_id: str, inputs: dict):
"""运行Dify工作流"""
pass
async def query_knowledge_base(self, kb_id: str, query: str):
"""查询知识库"""
pass
```
## 配置文件示例
### Coze配置app/config/coze_config.py
```python
from pydantic import BaseSettings
class CozeSettings(BaseSettings):
COZE_API_BASE: str = "https://api.coze.cn"
COZE_WORKSPACE_ID: str
COZE_API_TOKEN: str
# Bot IDs
COZE_TRAINING_BOT_ID: str # AI陪练智能体
COZE_CHAT_BOT_ID: str # 课程对话智能体
class Config:
env_file = ".env"
```
### Dify配置app/config/dify_config.py
```python
from pydantic import BaseSettings
class DifySettings(BaseSettings):
DIFY_API_BASE: str = "https://api.dify.ai/v1"
DIFY_API_KEY: str
# Workflow IDs
DIFY_EXAM_WORKFLOW_ID: str # 动态考试工作流
DIFY_ASSESSMENT_WORKFLOW_ID: str # 能力评估工作流
DIFY_RECOMMEND_WORKFLOW_ID: str # 课程推荐工作流
class Config:
env_file = ".env"
```
## 环境变量配置(.env.example
```bash
# 基础配置
DEBUG=true
LOG_LEVEL=INFO
SECRET_KEY=your-secret-key
# 数据库配置
DATABASE_URL=mysql+aiomysql://user:password@localhost:3306/kaopeilian
# Coze平台配置
COZE_API_BASE=https://api.coze.cn
COZE_WORKSPACE_ID=7474971491470688296
COZE_API_TOKEN=pat_your_token_here
COZE_TRAINING_BOT_ID=7509379008556089379
COZE_CHAT_BOT_ID=7509380917472280617
# Dify平台配置
DIFY_API_BASE=https://api.dify.ai/v1
DIFY_API_KEY=app-your-api-key-here
DIFY_EXAM_WORKFLOW_ID=workflow_exam_id
DIFY_ASSESSMENT_WORKFLOW_ID=workflow_assessment_id
DIFY_RECOMMEND_WORKFLOW_ID=workflow_recommend_id
# Redis配置用于缓存和会话
REDIS_URL=redis://localhost:6379/0
# CORS配置
CORS_ORIGINS=["http://localhost:5173", "http://localhost:3000"]
```