帮助与文档 > 产品文档 > 自然语言翻译服务 > API文档 > DeepSeek批量模型
DeepSeek批量模型

DeepSeek批量模型 API 简介

概念解释

批量推理服务通过离线方式进行大规模数据处理,非常适合需要处理大量数据且无需实时获取结果的场景,如:

数据评测、日志分析等。此外,批量推理的计费也低于实时推理,有效节省资源消耗成本。

本文档中极速体验部分提供了接入代码示例及教程。调用方无需准备任何数据,也无需了解本文档其他部分内容,仅通过三个步骤即可实现一键运行,快速体验到批量推理的效果。

说明

本文档主要针对需要集成HTTP API的技术开发工程师,详细描述DeepSeek批量模型的技术内容。

如果您有与我们商务合作的需求,可以通过以下方式联系我们:

商务邮箱: AIcloud_Business@corp.youdao.com

如果您对文档内容有任何疑问,可以通过以下几种方式联系我们:

客服QQ:1906538062

智云翻译技术交流QQ 1群: 652880659

智云翻译技术交流QQ 2群: 669384425

智云翻译技术交流QQ 3群: 807539209

智云翻译技术交流QQ 4群: 936752411

联系邮箱: zhiyun@corp.youdao.com

温馨提示:

  • 本文档主要针对开发人员,接入测试前需要获取 应用ID应用密钥 ,请按照新手指南 获取。

流程说明

以下为一次批量推理任务的标准处理流程:

pl-tuililiucheng.jpg

输入文件

输入文件是一个jsonl格式的文件(即每行都是一个json格式的数据),有如下特点:

  1. 每行代表1个对模型的请求,每个请求间互相独立。
  2. 单个批量推理任务最大允许5000个请求,即5000行。

输入行结构

输入文件中每行是一个独立请求,其结构如下:

名称 类型 是否必须 默认值 备注 其他信息
custom_id string 必须 该请求的标记,用以与完成后的结果对应 custom_id需在其所在的输入文件中全局唯一,不可重复。
body string 必须 调底层模型的入参,支持的参数可参考模型调用接口文档 不支持设置model参数,系统会根据创建任务接口的参数自动设置。所有请求需使用同一模型。不支持设置stream, stream_options参数。

输入文件示例


{"custom_id":"1","body":{"messages":[{"role":"user","content":"默写静夜思"}],"temperature":1}} 
{"custom_id":"2","body":{"messages":[{"role":"user","content":"世界上面积最大的国家是哪个"}],"temperature":1}}

输出文件

批量推理的请求允许部分成功。比如输入文件有100个请求,可能80个成功,20个失败。

任务结束后,输出文件分为结果文件及错误文件:处理成功的请求会保存在结果文件中,处理失败的请求则会保存在错误文件中,请求通过custom_id与输入文件一一对应。

结果文件

结果文件行结构

名称 类型 默认值 备注 其他信息
custom_id string 该请求的标记,用以与输入的请求对应
id string 该请求调底层模型的处理id
error string 错误原因
response string 请求响应结果
response.body object 调底层模型的返回结果 结果完全兼容OpenAI SDK,可参考火山引擎的文本对话API文档的非流式返回结构:对话(Chat) API-响应
response.requestId string 该次调模型请求的请求ID
response.statusCode int 请求的响应状态码

结果文件示例(为方便阅读,已通过json formatter调整缩进等格式):

