agent-Specialization/api_doc/workspaces.md

116 lines
2.1 KiB
Markdown
Raw 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.

# 工作区Workspace管理 API
本项目的 API v1 支持**多工作区并行**
- 一个 API 用户可以创建多个 `workspace_id`
- 每个 workspace 有独立的:
- 容器(运行隔离)
- `project/`(工具读写的根目录)
- `data/`(对话等数据落盘)
- `user_upload/`(上传目录)
- 并发限制以 workspace 为粒度:**同一 workspace 禁止并发任务**,不同 workspace 可同时运行。
鉴权:所有接口均需要 `Authorization: Bearer <TOKEN>`
`workspace_id` 规则:
- 仅允许字符:字母/数字/`.`/`_`/`-`
- 长度1~40
---
## 1) 列出工作区
### GET `/api/v1/workspaces`
成功响应200
```json
{
"success": true,
"items": [
{
"workspace_id": "ws1",
"project_path": ".../api/users/api_demo/workspaces/ws1/project",
"data_dir": ".../api/users/api_demo/workspaces/ws1/data",
"has_conversations": true
}
]
}
```
---
## 2) 创建/确保工作区存在
### POST `/api/v1/workspaces`
Body(JSON)
```json
{ "workspace_id": "ws1" }
```
成功响应200
```json
{
"success": true,
"workspace_id": "ws1",
"project_path": ".../api/users/<user>/workspaces/ws1/project",
"data_dir": ".../api/users/<user>/workspaces/ws1/data"
}
```
错误:
- `400`workspace_id 不合法
---
## 3) 查询单个工作区
### GET `/api/v1/workspaces/{workspace_id}`
成功响应200
```json
{
"success": true,
"workspace": {
"workspace_id": "ws1",
"project_path": "...",
"data_dir": "...",
"has_conversations": true
}
}
```
错误:
- `404`workspace 不存在
---
## 4) 删除工作区
### DELETE `/api/v1/workspaces/{workspace_id}`
说明:
- 会删除该 workspace 的 `project/`、`data/`、`logs/` 等目录;
- **不会删除用户级共享**的 `prompts/personalization`(它们不属于 workspace
- 如果该 workspace 有运行中的任务,会返回 `409`(禁止删除)。
成功响应200
```json
{ "success": true, "workspace_id": "ws1" }
```
错误:
- `409`:该工作区有运行中的任务
- `404`workspace 不存在