S ServiceGo

API 参考

ServiceGo API 基于 RESTful 设计,所有接口均以 /api/v1 为前缀。 受保护的接口需要在请求头中携带 JWT Token。

认证

通过登录接口获取 Token,在后续请求中携带:

Authorization: Bearer <your-jwt-token>

公开接口

以下接口无需认证,用于客户端(Widget)调用:

创建/恢复会话

POST /api/v1/chat/session
Content-Type: application/json

{
  "tenantId": "uuid",
  "channel": "web",
  "anonymousId": "random-uuid"
}

// Response: { "sessionId": "uuid", "userId": "uuid" }

发送消息(同步)

POST /api/v1/chat/message
Content-Type: application/json

{
  "sessionId": "uuid",
  "message": "你好,请问..."
}

// Response: { "reply": "AI 回复内容" }

发送消息(SSE 流式)

GET /api/v1/chat/stream?sessionId=uuid&message=你好

// Response: text/event-stream
// data: {"type":"delta","content":"你"}\n\n
// data: {"type":"delta","content":"好"}\n\n
// data: {"type":"done"}\n\n

受保护接口

以下接口需要 JWT 认证,用于管理后台调用:

会话管理

方法路径说明
GET/api/v1/sessions列出会话(支持状态/语言筛选)
GET/api/v1/sessions/:id会话详情
GET/api/v1/sessions/:id/history消息历史
PATCH/api/v1/sessions/:id更新会话状态

人工转接

方法路径说明
GET/api/v1/handoffs待接手列表
PATCH/api/v1/handoffs/:id/accept接手会话
PATCH/api/v1/handoffs/:id/transfer转交其他坐席
PATCH/api/v1/handoffs/:id/close关闭转接

知识库

方法路径说明
GET/api/v1/knowledge-bases列出知识库
POST/api/v1/knowledge-bases创建知识库
POST/api/v1/knowledge-bases/:id/documents上传文档
DELETE/api/v1/knowledge-bases/:id删除知识库

Agent 配置

方法路径说明
GET/api/v1/agent-configs列出 Agent
POST/api/v1/agent-configs创建 Agent
PATCH/api/v1/agent-configs/:id更新配置
DELETE/api/v1/agent-configs/:id删除 Agent

WebSocket

坐席端通过 WebSocket 接收实时消息推送:

ws://your-api-domain.com/ws?sessionId=uuid

// 收到消息类型:
// {"type":"delta","content":"..."} — AI 流式输出
// {"type":"done"} — 回复完成
// {"type":"handoff","handoffId":"uuid"} — 转人工通知

错误处理

所有错误返回统一格式:

{
  "error": {
    "message": "错误描述",
    "status": 400
  }
}
状态码说明
400请求参数错误
401未认证或 Token 过期
404资源不存在
429请求频率超限
500服务器内部错误