{
   "custom_id":"1",
   "id":"INFER_db931ae0-0b11-4e7a-bbdb-3a92d6890f0f",
   "response":{
      "body":{
         "choices":[
            {
               "finish_reason":"stop",
               "index":0,
               "message":{
                  "content":"\n\n《静夜思》\n床前明月光,疑是地上霜。\n举头望明月,低头思故乡。\n\n注:此版本是明代刊行的通行版本(收录于《唐诗三百首》等经典选本),与宋代文献记载的早期版本(「床前看月光,疑是地上霜。举头望山月,低头思故乡」)存在细微差异。两种版本均广为流传,体现了古诗词在传播过程中的文字流变现象。",
                  "reasoning_content":"好的,用户让我默写李白的《静夜思》。首先,我需要确认这首诗的内容是否正确。这首诗是五言绝句,共有四句。第一句“床前明月光”没问题,但要注意有些版本是“床前看月光”或者“床前明月光”。第二句“疑是地上霜”通常不会有问题。第三句和第四句,有些版本是“举头望明月,低头思故乡”,而有些可能是“举头望山月”。这里需要判断用户希望得到哪种版本。李白的诗在流传过程中可能有不同的版本,所以得考虑最常见的那个。现在的教材大多用“举头望明月”这个版本,可能更符合现代人的记忆。为了确保正确,可以回忆一下权威出版物或者教材里的版本,比如人教版语文课本用的是哪个。如果用户是学生,可能需要准确的课本内容。另外,用户可能没有其他复杂的需求,只是单纯想默写,所以直接给出正确的诗句即可,不需要额外解释,但最好注明可能存在版本差异,以免引起误解。最后检查每个字的正确性,比如“疑是地上霜”的“疑”字不要写成“凝”,“举头”不要写成“抬头”。确保无误后就可以回复了。\n",
                  "role":"assistant"
               }
            }
         ],
         "created":1753147220,
         "id":"chatcmpl-3afe7fcadcad4af7a30b52a3ee1ec2d0",
         "model":"deepseek_r1",
         "object":"chat.completion",
         "usage":{
            "completion_tokens":352,
            "completion_tokens_details":{
               "reasoning_tokens":253
            },
            "prompt_tokens":5,
            "prompt_tokens_details":{
               "cached_tokens":0
            },
            "total_tokens":357
         }
      },
      "request_id":"INFER_db931ae0-0b11-4e7a-bbdb-3a92d6890f0f",
      "status_code":0
   }
}
{
   "custom_id":"2",
   "id":"INFER_dd4a6320-8408-4cc7-91f4-17f117e297f6",
   "response":{
      "body":{
         "choices":[
            {
               "finish_reason":"stop",
               "index":0,
               "message":{
                  "content":"\n\n世界上面积最大的国家是 **俄罗斯联邦**(简称俄罗斯)。 \n其国土总面积约为 **1712.5万平方公里**(CIA《世界概况》数据),横跨欧亚大陆,覆盖了全球约八分之一的陆地面积,远超第二大国加拿大(约998万平方公里)。俄罗斯的领土包括广阔的平原、山脉、森林、河流(如伏尔加河和勒拿河)以及丰富的自然资源。\n\n**补充说明**: \n- 领土争议或计算标准(如是否包含水域)可能导致数据细微差异,但俄罗斯的领先地位无争议。 \n- 若单算陆地面积,中国(约960万平方公里)和俄罗斯的排名不变。",
                  "reasoning_content":"嗯,用户问世界上面积最大的国家是哪个。这个问题看起来简单,但其实需要确认几个点。首先,我需要确定是用哪个标准来衡量面积,是总面积还是陆地面积?一般来说,提到国家面积时通常指的是总面积,包括陆地和水域,比如湖泊、河流等。俄罗斯作为最大的国家,领土横跨欧亚两大洲,面积超过1700万平方公里,应该是正确答案。不过,我是不是应该考虑一些特殊情况,比如争议地区?比如南极洲虽然有一些国家宣称拥有主权,但根据《南极条约》,这些主张被冻结了,所以不算。另外,俄罗斯的面积数据是否有变动?需要确认最新的数据来源是否支持。另外,加拿大的面积也很大,但通常是排第二,之后是中国、美国等。用户可能想确认这个排序是否准确。用户没有提到其他因素,比如人口或者经济,所以专注于地理面积。此外,是否可能有某些资料有不同的数据,比如是否将某些区域算入国家面积,比如领海或专属经济区?不过一般国家面积统计以陆地面积为主。我需要确认标准的数据来源,例如CIA世界概况或者其他权威机构的数据。考虑到这些因素,答案应该是俄罗斯。不过,要确保不会有拼写错误或者国家名称的错误,比如苏联已经解体,现在是俄罗斯。还有可能,用户可能混淆了面积最大的国家和人口最多的国家,但问题明确问的是面积。所以综合来看,俄罗斯是正确的回答,但需要简洁明确地指出。\n",
                  "role":"assistant"
               }
            }
         ],
         "created":1753147220,
         "id":"chatcmpl-7cf25a6debb14fa482b809a7b33a6534",
         "model":"deepseek_r1",
         "object":"chat.completion",
         "usage":{
            "completion_tokens":440,
            "completion_tokens_details":{
               "reasoning_tokens":297
            },
            "prompt_tokens":6,
            "prompt_tokens_details":{
               "cached_tokens":0
            },
            "total_tokens":446
         }
      },
      "request_id":"INFER_dd4a6320-8408-4cc7-91f4-17f117e297f6",
      "status_code":0
   }
}

错误文件

结构同结果文件

错误文件示例:

{
   "custom_id":"50",
   "error":"Auth fail:invalid apiKey",
   "id":"INFER_60b7f0f7-8580-450e-b109-466aa0161580",
   "response":{
      "request_id":"INFER_60b7f0f7-8580-450e-b109-466aa0161580",
      "status_code":90103
   }
}

