Skip to content

OpenAPI 概述

OpenAPI 是 Snail AI 面向第三方系统和自定义前端提供的外部集成接口。当前版本以应用凭证认证,接口前缀为 /snail-ai/openapi/v1

当前支持状态

能力状态对应源码
应用级认证已支持,使用 Snail-Ai-App-Id + Snail-Ai-Tokensnail-ai-server/snail-ai-server-openapi/src/main/java/com/aizuda/snail/ai/openapi/interceptor/OpenApiAuthInterceptor.java
智能体查询与订阅已支持snail-ai-server/snail-ai-server-openapi/src/main/java/com/aizuda/snail/ai/openapi/controller/OpenApiAgentController.java
用户注册与查询已支持snail-ai-server/snail-ai-server-openapi/src/main/java/com/aizuda/snail/ai/openapi/controller/OpenApiUserController.java
会话管理与消息查询已支持snail-ai-server/snail-ai-server-openapi/src/main/java/com/aizuda/snail/ai/openapi/controller/OpenApiConversationController.java
智能体流式/同步对话已支持snail-ai-server/snail-ai-server-openapi/src/main/java/com/aizuda/snail/ai/openapi/controller/OpenApiChatController.java
智能体对话会话 Token已支持snail-ai-server/snail-ai-server-openapi/src/main/java/com/aizuda/snail/ai/openapi/controller/OpenApiEmbedController.java

Base URL

text
{protocol}://{host}:{port}/snail-ai/openapi/v1

本地默认示例:

text
http://localhost:8900/snail-ai/openapi/v1

认证方式

OpenAPI 外部集成请求必须携带应用 ID 和应用 Token:

http
Snail-Ai-App-Id: <your-app-id>
Snail-Ai-Token: <your-app-token>

应用 ID 和 Token 在管理后台的应用管理中创建和复制。Snail-Ai-Auth 是 Admin API 与智能体对话会话使用的认证头,不是 OpenAPI 外部集成的通用认证头。

详见 认证方式

可用接口

接口路径说明
智能体列表GET /agents查询应用可访问的智能体
智能体详情GET /agent查询单个智能体详情
用户注册POST /user/register注册或同步外部用户
当前用户GET /user查询外部用户信息
用户智能体列表GET /user/agents查询外部用户订阅的智能体
订阅/取消订阅智能体POST/DELETE /user/agent管理外部用户与智能体关系
会话列表GET /agent/conversations查询智能体会话
创建会话POST /agent/conversations创建智能体会话
删除/清空会话DELETE /agent/conversations删除指定会话或清空智能体会话
会话消息GET /agent/conversations/messages查询会话消息
上传资源POST /resource/upload上传对话图片等资源,返回可用于附件的资源 ID
流式对话POST /agent/chatSSE 流式对话
同步对话POST /agent/chat/sync同步返回完整回答
Chat 会话 TokenGET/POST /embed-token生成智能体对话会话 Token

快速体验

bash
curl -N -X POST 'http://localhost:8900/snail-ai/openapi/v1/agent/chat' \
  -H 'Content-Type: application/json' \
  -H 'Snail-Ai-App-Id: <your-app-id>' \
  -H 'Snail-Ai-Token: <your-app-token>' \
  -d '{
    "agentId": 1,
    "openId": "external-user-001",
    "conversationId": "conv-abc123",
    "content": "你好,请介绍一下你自己"
  }'

通用响应格式

json
{
  "code": 1,
  "msg": "success",
  "data": {}
}

与 Admin API 的区别

特性Admin APIOpenAPI
面向对象管理后台用户第三方系统/外部用户
路径前缀/snail-ai//snail-ai/openapi/v1/
认证方式Snail-Ai-AuthSnail-Ai-App-Id + Snail-Ai-Token
用户标识平台用户外部 openId

相关源码

  • snail-ai-commons/snail-ai-commons-core/src/main/java/com/aizuda/snail/ai/common/constants/OpenApiPathConstants.java
  • snail-ai-server/snail-ai-server-openapi/src/main/java/com/aizuda/snail/ai/openapi/controller/
  • snail-ai-server/snail-ai-server-openapi/src/main/java/com/aizuda/snail/ai/openapi/interceptor/OpenApiAuthInterceptor.java

Apache 2.0 Licensed