SecondMeSecondMe API
SecondMe API

聊天

流式聊天、会话列表和消息历史

聊天相关接口。

Base URL: https://api.mindverse.com/gate/lab


流式聊天

以用户的 AI 分身进行流式对话。

POST /api/secondme/chat/stream

认证

需要 OAuth2 Token。

所需权限

chat.write

请求头

必需说明
AuthorizationBearer Token
Content-Typeapplication/json
X-App-Id应用 ID,默认 general

请求参数

参数类型必需说明
messagestring用户消息内容
sessionIdstring会话 ID,不提供则自动生成新会话
appIdstring应用 ID,优先级高于 Header
systemPromptstring系统提示词,仅在新会话首次有效
receiverUserIdnumber接收方用户 ID(预留字段)
enableWebSearchboolean是否启用网页搜索,默认 false

请求示例

curl -X POST "https://api.mindverse.com/gate/lab/api/secondme/chat/stream" \
  -H "Authorization: Bearer lba_at_your_access_token" \
  -H "Content-Type: application/json" \
  -d '{
    "message": "你好,介绍一下自己",
    "systemPrompt": "请用友好的语气回复"
  }'

启用 WebSearch:

curl -X POST "https://api.mindverse.com/gate/lab/api/secondme/chat/stream" \
  -H "Authorization: Bearer lba_at_your_access_token" \
  -H "Content-Type: application/json" \
  -d '{
    "message": "今天有什么科技新闻",
    "enableWebSearch": true
  }'

响应

响应类型为 text/event-stream (Server-Sent Events)。

新会话首条消息:

event: session
data: {"sessionId": "labs_sess_a1b2c3d4e5f6"}

聊天内容流:

data: {"choices": [{"delta": {"content": "你好"}}]}

data: {"choices": [{"delta": {"content": "!我是"}}]}

data: {"choices": [{"delta": {"content": "你的 AI 分身"}}]}

data: [DONE]

启用 WebSearch 时的事件流:

event: session
data: {"sessionId": "labs_sess_a1b2c3d4e5f6"}

event: tool_call
data: {"toolName": "web_search", "status": "searching"}

event: tool_result
data: {"toolName": "web_search", "query": "科技新闻", "resultCount": 5}

data: {"choices": [{"delta": {"content": "根据搜索结果..."}}]}

data: [DONE]

流数据格式

事件类型说明
session新会话创建时返回会话 ID
tool_call工具调用开始,启用 WebSearch 时触发
tool_result工具调用结果,包含搜索查询和结果数量
data聊天内容增量
[DONE]流结束标志

处理流式响应示例 (Python)

import requests

response = requests.post(
    "https://api.mindverse.com/gate/lab/api/secondme/chat/stream",
    headers={
        "Authorization": "Bearer lba_ak_xxx",
        "Content-Type": "application/json"
    },
    json={"message": "你好"},
    stream=True
)

for line in response.iter_lines():
    if line:
        line = line.decode('utf-8')
        if line.startswith('data: '):
            data = line[6:]
            if data == '[DONE]':
                break
            print(data)

错误码

错误码说明
apikey.permission.denied缺少 chat.write 权限
secondme.user.invalid_id无效的用户 ID
secondme.stream.error流式响应错误

获取会话列表

获取用户的聊天会话列表。

GET /api/secondme/chat/session/list

认证

需要 OAuth2 Token。

所需权限

chat.read

查询参数

参数类型必需说明
appIdstring按应用 ID 筛选

请求示例

curl -X GET "https://api.mindverse.com/gate/lab/api/secondme/chat/session/list?appId=general" \
  -H "Authorization: Bearer lba_at_your_access_token"

响应

成功 (200)

{
  "code": 0,
  "data": {
    "sessions": [
      {
        "sessionId": "labs_sess_a1b2c3d4",
        "appId": "general",
        "lastMessage": "你好,介绍一下自己...",
        "lastUpdateTime": "2024-01-20T15:30:00Z",
        "messageCount": 10
      },
      {
        "sessionId": "labs_sess_e5f6g7h8",
        "appId": "general",
        "lastMessage": "今天天气怎么样?",
        "lastUpdateTime": "2024-01-19T10:00:00Z",
        "messageCount": 5
      }
    ]
  }
}
字段类型说明
sessionsarray会话列表,按最后更新时间倒序
sessions[].sessionIdstring会话 ID
sessions[].appIdstring应用 ID
sessions[].lastMessagestring最后一条消息预览(截断至 50 字)
sessions[].lastUpdateTimestring最后更新时间(ISO 8601)
sessions[].messageCountnumber消息数量

错误码

错误码说明
apikey.permission.denied缺少 chat.read 权限

获取会话消息历史

获取指定会话的消息历史。

GET /api/secondme/chat/session/messages

认证

需要 OAuth2 Token。

所需权限

chat.read

查询参数

参数类型必需说明
sessionIdstring会话 ID

请求示例

curl -X GET "https://api.mindverse.com/gate/lab/api/secondme/chat/session/messages?sessionId=labs_sess_a1b2c3d4" \
  -H "Authorization: Bearer lba_at_your_access_token"

响应

成功 (200)

{
  "code": 0,
  "data": {
    "sessionId": "labs_sess_a1b2c3d4",
    "messages": [
      {
        "messageId": "msg_001",
        "role": "system",
        "content": "请用友好的语气回复",
        "senderUserId": 12345,
        "receiverUserId": null,
        "createTime": "2024-01-20T15:00:00Z"
      },
      {
        "messageId": "msg_002",
        "role": "user",
        "content": "你好,介绍一下自己",
        "senderUserId": 12345,
        "receiverUserId": null,
        "createTime": "2024-01-20T15:00:05Z"
      },
      {
        "messageId": "msg_003",
        "role": "assistant",
        "content": "你好!我是你的 AI 分身...",
        "senderUserId": 12345,
        "receiverUserId": null,
        "createTime": "2024-01-20T15:00:10Z"
      }
    ]
  }
}
字段类型说明
sessionIdstring会话 ID
messagesarray消息列表,按创建时间升序
messages[].messageIdstring消息 ID
messages[].rolestring角色:system/user/assistant
messages[].contentstring消息内容
messages[].senderUserIdnumber发送方用户 ID
messages[].receiverUserIdnumber接收方用户 ID(预留)
messages[].createTimestring创建时间(ISO 8601)

错误码

错误码说明
apikey.permission.denied缺少 chat.read 权限
secondme.session.unauthorized无权访问该会话

注意: 如果 sessionId 不存在,接口会返回成功(code=0),但 messages 为空数组。