接口调用参数

创建批量推理任务

请求方式:POST

接口地址:https://openapi.youdao.com/llmgateway/batchInfer/createTask

请求参数

  • Headers:
参数名称 参数值 是否必须 示例 备注
Content-Type application/json application/json
Authorization Bearer ${api_key} 在智云控制台申请 token鉴权
  • Body
名称 类型 是否必须 默认值 备注 其他信息
CompletionWindow string 必须 任务过期时间。超过过期时间后,未执行的请求会被取消。已执行的请求结果会被保存。 取值范围:24h ~ 144h
ModelRefernce object 必须 任务使用的模型: { "FoundationModel":{ "Name":"deepseek-r1", "ModelVersion":"250120" } }
InputFileLocation String 必须 输入文件url
  • Body示例
{
   "CompletionWindow":"36h",
   "ModelReference":{
      "FoundationModel":{
         "Name":"deepseek-r1",
         "ModelVersion":"250120"
      }
   },
   "InputFileLocation":"[www.demo.com](http://www.demo.com)"
}
  • 返回结果

正常返回

示例

{
   "code":0,
   "msg":"SUCCESS",
   "data":{
      "Id":"BATCH_xxx"
   },
   "request_id":"f1972786-7e27-4df7-ad23-3456d354a207"
}

查询批量推理任务

请求方式:POST

接口地址:https://openapi.youdao.com/llmgateway/batchInfer/getTask

请求参数

  • Headers:
参数名称 参数值 是否必须 示例 备注
Content-Type application/json application/json
Authorization Bearer ${api_key} 在智云控制台申请 token鉴权
  • Body
名称 类型 是否必须 默认值 备注 其他信息
Id string 必须 要查询的任务ID
  • Body示例
{ "Id" : "BATCH_3bee2339-2b18-4ccc-affe-0d6b4835766e" }
  • 返回结果

正常返回

示例

{
    "code": 0,
    "msg": "SUCCESS",
    "data": {
        "Id": "BATCH_d2762f2d-9fce-4a01-b6a8-187a5722d555",
        "CompletionWindow": "24h",
        "ModelReference": {
            "FoundationModel": {
                "Name": "deepseek-v3",
                "ModelVersion": "250324"
            }
        },
        "InputFileLocation": "www.demo-input.com",
        "OutputFileLocation": "www.demo-output.com",
        "ErrorFileLocation": "www.demo-error.com",
        "Status": {
            "Phase": "Completed",
            "Code": null,
            "Message": null
        },
        "RequestCounts": {
            "Total": 2,
            "Completed": 2,
            "Failed": 0
        }
    },
    "request_id": "f57c5523-bf4f-40a9-9cda-43a05337e333"
}
  • 任务状态列表
状态码 名称 描述
Initializing 初始化阶段 验证任务输入文件是否符合要求
Queued 排队阶段 因资源调度原因,正在排队等待处理
Running 运行阶段 任务正在被执行
Completed 已完成阶段 所有请求已处理完毕,任务完成
Terminating 终止中阶段 由于任务到期或手动终止,任务当前处于终止中状态。
Terminated 已中止阶段 任务已中止
Failed 失败阶段 由于输入文件不符合要求等原因,任务已失败

中止批量推理任务

请求方式:POST

接口地址:https://openapi.youdao.com/llmgateway/batchInfer/terminateTask

请求参数

  • Headers:
参数名称 参数值 是否必须 示例 备注
Content-Type application/json application/json
Authorization Bearer ${api_key} 在智云控制台申请 token鉴权
  • Body
名称 类型 是否必须 默认值 备注 其他信息
Id string 必须 要中止的任务ID 部分状态下不可中止(Terminating, Completed, Failed, Terminated)
  • Body示例
{ "Id" : "BATCH_3bee2339-2b18-4ccc-affe-0d6b4835766e" }

返回结果

正常返回 示例

