Luxx/assets/API.md

279 lines
5.7 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.

# API 接口文档
## 认证 `/api/auth`
| 方法 | 路径 | 说明 |
|------|------|------|
| POST | `/api/auth/register` | 用户注册 |
| POST | `/api/auth/login` | 用户登录 |
| POST | `/api/auth/logout` | 用户登出 |
| GET | `/api/auth/me` | 获取当前用户信息 |
### POST /api/auth/register
**请求体:**
```json
{
"username": "string",
"email": "user@example.com",
"password": "string"
}
```
### POST /api/auth/login
**请求体:**
```json
{
"username": "string",
"password": "string"
}
```
---
## 会话 `/api/conversations`
| 方法 | 路径 | 说明 |
|------|------|------|
| GET | `/api/conversations/` | 获取会话列表 |
| POST | `/api/conversations/` | 创建会话 |
| GET | `/api/conversations/{id}` | 获取会话详情 |
| PUT | `/api/conversations/{id}` | 更新会话 |
| DELETE | `/api/conversations/{id}` | 删除会话 |
### 创建会话请求体
```json
{
"project_id": "string (可选)",
"title": "新会话",
"model": "glm-5",
"system_prompt": "string (可选)",
"temperature": 1.0,
"max_tokens": 65536,
"thinking_enabled": false
}
```
---
## 消息 `/api/messages`
| 方法 | 路径 | 说明 |
|------|------|------|
| GET | `/api/messages/{conversation_id}` | 获取消息列表 |
| POST | `/api/messages/` | 发送消息(非流式) |
| POST | `/api/messages/stream` | 发送消息(流式 SSE |
| DELETE | `/api/messages/{id}` | 删除消息 |
### 发送消息请求体
```json
{
"conversation_id": "conv_xxx",
"content": "用户消息",
"tools_enabled": true
}
```
### SSE 事件类型
| 事件 | 说明 |
|------|------|
| `text` | 文本增量 |
| `tool_call` | 工具调用 |
| `tool_result` | 工具结果 |
| `done` | 完成 |
| `error` | 错误 |
---
## 聊天室 `/api/chat-rooms`
| 方法 | 路径 | 说明 |
|------|------|------|
| GET | `/api/chat-rooms/` | 获取聊天室列表 |
| POST | `/api/chat-rooms/` | 创建聊天室 |
| GET | `/api/chat-rooms/{room_id}` | 获取聊天室详情 |
| PUT | `/api/chat-rooms/{room_id}` | 更新聊天室 |
| DELETE | `/api/chat-rooms/{room_id}` | 删除聊天室 |
| GET | `/api/chat-rooms/{room_id}/agents` | 获取聊天室中的 Agent 列表 |
| POST | `/api/chat-rooms/{room_id}/agents` | 添加 Agent 到聊天室 |
| DELETE | `/api/chat-rooms/{room_id}/agents/{agent_id}` | 从聊天室移除 Agent |
| GET | `/api/chat-rooms/{room_id}/messages` | 获取聊天室消息历史 |
| POST | `/api/chat-rooms/{room_id}/messages` | 发送消息到聊天室SSE 流式响应) |
### 创建聊天室请求体
```json
{
"name": "聊天室名称",
"description": "描述(可选)",
"agent_ids": ["agent-1", "agent-2"]
}
```
### 添加 Agent 请求体
```json
{
"agent_id": "agent-1"
}
```
---
## WebSocket `/ws/chat-room/{room_id}`
### 连接参数
| 参数 | 类型 | 说明 | 示例 |
|------|------|------|------|
| `participant_type` | string | `user``agent` | `user` |
| `participant_id` | string | 用户 ID 或 Agent ID | `1` |
| `participant_name` | string | 显示名称 | `John` |
### 连接示例
**用户连接:**
```
ws://host/ws/chat-room/room-123?participant_type=user&participant_id=1&participant_name=John
```
**Agent 连接:**
```
ws://host/ws/chat-room/room-123?participant_type=agent&participant_id=agent-1&participant_name=Assistant
```
### 发送消息
```json
{
"action": "send_message",
"content": "Hello everyone!"
}
```
### 接收事件
| 事件 | 说明 | 数据示例 |
|------|------|---------|
| `connected` | 连接成功 | `{"room_id": "xxx", "type": "user"}` |
| `history` | 历史消息 | `{"messages": [...]}` |
| `agents` | Agent 列表 | `{"agents": [...]}` |
| `message` | 新消息 | 消息对象 |
| `typing` | 打字状态 | `{"agent_id": "xxx", "is_typing": true}` |
| `process_step` | 处理步骤 | 步骤对象 |
| `done` | 完成 | `{"message_id": "xxx", "token_count": 100}` |
| `error` | 错误 | `{"content": "error message"}` |
| `system` | 系统消息 | `{"content": "John joined", "type": "user_join"}` |
---
## Agent `/api/agents`
| 方法 | 路径 | 说明 |
|------|------|------|
| GET | `/api/agents/` | 获取 Agent 列表 |
| POST | `/api/agents/` | 创建 Agent |
| GET | `/api/agents/{id}` | 获取 Agent 详情 |
| PUT | `/api/agents/{id}` | 更新 Agent |
| DELETE | `/api/agents/{id}` | 删除 Agent |
---
## 工具 `/api/tools`
| 方法 | 路径 | 说明 |
|------|------|------|
| GET | `/api/tools/` | 获取可用工具列表 |
| GET | `/api/tools/{name}` | 获取工具详情 |
| POST | `/api/tools/{name}/execute` | 手动执行工具 |
### 工具列表响应
```json
{
"success": true,
"data": {
"tools": [...],
"categorized": {
"crawler": [...],
"code": [...],
"data": [...]
},
"total": 11
}
}
```
### 执行工具请求体
```json
{
"arg1": "value1",
"arg2": "value2"
}
```
---
## LLM 提供商 `/api/providers`
| 方法 | 路径 | 说明 |
|------|------|------|
| GET | `/api/providers/` | 获取提供商列表 |
| POST | `/api/providers/` | 创建提供商 |
| GET | `/api/providers/{id}` | 获取提供商详情 |
| PUT | `/api/providers/{id}` | 更新提供商 |
| DELETE | `/api/providers/{id}` | 删除提供商 |
| POST | `/api/providers/{id}/test` | 测试提供商连接 |
---
## 健康检查
| 方法 | 路径 | 说明 |
|------|------|------|
| GET | `/api/health` | 健康检查 |
| GET | `/` | 服务信息 |
---
## 通用响应格式
### 成功响应
```json
{
"success": true,
"message": "操作成功",
"data": {...}
}
```
### 错误响应
```json
{
"success": false,
"error": "错误信息",
"code": 404
}
```
### 分页响应
```json
{
"success": true,
"data": {
"items": [...],
"total": 100,
"page": 1,
"page_size": 20
}
}
```