SecondMe API
API 参考

SecondMe API 参考

SecondMe API 提供用户信息访问和 AI 聊天功能

SecondMe API 提供用户信息访问和 AI 聊天功能。

Base URL: https://app.mindos.com/gate/lab


获取用户信息

获取授权用户的基本信息。

GET /api/secondme/user/info

认证

需要 OAuth2 Token 或 API Key。

所需权限

user.info

请求示例

curl -X GET "https://app.mindos.com/gate/lab/api/secondme/user/info" \
  -H "Authorization: Bearer lba_ak_your_api_key"

响应

成功 (200)

{
  "code": 0,
  "message": "success",
  "data": {
    "name": "用户名",
    "email": "user@example.com",
    "avatar": "https://cdn.example.com/avatar.jpg",
    "bio": "个人简介",
    "selfIntroduction": "自我介绍内容",
    "voiceId": "voice_001",
    "profileCompleteness": 85
  }
}
字段类型说明
namestring用户姓名
emailstring用户邮箱
avatarstring头像 URL
biostring个人简介
selfIntroductionstring自我介绍
voiceIdstring语音 ID
profileCompletenessnumber资料完整度(0-100)

错误码

错误码说明
apikey.permission.denied缺少 user.info 权限

获取用户兴趣标签

获取用户的兴趣标签(仅返回有公开内容的标签)。

GET /api/secondme/user/shades

认证

需要 OAuth2 Token 或 API Key。

所需权限

user.info.shades

请求示例

curl -X GET "https://app.mindos.com/gate/lab/api/secondme/user/shades" \
  -H "Authorization: Bearer lba_ak_your_api_key"

响应

成功 (200)

{
  "code": 0,
  "message": "success",
  "data": {
    "shades": [
      {
        "id": 123,
        "shadeName": "科技爱好者",
        "shadeIcon": "https://cdn.example.com/icon.png",
        "confidenceLevel": "HIGH",
        "shadeDescription": "热爱科技",
        "shadeDescriptionThirdView": "他/她热爱科技",
        "shadeContent": "喜欢编程和数码产品",
        "shadeContentThirdView": "他/她喜欢编程和数码产品",
        "sourceTopics": ["编程", "AI"],
        "shadeNamePublic": "科技达人",
        "shadeIconPublic": "https://cdn.example.com/public-icon.png",
        "confidenceLevelPublic": "HIGH",
        "shadeDescriptionPublic": "科技爱好者",
        "shadeDescriptionThirdViewPublic": "一位科技爱好者",
        "shadeContentPublic": "热爱科技",
        "shadeContentThirdViewPublic": "他/她热爱科技",
        "sourceTopicsPublic": ["科技"],
        "hasPublicContent": true
      }
    ]
  }
}
字段类型说明
shadesarray兴趣标签列表
shades[].idnumber标签 ID
shades[].shadeNamestring标签名称
shades[].shadeIconstring标签图标 URL
shades[].confidenceLevelstring置信度:VERY_HIGHHIGHMEDIUMLOWVERY_LOW
shades[].shadeDescriptionstring标签描述
shades[].shadeDescriptionThirdViewstring第三人称描述
shades[].shadeContentstring标签内容
shades[].shadeContentThirdViewstring第三人称内容
shades[].sourceTopicsarray来源主题
shades[].shadeNamePublicstring公开标签名称
shades[].shadeIconPublicstring公开图标 URL
shades[].confidenceLevelPublicstring公开置信度
shades[].shadeDescriptionPublicstring公开描述
shades[].shadeDescriptionThirdViewPublicstring公开第三人称描述
shades[].shadeContentPublicstring公开内容
shades[].shadeContentThirdViewPublicstring公开第三人称内容
shades[].sourceTopicsPublicarray公开来源主题
shades[].hasPublicContentboolean是否有公开内容

错误码

错误码说明
apikey.permission.denied缺少 user.info.shades 权限

获取用户软记忆

获取用户的软记忆数据(个人知识库),支持分页和搜索。

GET /api/secondme/user/softmemory

认证

需要 OAuth2 Token 或 API Key。

所需权限

user.info.softmemory

查询参数