{
   "code":0,
   "msg":"SUCCESS",
   "data":{
      "Id":"BATCH_38207071-4825-43b3-8214-fd51daf8f5a4"
   },
   "request_id":"898f7c1a-dda4-4310-b4fe-4cdfe1421d6d"

获取批量推理任务列表

请求方式:POST

接口路径:https://openapi.youdao.com/llmgateway/api/v1/chat/completions

请求参数

  • Headers:
参数名称 参数值 是否必须 示例 备注
Content-Type application/json application/json
Authorization Bearer ${api_key} 在智云控制台申请 token鉴权
  • Body
名称 类型 是否必须 默认值 备注 其他信息
PageNumber int 1 分页查询时的起始页码
PageSize int 10 分页查询时每页显示的记录数,取值:最小值为1, 最大值为100
SortBy string CreateTime 指定排序指标,取值: CreateTime为创建时间,UpdateTime为更新时间
SortOrder string Desc 指定排序顺序。 取值: Asc为升序排列,Desc为降序排列
  • Body示例
{
    "PageSize" : "1",
    "PageNumber" : "2",
    "SortBy": "CreateTime",
    "SortOrder": "Asc"
}

返回结果

正常返回 示例

{
    "code": 0,
    "msg": "SUCCESS",
    "data": {
        "PageNumber": 1,
        "PageSize": 2,
        "Items": [
            {
                "Id": "BATCH_3c6ebcbf-8172-4f4f-b30c-b5ca011a06ab",
                "CompletionWindow": "32h",
                "ModelReference": {
                    "FoundationModel": {
                        "Name": "deepseek-r1",
                        "ModelVersion": "250120"
                    }
                },
                "InputFileLocation": "www.demo-input.com",
                "OutputFileLocation": "www.demo-output.com",
                "ErrorFileLocation": "www.demo-error.com",
                "Status": {
                    "Phase": "Completed",
                    "Code": null,
                    "Message": null
                },
                "RequestCounts": {
                    "Total": 3,
                    "Completed": 3,
                    "Failed": 0
                }
            },
            {
                "Id": "BATCH_c6b6fee9-0672-476c-a73b-c490abd20f89",
                "CompletionWindow": "32h",
                "ModelReference": {
                    "FoundationModel": {
                        "Name": "deepseek-r1",
                        "ModelVersion": "250120"
                    }
                },
                "InputFileLocation": "www.demo-input.com",
                "OutputFileLocation": "www.demo-output.com",
                "ErrorFileLocation": "www.demo-error.com",
                "Status": {
                    "Phase": "Completed",
                    "Code": null,
                    "Message": null
                },
                "RequestCounts": {
                    "Total": 3,
                    "Completed": 3,
                    "Failed": 0
                }
            }
        ]
    },
    "request_id": "aa077336-50e0-4b78-b620-03839dec88d1"
}

极速体验

我们提供了python版本的接入代码,其中封装了整个从上传文件到轮询、下载文件的全流程。调用方可通过仅仅3个步骤,在短短几分钟内快速体验到批量推理的效果。

  1. 步骤一:安装nos sdk
pip3 install nos-python3-sdk

处理流程中涉及输入文件上传,因此需安装nos sdk,详情参见NOS官方文档

  1. 步骤二:替换为自己的APIKey

申请APIKey的方法参见下方描述信息

  1. 步骤三:运行main方法

项目中已准备好样例输入文件,调用方点击运行main方法即可,点击后程序会自动完成上传文件、创建任务、轮询任务、下载结果文件的整套流程。

效果

xiaoguotu.jpg

极速体验模式是让接入方可以快速体验到批量推理的流程及效果。如果要实际使用,接入方可能需要对Demo代码进行一些调整,如修改输入文件、修改轮询次数等等。

这些项已作为配置项置于main方法顶层,接入方准备好自己的输入文件,修改相关配置后即可再次运行并获得结果。


# ---------------------------- 配置区 ---------------------------
CONFIG = {
"base_url": "https://openapi.youdao.com/llmgateway/batchInfer",  # 批量推理服务URL
"auth_token": "此处替换为您的APIKey",  # 鉴权token,即APIKey,申请方式参见ReadMe文档
"input_file_path": "input_file/sample_input_file.jsonl",  # 输入文件路径
"completion_window": "36h",  # 任务完成窗口,具体参见接口文档
"model_name": "deepseek-r1",  # 模型名称,具体参见接口文档
"model_version": "250120",  # 模型版本,具体参见接口文档
"max_retries": 100,  # 查询任务状态时的最大轮询次数
"retry_intervals": 30  # 查询任务状态时的最大轮询间隔
}

APIKey获取

创建APPID

  1. 登录智云控制台
  2. 控制台:选择自然语言翻译服务-deepseek服务-创建应用-勾选deepseek服务
  3. 已有APPID:选择已有应用,勾选deepseek服务

1chuangjianyingyong.png

获取APIKey

1.点击应用总览-API Key

2chuangjianAPIKEY.png

创建API Key

2zhanshi.png

  • 此步骤生成的apikey用于鉴权,替换“接入Demo语言”中的${api_key}变量

4chuangjianwancheng.png

模型支持

批量推理任务仅支持自研模型:

模型 版本 最大上下文长度 最大输入长度(token) 最大输出长度 最大思考内容长度 刊例价(元/1M token) 模型名称(Name) 模型版本(ModelVersion)
DeepSeek-R1 批量推理 64k 48k 16k 16k 输入:2元 输出:8元 deepseek-r1 250120
DeepSeek-V3 批量推理 64k 48k 16k - 输入:1元 输出:4元 deepseek-v3 250324

错误代码列表

错误码 含义
100101 - 缺少参数错误 原因:请求体格式错误 | 解决方法:检查是否参数漏填。| 返回结构示例如下:{"code":100101,"msg":"USER_LACK_MODEL","request_id":"519387c7-c318-4786-b49a-11cbda135527"}
100102 - 参数填写错误 原因:参数或批量推理输入文件填写错误 | 解决方法:检查参数填写是否正确。| 返回结构示例如下:{"code":100102,"msg":"USER_WRONG_MODEL","request_id":"f0396806-4ff3-42dc-87d3-e2bb0d6842f0"}
100103 - 参数取值错误 原因:参数或批量推理输入文件取值范围错误 | 解决方法: 检查参数取值范围是否有误 | 返回结构示例如下:{"code":100103,"msg":"USER_COMPLETION_WINDOW_INVALID","request_id":"b862715c-728d-4df9-a9cb-e07d0f7005fe"}
100260 - 任务流转失败 原因:此错误可能出现在批量推理任务的错误文件中,含义是批量推理任务流转失败 | 解决方法:请联系我们解决 | 返回结构示例如下:{"custom_id":"50","error":"CUR_BATCH_TASK_WRONG_STATUS","id":"INFER_60b7f0f7-8580-450e-b109-466aa0161580","response":{"request_id":"INFER_60b7f0f7-8580-450e-b109-466aa0161580","status_code":100260}}
100261 任务输入文件错误 原因:此错误可能出现在批量推理任务的错误文件中,含义是处理批量推理任务输入文件失败 | 解决方法:请检查您的输入文件是否符合要求 | 返回结构示例如下:{"custom_id":"50","error":"CUR_DOWNLOAD_INPUT_DATA_ERROR","id":"INFER_60b7f0f7-8580-450e-b109-466aa0161580","response":{"request_id":"INFER_60b7f0f7-8580-450e-b109-466aa0161580","status_code":100261}}
100262 ~ 100265 - 任务处理错误 原因:此类错误可能出现在批量推理任务的错误文件中, 含义是批量推理任务处理过程异常 | 解决方法:请联系我们解决 | 返回结构示例如下:{"custom_id":"50","error":"CUR_BATCH_TASK_TERMINATE_STAGE_FAILED","id":"INFER_60b7f0f7-8580-450e-b109-466aa0161580","response":{"request_id":"INFER_60b7f0f7-8580-450e-b109-466aa0161580","status_code":100264}}
100266 - 任务超时错误 原因:此错误可能出现在批量推理任务的错误文件中, 含义是可能因资源不足,或机器重启,导致请求/任务出现超时异常 | 解决方法:可尝试加大过期窗口重试失败请求,若问题一直存在,请联系我们解决 | 返回结构示例如下:{"custom_id":"50","error":"CUR_BATCH_TASK_EXECUTE_OVERTIME","id":"INFER_60b7f0f7-8580-450e-b109-466aa0161580","response":{"request_id":"INFER_60b7f0f7-8580-450e-b109-466aa0161580","status_code":100266}}
100267 - 定时任务异常 原因:此错误可能出现在批量推理任务的错误文件中, 含义是批量推理定时任务处理失败 | 解决方法:请联系我们解决 | 返回结构示例如下:{"custom_id":"50","error":"CUR_BATCH_TASK_EXPIRE_JOB_ERROR","id":"INFER_60b7f0f7-8580-450e-b109-466aa0161580","response":{"request_id":"INFER_60b7f0f7-8580-450e-b109-466aa0161580","status_code":100267}}
90103 - 认证失败 原因:此错误可能出现在批量推理任务的错误文件中,APIKey错误、无权限、账户余额不足,认证失败。 | 解决方法:请检查您的APIKey 是否正确,是否在智云控制台开通了deepseek权限,账户余额是否充足 | 返回结构示例如下:{"custom_id":"50","error":"Auth fail:invalid apiKey","id":"INFER_60b7f0f7-8580-450e-b109-466aa0161580","response":{"request_id":"INFER_60b7f0f7-8580-450e-b109-466aa0161580","status_code":90103}}

Demo示例

请下载后使用 Python Demo