# API 设计文档 所有接口前缀为 `/api/v1`,返回 JSON 格式数据。认证暂未启用(单用户环境)。 ## 1. AI 模型管理 (`/models`) ### 1.1 创建模型 `POST /models` **请求体**: ```json { "name": "GPT-4", "provider": "openai", "endpoint": "https://api.openai.com/v1/chat/completions", "api_key": "sk-...", "extra_params": {"max_tokens": 1000, "temperature": 0.7}, "is_enabled": true, "remark": "主模型" } ``` **响应**:返回创建的模型对象(API Key 已加密)。 ### 1.2 获取模型列表 `GET /models?enabled=true&page=1&limit=20` **响应**:分页列表。 ### 1.3 获取模型详情 `GET /models/{id}` ### 1.4 更新模型 `PUT /models/{id}`(字段同创建) ### 1.5 删除模型 `DELETE /models/{id}` ### 1.6 启用/禁用 `PATCH /models/{id}/toggle` 请求体`{"is_enabled": false}` ## 2. 模板管理 (`/templates`) ### 2.1 上传模板 `POST /templates` (multipart/form-data) 字段`file` (.docx), `name` (可选) **响应**:模板对象(含生成的 HTML 内容)。 ### 2.2 获取模板列表 `GET /templates` (分页) ### 2.3 获取模板 HTML 内容 `GET /templates/{id}/html` 返回`{"html_content": "..."}` ### 2.4 更新模板 HTML(编辑后保存) `PUT /templates/{id}/html` 请求体`{"html_content": "..."}` 后端将同步更新对应的 .docx 文件。 ### 2.5 下载最终文档 `GET /templates/{id}/download` 返回文件流(.docx)。 ## 3. 生成点管理 (`/generation-points`) ### 3.1 创建生成点 `POST /generation-points` ```json { "template_id": "uuid", "position": {"start": 100, "end": 200}, "prompt": "请根据参考文件生成一段总结", "model_id": "uuid (可选)", "ref_file": "file (multipart, 可选)" } ``` **响应**:生成点对象。 ### 3.2 获取模板的所有生成点 `GET /generation-points?template_id={id}` ### 3.3 更新生成点 `PUT /generation-points/{id}`(字段同创建) ### 3.4 删除生成点 `DELETE /generation-points/{id}` ## 4. 生成任务 (`/tasks`) ### 4.1 触发生成任务 `POST /templates/{template_id}/generate` **响应**: ```json { "task_id": "uuid", "status": "pending" } ``` ### 4.2 查询任务状态 `GET /tasks/{task_id}` **响应**: ```json { "id": "uuid", "status": "done", "result_file_path": "/path/to/result.docx", "error_msg": null, "created_at": "...", "finished_at": "..." } ``` ### 4.3 下载生成结果 `GET /tasks/{task_id}/download` 返回 .docx 文件流。 ## 错误码规范 - `200`: 成功 - `400`: 请求参数错误 - `404`: 资源不存在 - `500`: 服务器内部错误 错误响应格式: ```json { "detail": "错误描述" } ```