Skip to content

接口文档 ​

本文档详细介绍了各类接口的使用说明,包括请求方式、接口路径、请求参数及响应格式。开发者可根据本说明文档快速对接接口,完成推荐问题、会话管理、推理服务、点赞操作及历史记录等功能的集成,同时还提供了通用能力接口(rewrite、file、tutor、youtube、search、advise、celebrity)的说明。


接口概览 ​

获取推荐问题接口 ​

  • 请求方法:GET

  • 接口路径:/api/v1/chat/recommend

  • 请求参数:

    参数类型描述是否必填
    numint推荐问题的数量否
  • 响应示例:

    json
    {
      "data": [
        {
          "avatar": "https://firebasestorage.googleapis.com/v0/b/rumi-bdb43.appspot.com/o/public%2Ftmp%2Fimg_v3_02cd_bd6fe904-94f1-4986-9d65-0175e22746eh.png?alt=media",
          "title": "课程与教授",
          "content": "我们有没有推荐的适合R区域的简单课程?"
        },
        {
          "avatar": "https://firebasestorage.googleapis.com/v0/b/rumi-bdb43.appspot.com/o/public%2Ftmp%2Fimg_v3_02cd_7b40632d-d0f6-4328-99ce-2e36d966709h.png?alt=media",
          "title": "作业帮助",
          "content": "SJSU主校区附近有哪些最好的或有名的餐厅?"
        },
        {
          "avatar": "https://firebasestorage.googleapis.com/v0/b/rumi-bdb43.appspot.com/o/public%2Ftmp%2Fimg_v3_02cd_32d2f8af-a364-4a10-a9b0-4a5d6686b27h.png?alt=media",
          "title": "校园导览",
          "content": "如何注册课程,以及注册的截止日期和程序是什么?"
        },
        {
          "avatar": "https://firebasestorage.googleapis.com/v0/b/rumi-bdb43.appspot.com/o/public%2Ftmp%2Fimg_v3_02cd_e638ecb7-73d6-45d4-805d-001f2065142h.png?alt=media",
          "title": "校园生活",
          "content": "学生可以免费进入橄榄球比赛吗?"
        }
      ],
      "code": 1,
      "msg": null,
      "ok": true
    }

会话管理 ​

本节介绍会话管理相关的接口,包括创建会话、列出会话、设置会话名称和删除会话。

1. 创建会话 ​

  • 请求方法:POST

  • 接口路径:/api/v1/chat/create

  • 请求参数:

    参数类型描述是否必填
    user_idString用户 Id否
    nameString会话名称是
    school_idLong学校 ID(可选,默认值为 1)否
    chat_typeInteger会话类型(默认值为 0)否
    typeString会话类型描述否
    app_idLong应用 ID(可选)否
  • 响应示例:

    json
    {
      "data": {
        "id": 12345,
        "name": "会话名称"
      },
      "code": 1,
      "msg": null,
      "ok": true
    }

2. 列出会话 ​

  • 请求方法:GET

  • 接口路径:/api/v1/chat/list

  • 请求参数:

    参数类型描述是否必填
    user_idString用户 Id否
    offsetInteger页码(默认值为 1)否
    limitInteger每页数量(默认值为 10)否
    school_idLong学校 ID(可选)否
    chat_typeInteger会话类型(可选)否
  • 响应示例:

    json
    {
      "data": [
        {
          "id": 12345,
          "name": "会话名称",
          "user_id": "user123",
          "school_id": 1,
          "type": "类型描述",
          "chat_type": 0,
          "create_time": "2024-07-16T12:34:36.651846Z",
          "update_time": "2024-07-16T12:34:36.651846Z"
        }
        // 更多会话数据
      ],
      "code": 1,
      "msg": null,
      "ok": true
    }

3. 设置会话名称 ​

  • 请求方法:PUT

  • 接口路径:/api/v1/chat/set/name

  • 请求参数:

    参数类型描述是否必填
    user_idString用户 Id否
    session_idLong会话 ID是
    nameString新的会话名称是
  • 响应示例:

    json
    {
      "data": null,
      "code": 1,
      "msg": null,
      "ok": true
    }

