AI 大模型推理

  • AI 大模型推理 > API 文档 > 请求日志下载

    请求日志下载

    最近更新时间: 2026-07-09 15:41:21

    请求日志导出接口

    Base URL: https://api.qnaigc.com

    概述

    本接口用于导出请求日志(monitor_log),是 log 查询接口的导出版本。提供两个接口:

    • GET /v2/stat/export_log:以 JSON 响应体返回(带统一包裹结构)。
    • GET /v2/stat/export_log_file:以 JSON 文件形式返回(浏览器触发下载,响应体为裸数组)。

    两个接口的查询参数、鉴权方式、过滤与排序逻辑完全相同仅返回结构不同(见下方各接口的响应说明)。

    日志保留周期约为 30 天(以实际配置为准),请及时下载所需数据。


    认证方式

    支持两种鉴权方式:

    1. APIKey 认证:使用 APIKey 进行认证

      Authorization: Bearer <APIKey>
      
    2. AK/SK 签名认证:使用七牛云标准的 AK/SK 签名认证

      Authorization: Qiniu <AccessKey>:<EncodedSign>
      

    数字签名生成算法可参考文档站中「批量生成 APIKey」部分。


    查询参数(两接口通用)

    参数 类型 必填 说明
    start string 开始时间,格式为 RFC3339(2006-01-02T15:04:05Z07:00)。作为时间过滤的左闭边界(>=)。建议传入以限定查询范围。
    end string 结束时间,格式为 RFC3339。作为时间过滤的右开边界(<)。当 startend 同时传入时才会校验范围上限。
    size integer 每页返回数据条数,范围为 1~500无默认值,不传或越界将返回 400 错误。
    page integer 页码,从 1 开始,不传或 <=0 时默认为 1。用于超出 500 条数据的分批导出。
    model string 模型名称,用于过滤特定模型的请求日志。示例:deepseek/deepseek-v3.1
    code integer HTTP 状态码过滤,精确匹配。0 或不传表示不限制(返回所有状态码)。示例:200
    apikey string APIKey 值,用于过滤特定 APIKey 的请求日志,会同时匹配带或不带 Bearer 前缀的记录。示例:sk-xx

    请求头:

    名称 类型 必填 描述
    Authorization string 支持 APIKey 与 AK/SK 两种鉴权方式

    排序与时间限制

    • 排序:结果固定按请求开始时间(start_time倒序排列,不支持自定义排序。
    • 时间上限:当 startend 同时传入时,end - start 不得超过 35 天,且 end 不得早于 start,否则返回 400 错误。
    • 仅传入 startend 其中一个时,不做范围上限校验(按单边过滤)。
    • 时间按项目标准时区 CST(东八区)解析。

    接口一:导出日志(JSON 响应体)

    GET /v2/stat/export_log

    以项目统一响应结构返回 JSON,data 字段直接为日志数组

    请求示例:

    curl --location "https://api.qnaigc.com/v2/stat/export_log?start=2024-01-01T00:00:00Z&end=2024-01-08T00:00:00Z&size=100&page=1" \
      --header "Authorization: Bearer sk-xx"
    

    成功响应(200 OK)

    {
      "status": true,
      "data": [
        {
          "id": "65a1f2c3...",
          "model_id": "deepseek/deepseek-v3.1",
          "api_key": "sk-***xxxx",
          "start_time": "2024-01-01T10:00:00+08:00",
          "end_time": "2024-01-01T10:00:02+08:00",
          "server_type": "chat",
          "code": 200,
          "errors": null,
          "state": "",
          "usage": {
            "input": 1024,
            "output": 512,
            "cached_input": 0,
            "cache_creation": 0
          },
          "bo_usage": {
            "input_tokens": 1024
          },
          "bo_usage_cost": {
            "input_tokens": 0.001
          }
        }
      ]
    }
    

    接口二:导出日志(JSON 文件下载)

    GET /v2/stat/export_log_file

    文件形式返回。响应头包含:

    Content-Disposition: attachment; filename=logs.json
    Content-Type: application/json
    

    响应体为裸数组没有 status / data 包裹),内容与 export_logdata 字段完全一致。

    请求示例:

    curl --location "https://api.qnaigc.com/v2/stat/export_log_file?start=2024-01-01T00:00:00Z&end=2024-01-08T00:00:00Z&size=100&page=1" \
      --header "Authorization: Bearer sk-xx" \
      -o logs.json
    

    成功响应(200 OK)

    [
      {
        "id": "65a1f2c3...",
        "model_id": "deepseek/deepseek-v3.1",
        "api_key": "sk-***xxxx",
        "start_time": "2024-01-01T10:00:00+08:00",
        "end_time": "2024-01-01T10:00:02+08:00",
        "server_type": "chat",
        "code": 200,
        "errors": null,
        "state": "",
        "usage": {
          "input": 1024,
          "output": 512
        }
      }
    ]
    

    注意区别export_log 返回 {"status":true,"data":[...]}export_log_file 直接返回 [...]。两者字段含义相同,仅包裹方式不同。


    响应字段说明(日志对象 data[]

    字段 类型 说明
    id string 日志记录的唯一 ID(MongoDB 文档 _id
    model_id string 请求所使用的模型标识
    api_key string 发起请求的 APIKey(已脱敏处理)
    start_time string 请求开始时间,RFC3339 格式
    end_time string 请求结束时间,RFC3339 格式
    server_type string 服务类型,如 chat / image / video
    code integer 上游返回的 HTTP 状态码
    errors array<string> 错误信息列表,无错误时为 null
    state string 请求状态标识
    usage object 用量统计。key 因模型类型不同而异,常见包括 inputoutputcached_inputcache_creation(文本/对话类),tts_bytes(TTS)、asr_ms(ASR)、ocr_requests(OCR)、search_requests(搜索)、video_second(视频)等;无用量数据时为 null
    bo_usage object BO 计费用量明细(按计费项 key 聚合),无数据时省略
    bo_usage_cost object BO 计费用量对应的费用(人民币元),无数据时省略

    错误响应

    接口对错误采用两种返回风格:

    1. 真实 HTTP 错误状态码(status:false + error 对象)

    HTTP 状态码 触发条件 响应示例
    400 参数错误:size 越界、时间格式非法、时间范围超过 35 天、end 早于 start {"status":false,"error":{"message":"invalid size,should be between 1 and 500","type":"param err"}}
    401 AK/SK 签名无效或缺失 {"status":false,"error":{"message":"invalid ak/sk sign","type":"authorization err"}}

    2. HTTP 200 + status:false(项目统一错误风格)

    场景 响应示例
    APIKey 无效或未提供鉴权 {"status":false,"error":"UNAUTHENTICATED"}
    服务器内部错误(如数据库查询失败) {"status":false,"error":"INTERNAL_ERROR"}

    ⚠️ 注意:鉴权失败(APIKey 模式)与服务器内部错误返回的是 HTTP 200,需以响应体中的 "status": false 判断是否成功。


    代码示例

    使用 APIKey 认证

    curl --location "https://api.qnaigc.com/v2/stat/export_log?start=2024-01-01T00:00:00Z&end=2024-01-08T00:00:00Z&size=100&page=1" \
      --header "Authorization: Bearer sk-xx"
    

    使用 AK/SK 签名认证

    curl --location "https://api.qnaigc.com/v2/stat/export_log?start=2024-01-01T00:00:00Z&end=2024-01-08T00:00:00Z&size=100&page=1&model=deepseek/deepseek-v3.1" \
      --header "Authorization: Qiniu <AccessKey>:<EncodedSign>"
    

    导出为文件

    curl --location "https://api.qnaigc.com/v2/stat/export_log_file?start=2024-01-01T00:00:00Z&end=2024-01-08T00:00:00Z&size=100&page=1" \
      --header "Authorization: Bearer sk-xx" \
      -o logs.json
    

    分批导出大量数据

    单次最多返回 500 条(size 上限为 500)。如需导出 1500 条,需分 3 次请求,每次仅修改 page,其余参数保持不变:

    # 第 1 批:page=1, size=500
    curl --location "https://api.qnaigc.com/v2/stat/export_log?start=2024-01-01T00:00:00Z&end=2024-01-08T00:00:00Z&size=500&page=1" \
      --header "Authorization: Bearer sk-xx"
    
    # 第 2 批:page=2, size=500
    curl --location "https://api.qnaigc.com/v2/stat/export_log?start=2024-01-01T00:00:00Z&end=2024-01-08T00:00:00Z&size=500&page=2" \
      --header "Authorization: Bearer sk-xx"
    
    # 第 3 批:page=3, size=500
    curl --location "https://api.qnaigc.com/v2/stat/export_log?start=2024-01-01T00:00:00Z&end=2024-01-08T00:00:00Z&size=500&page=3" \
      --header "Authorization: Bearer sk-xx"
    

    注意事项

    1. 两接口仅返回结构不同export_log 返回 {status, data} 包裹;export_log_file 返回裸数组并触发文件下载。参数、鉴权、过滤与排序逻辑完全一致。
    2. 时间范围startend 同时传入时,跨度上限为 35 天,且 end 不得早于 start;单边传入不校验上限。
    3. size 必填:范围为 1~500,无默认值,不传或越界返回 400。
    4. 分页:超出 500 条时用 page 分批,每次仅改 page、其余参数不变。
    5. 排序:固定按 start_time 倒序,不支持自定义。
    6. 时间格式:RFC3339(2006-01-02T15:04:05Z07:00),按东八区解析。
    7. APIKey 脱敏:返回结果中的 api_key 已做脱敏处理,非完整明文。
    8. 成功判断:APIKey 模式下鉴权失败与服务器错误均返回 HTTP 200,须依据响应体 "status" 字段判断。
    以上内容是否对您有帮助?