# 技术选型 > 本项目技术选型说明,包含与框架规范的覆盖声明 --- ## 一、遵循框架规范 | 层级 | 技术 | 说明 | |------|------|------| | **前端框架** | Vue 3 + TypeScript | 符合框架规范 | | **构建工具** | Vite | 符合框架规范 | | **UI 组件库** | Element Plus | 符合框架规范 | | **CSS 方案** | Tailwind CSS | 符合框架规范 | | **HTTP 客户端** | Axios | 符合框架规范 | | **状态管理** | Pinia | 按需使用 | | **后端框架** | Python + FastAPI | 符合框架规范 | | **容器化** | Docker + Docker Compose | 符合框架规范 | --- ## 二、技术选型覆盖 > 以下选项与框架默认规范不同,需特别说明 | 项目 | 框架默认 | 本项目选择 | 覆盖原因 | |------|----------|------------|----------| | **AI 网关** | OpenRouter.ai | Coze API | 复用已有 Coze 工作流,包含完整面试逻辑 | | **数据存储** | MySQL | Coze 数据库 | 复用现有数据结构,减少开发工作量 | | **实时音视频** | - | 火山引擎 RTC | 与 Coze 同属火山引擎生态,官方支持对接 | --- ## 三、第三方服务依赖 ### 3.1 Coze 平台 | 资源 | ID | 用途 | |------|-----|------| | Bot(工作流) | 7595113005181386792 | AI 面试官对话逻辑 | | 数据库 | 7595077053909712922 | 候选人数据存储 | **API 端点**: - 基础 URL:`https://api.coze.cn` - 文件上传:`POST /v1/files/upload` - 语音房间:`POST /v1/audio/rooms` - 数据库查询:`POST /v1/database/query` ### 3.2 火山引擎 RTC | 配置项 | 说明 | |--------|------| | SDK | `@volcengine/rtc` | | 音频格式 | PCM 16000Hz | | 用途 | 前端与 Coze Bot 实时语音通话 | --- ## 四、环境变量 ```bash # Coze 配置 COZE_API_BASE=https://api.coze.cn COZE_PAT_TOKEN=pat_xxx # 从 Coze 平台获取 COZE_BOT_ID=7595077233002840079 COZE_DATABASE_ID=7595077053909712922 # 火山引擎 RTC 配置 VOLCENGINE_APP_ID=xxx # 从火山引擎控制台获取 VOLCENGINE_APP_KEY=xxx # 服务配置 API_PORT=8000 FRONTEND_URL=http://localhost:5173 ``` --- ## 五、前端依赖清单 ```json { "dependencies": { "vue": "^3.4.0", "vue-router": "^4.2.0", "pinia": "^2.1.0", "axios": "^1.6.0", "element-plus": "^2.5.0", "@element-plus/icons-vue": "^2.3.0", "@volcengine/rtc": "^4.x" }, "devDependencies": { "typescript": "^5.3.0", "vite": "^5.0.0", "tailwindcss": "^3.4.0", "@vitejs/plugin-vue": "^5.0.0" } } ``` --- ## 六、后端依赖清单 ```txt # requirements.txt fastapi>=0.109.0 uvicorn>=0.27.0 httpx>=0.26.0 python-multipart>=0.0.6 pydantic>=2.5.0 python-dotenv>=1.0.0 ``` --- ## 变更日志 | 日期 | 变更内容 | 操作人 | |------|---------|--------| | 2026-01-20 | 初始化技术选型 | AI |