4. 删除会话 ​

  • 请求方法:DELETE

  • 接口路径:/api/v1/chat/delete

  • 请求参数:

    参数类型描述是否必填
    user_idString用户 Id否
    session_idLong会话 ID是
  • 响应示例:

    json
    {
      "data": null,
      "code": 1,
      "msg": null,
      "ok": true
    }

推理接口 ​

本节提供推理相关接口说明,主要用于处理用户提问及停止推理操作。

1. 发送用户提问 ​

  • 请求方法:POST

  • 接口路径:/api/v1/chat/send

  • 请求头:

    Content-Type: application/json
  • 请求体示例:

    json
    {
      "user_id": "452057544733368321",
      "session_id": "452057544733368320",
      "type": "general",
      "provider": "opneai",
      "school_id": 1,
      "app_id": "",
      "messages": [
        {
          "role": "user",
          "content": "When is the last day of Kapiolani Community College in spring 2025"
        }
      ],
      "stream": true
    }
  • SSE 数据示例:

    event:delta
    data:{"content":"- Think about your question: When is the last day of Kapiolani Community College in spring 2025\r\n"}
    
    event:progress
    data:The number of history records to be queried:0
    
    event:message_id
    data:{"question_id":"452093442603847680"}
    
    event:progress
    data:Serach it is processed using ppl
    
    event:question
    data:When is the last day of Kapiolani Community College in spring 2025?
    
    event:delta
    data:{"content":"- Understand your intention: When is the last day of Kapiolani Community College in spring 2025?\r\n"}
    
    event:delta
    data:{"content":"- Searching... \r\n"}
    
    event:progress
    data:default
    
    event:input
    data:[]
    
    event:delta
    data:{"content":"- Reply to your question.\r\n\r\n"}
    
    event:citations
    data:["https://www.bhcc.edu/academic-calendar/academiccalendar-spring2025/","https://kellogg.edu/about/academic-calendar/","https://hawaii.hawaii.edu/sites/default/files/assets/catalog/docs/02-academic_calendar.pdf","https://www.kapiolani.hawaii.edu/classes/academic-calendar/","https://www.kapiolani.hawaii.edu/classes/"]
    
    event:delta
    data:{"content":"The"}
    ...
    
    event:delta
    data:{"content":" May "}
    
    event:delta
    data:{"content":"16[4]."}
    
    event:message_id
    data:{"answer_id":"452093453534203904"}

2. 停止推理 ​

  • 请求方法:POST

  • 接口路径:/api/v1/chat/stop

  • 请求参数:

    参数类型描述是否必填
    session_idLong会话 ID是
  • 请求示例:

    POST /api/v1/chat/stop?session_id=452057544733368320
  • 响应示例:

    json
    {
      "data": null,
      "code": 1,
      "msg": null,
      "ok": true
    }

点赞/取消点赞 ​

用于对问答内容进行点赞或取消点赞。

  • 请求方法:POST

  • 接口路径:/api/v1/chat/like

  • 请求头:

    Content-Type: application/json
  • 请求体示例:

    json
    {
      "question_id": "452075106336137216",
      "answer_id": "452075122110914560",
      "like": true
    }
  • 请求示例:

    POST /api/v1/chat/like
    Content-Type: application/json
    
    {
      "question_id": "452075106336137216",
      "answer_id": "452075122110914560",
      "like": true
    }
  • 响应示例:

    json
    {
      "data": null,
      "code": 1,
      "msg": null,
      "ok": true
    }

历史记录 ​