参数类型必需说明
keywordstring搜索关键词
pageNointeger页码(默认: 1,最小: 1)
pageSizeinteger每页大小(默认: 20,最大: 100)

请求示例

curl -X GET "https://app.mindos.com/gate/lab/api/secondme/user/softmemory?keyword=爱好&pageNo=1&pageSize=20" \
  -H "Authorization: Bearer lba_ak_your_api_key"

响应

成功 (200)

{
  "code": 0,
  "message": "success",
  "data": {
    "list": [
      {
        "id": 456,
        "factObject": "兴趣爱好",
        "factContent": "喜欢阅读科幻小说",
        "createTime": 1705315800000,
        "updateTime": 1705315800000
      },
      {
        "id": 457,
        "factObject": "日常作息",
        "factContent": "每天早上 7 点起床",
        "createTime": 1704873600000,
        "updateTime": 1704873600000
      }
    ],
    "total": 100
  }
}
字段类型说明
listarray软记忆列表
list[].idnumber软记忆 ID
list[].factObjectstring事实对象/分类
list[].factContentstring事实内容
list[].createTimenumber创建时间(毫秒时间戳)
list[].updateTimenumber更新时间(毫秒时间戳)
totalnumber总数

错误码

错误码说明
apikey.permission.denied缺少 user.info.softmemory 权限

添加笔记

创建一条笔记或记忆,支持文本笔记和链接笔记两种类型。

POST /api/secondme/note/add

认证

需要 OAuth2 Token 或 API Key。

所需权限

note.add

请求参数

参数类型必需说明
contentstringTEXT 类型必填笔记内容(最大 50000 字符)
titlestring笔记标题(最大 200 字符)
urlsstring[]LINK 类型必填URL 列表(最多 10 个)
memoryTypestring笔记类型:TEXT(默认)或 LINK

请求示例

文本笔记:

curl -X POST "https://app.mindos.com/gate/lab/api/secondme/note/add" \
  -H "Authorization: Bearer lba_ak_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "content": "今天学习了 Python 的异步编程",
    "title": "学习笔记",
    "memoryType": "TEXT"
  }'

链接笔记:

curl -X POST "https://app.mindos.com/gate/lab/api/secondme/note/add" \
  -H "Authorization: Bearer lba_ak_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "urls": ["https://example.com/article"],
    "title": "有趣的文章",
    "memoryType": "LINK"
  }'

响应

成功 (200)

{
  "code": 0,
  "message": "success",
  "data": {
    "noteId": 12345
  }
}
字段类型说明
noteIdnumber创建的笔记 ID

错误码

错误码说明
auth.scope.missing缺少 note.add 权限
note.content.requiredTEXT 类型笔记必须提供 content
note.urls.requiredLINK 类型笔记必须提供 urls

流式聊天

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

POST /api/secondme/chat/stream

认证

需要 OAuth2 Token 或 API Key。

所需权限

chat

请求头

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

请求参数

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

请求示例

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

响应

响应类型为 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]

流数据格式

事件类型说明
session新会话创建时返回会话 ID
data聊天内容增量
[DONE]流结束标志

处理流式响应示例 (Python)

import requests

response = requests.post(
    "https://app.mindos.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 权限
secondme.user.invalid_id无效的用户 ID
secondme.stream.error流式响应错误

获取会话列表

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

GET /api/secondme/chat/session/list

认证

需要 OAuth2 Token 或 API Key。

所需权限

chat

查询参数

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

请求示例

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

响应

成功 (200)

{
  "code": 0,
  "message": "success",
  "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 权限

获取会话消息历史

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

GET /api/secondme/chat/session/messages

认证

需要 OAuth2 Token 或 API Key。

所需权限

chat

查询参数

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

请求示例

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

响应

成功 (200)

{
  "code": 0,
  "message": "success",
  "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 权限
secondme.session.not_found会话不存在
secondme.session.unauthorized无权访问该会话

通用响应格式

成功响应

{
  "code": 0,
  "message": "success",
  "data": { ... }
}

错误响应

{
  "code": 403,
  "message": "缺少必需的权限",
  "error_code": "apikey.permission.denied"
}