用于查询指定会话的历史问答记录。

  • 请求方法:GET

  • 接口路径:/api/v1/chat/history

  • 请求参数:

    参数类型描述是否必填
    user_idString用户 Id否
    session_idLong会话 ID是
    offsetInteger页码(默认值为 1)否
    limitInteger每页数量(默认值为 100)否
  • 请求示例:

    GET /api/v1/chat/history?session_id=12345&offset=1&limit=20
  • 响应示例:

    json
    {
      "data": [
        {
          "id": 452075106336137216,
          "role": "user",
          "content": "如何注册课程,以及注册的截止日期和程序是什么?",
          "liked": true,
          "metadata": {
            "some_key": "some_value"
          },
          "create_time": "2024-07-16T12:34:36.651846Z"
        },
        {
          "id": 452075122110914560,
          "role": "assistant",
          "content": "您可以通过学校的在线系统注册课程,截止日期为每学期的最后一周。",
          "liked": false,
          "metadata": {
            "some_key": "some_value"
          },
          "create_time": "2024-07-16T12:35:00.123456Z"
        }
        // 更多历史记录
      ],
      "code": 1,
      "msg": null,
      "ok": true
    }

通用能力 ​

本节介绍一些通用能力接口,用于实现重写、文件处理、在线辅导、YouTube 信息查询、搜索、建议及名人查询等功能。

rewrite ​

用于对用户输入内容进行重写,示例请求如下:

json
{
  "chat_id": "483307863913861120",
  "type": "general",
  "provider": "siliconflow",
  "model": "deepseek-ai/DeepSeek-V3",
  "rewrite": true,
  "previous_question_id": "483308651331522560",
  "previous_answer_id": "483308164662235136",
  "messages": [
    {
      "role": "user",
      "content": "我是李通 帮我填一下这文件"
    }
  ],
  "stream": true
}

file ​

用于处理文件相关请求,示例请求如下:

json
{
  "chat_id": "486526811028639744",
  "messages": [],
  "model": "deepseek-v3",
  "provider": "volcengine",
  "type": "general",
  "stream": true,
  "file_ids": ["486523763188379648"]
}

tutor ​

用于辅导相关问答,示例请求如下:

json
{
  "chat_id": "490485297164648448",
  "type": "tutor",
  "provider": "volcengine",
  "model": "deepseek-v3",
  "messages": [
    {
      "role": "user",
      "content": "When is the last day of sjsu"
    }
  ],
  "stream": true
}

youtube ​

  • 首消息示例:

    json
    {
      "chat_id": "490478322053439488",
      "type": "youtube",
      "args": {
        "url": "https://www.youtube.com/watch?v=Q-l-qfM1cEI"
      },
      "messages": [
        {
          "role": "user",
          "content": "解释一下视频内容"
        }
      ],
      "stream": true
    }
  • 追问消息示例:

    json
    {
      "chat_id": "490485509258018816",
      "type": "youtube",
      "messages": [
        {
          "role": "user",
          "content": "视频封面和标题是什么?里面没有作者信息吗?"
        }
      ],
      "stream": true
    }

youtube summary ​

json
{
  "chat_id": "490825086888157184",
  "type": "youtube",
  "cmd": "summary",
  "args": {
    "url": "https://www.youtube.com/watch?v=Q-l-qfM1cEI"
  },
  "messages": [],
  "stream": true
}

用于搜索查询相关内容,示例请求如下:

json
{
  "chat_id": "485054371897335808",
  "messages": [
    {
      "role": "user",
      "content": "How is Tong Li"
    }
  ],
  "model": "deepseek-r1",
  "provider": "volcengine",
  "type": "search",
  "stream": true
}

advise ​

用于给出学习或选课建议,示例请求如下:

json
{
  "chat_id": "488723434463805441",
  "messages": [
    {
      "role": "user",
      "content": "I am a 4th year business administration entrepreneurship student pursuing a BS, what classes should I take my last semester"
    }
  ],
  "model": "deepseek-r1",
  "provider": "volcengine",
  "type": "advise",
  "stream": true,
  "school_id": 881
}

celebrity ​

用于查询名人信息,示例请求如下:

  • 接收消息:

    json
    {
      "chat_id": "489061136933552128",
      "type": "celebrity",
      "provider": "volcengine",
      "model": "deepseek-r1",
      "args": { "name": "Corey Chapman", "institution": "Bowie State University" },
      "stream": true
    }
  • 追问消息:发送时将 type 设置为 general。

MIT Licensed