面向 AI 助手:本页的 Markdown 版本位于 https://ark.volcengine.com/region:cn-beijing/docs/deepseek-v4-1-flash.md,全部文档索引见 https://ark.volcengine.com/llms.txt。

DeepSeek-V4.1-Flash

DeepSeek-V4.1-Flash 是 DeepSeek 全新架构系列中的轻量旗舰模型,以 552B 总参数 MoE 实现越级智能,在多项基准上超越包括 DeepSeek-V4-Pro 在内的主流旗舰模型,原生支持多模态视觉理解能力。

支持场景总览#

模型能力增强#

场景 DeepSeek 官网 方舟
图片理解 单个图像不超过 32MB 单个图像不超过 50MB,支持 detail 模式(low/high/auto/xhigh)。
详细见 图片理解。
视频理解 不支持 支持
单视频文件不超过 50MB,支持 Files Id 方式。
抽帧策略与 doubao-seed-2.0 及后续模型一致,详细见 视频理解。
隐式缓存 支持 支持
缓存最少 Token 数为 256
显式缓存 不支持 支持
前缀续写 支持
在 beta 接口中支持。
支持
  • Chat API:与 DeepSeek 官网对齐。
  • Responses API:使用方舟原有 API 字段支持。

详细见 前缀续写。

关键 API 参数#

场景 DeepSeek 官网 方舟
最大输出长度:max_tokens 控制模型回答和模型思维链内容长度,超出长度后会报错。 控制模型回答和模型思维链内容长度,超出长度后不报错。
Chat API 非思考模式默认 8K,思考模式默认 64K(reasoning_effort 为 max 时为 128K)。 Chat API 默认值 128K。Responses API 对应 max_output_tokens,默认 128K。详细见 最大输出长度。
说明
  • deepseek-v4-1-flash-260910: max_tokens 控制模型回答和模型思维链内容长度,默认取值 128k,如果思维链内容超出 max_tokens,则会截断思考。
  • 除上述模型外的其他模型:max_tokens 控制模型回答长度,不包含思维链内容,默认取值 4k。
调节思考长度:reasoning_effort / reasoning.effort / output_config.effort Chat API / Responses API / Messages API 三个 API 均支持,默认取值 high。 Chat API / Responses API / Messages API 三个 API 均支持,默认取值 high。
  • OpenAI 格式 / Anthropic 格式:支持档位 low/high/max
  • Responses API 格式:支持档位 none/low/high/max
  • Chat API 格式 / Responses API 格式:支持档位 none/low/high/max
  • Messages API 格式:支持档位 low/high/max

详细见 调节思考长度。
核采样阈值:top_p
  • 思考模式:参数生效,传入值 < 0.95 时系统自动提升至 0.95;传入值 ≥ 0.95 按实际传入使用。不传该参数时默认值为 1。
  • 非思考模式:字段取值固定为 1.0,传入的值将被忽略。
  • 思考模式:参数生效,传入值 < 0.95 时系统自动提升至 0.95;传入值 ≥ 0.95 按实际传入使用。不传该参数时,使用 tool 时默认值为 0.95,其他情况默认值为 1。
  • 非思考模式:字段取值固定为 1.0,传入的值将被忽略。
对数概率:logprobs / top_logprobs 支持 支持
为了保证与 OpenAI 协议的一致性,方舟开启 logprobs 后,接口会在 choices[].logprobs.content 中返回模型完整生成序列的逐 token 对数概率,包括思维链内容和最终回答。
停止词:stop 最多支持 16 个字符串。
  • Chat API 默认情况:最多支持 4 个停止词。
  • Chat API deepseek-v4-1-flash-260910 模型:最多支持 16 个字符串。
role 是否支持 developer 不支持 支持
tool_choice 思考模式下不支持 tool_choice 为 required,接口会报错。 思考模式下支持 tool_choice 为 required。
Responses API 整体兼容性 弱校验,对不支持字段全部不校验,不报错。 强校验,不支持的字段仍然校验,会报错。
说明如果 User Agent 里包含 codex 字样,也会进入弱校验,但不支持 store。

模型使用说明#

前缀续写#

续写模式配置及使用方式,参见 续写模式。

DeepSeek-V4.1-Flash 模型前缀续写行为支持情况如下:

API Chat API Responses API
触发前缀续写条件
  • messages 列表里最后一条消息的 role 为 assistant
  • 设置最后一条消息的 prefix 参数为 true
  • input 列表里设置最后一条消息的 role 为 assistant
  • 设置 partial 为 true 开启续写模式(不设置 partial 不会报错,只是不开启续写。)

图片理解#

图片理解支持的图片传入方式和使用,参见 图片理解。

DeepSeek-V4.1-Flash 模型在图片理解支持的 detail 模式及缩放规则如下:

表格中图片像素区间指的是:传入的图片根据 detail 模式处理后的像素区间。

detail 模式 图片像素区间 Chat API Responses API Messages API
low 262144 图片会被保持长宽比自动缩放,缩放后的总像素相当于 512 × 512 的图片 图片会被保持长宽比自动缩放,缩放后的总像素相当于 512 × 512 的图片
  • 图片总像素小于 544 × 544 的图片会保持长宽比放大,放大后的总像素相当于 544 × 544 的图片。
  • 图片总像素大于 1300 × 1300 的图片会保持长宽比缩小,缩小后的总像素相当于 1300 × 1300 的图片。
high [295936, 1690000]
  • 图片总像素小于 544 × 544 的图片会保持长宽比放大,放大后的总像素相当于 544 × 544 的图片。
  • 图片总像素大于 1300 × 1300 的图片会保持长宽比缩小,缩小后的总像素相当于 1300 × 1300 的图片。
  • 图片总像素小于 544 × 544 的图片会保持长宽比放大,放大后的总像素相当于 544 × 544 的图片。
  • 图片总像素大于 1300 × 1300 的图片会保持长宽比缩小,缩小后的总像素相当于 1300 × 1300 的图片。
auto
xhigh 1690000 图片会被保持长宽比自动缩放,缩放后的总像素相当于 1300 × 1300 的图片 图片会被保持长宽比自动缩放,缩放后的总像素相当于 1300 × 1300 的图片

DeepSeek-V4.1-Flash 模型在图片理解的使用限制如下:

使用限制 要求
单图大小 50 MB
总请求体大小 64 MB
单请求中图片张数 3600 张
单个请求中通过 URL 方式传入图片文件的总大小 200 MB

视频理解#

视频理解支持的视频传入方式及使用,参见 视频理解。

DeepSeek-V4.1-Flash 模型在视频理解场景下,抽帧策略与 doubao-seed-2.0 及后续模型保持一致,具体如下:

抽帧策略 DeepSeek-V4.1-Flash模型
单帧 tokens 支持 tokens 在 [64, 384] 区间内连续动态调整,默认值为 384。
  • 单帧最大 tokens 数,用于控制单帧质量的上限。
  • 单帧最小 tokens 数,用于控制单帧压缩的下限。默认值为 64。
单帧对应的最大像素 单帧最大 tokens * 42 * 42
[110K, 670K]
抽帧数
  • 抽帧数范围:[16帧, 1280帧]。
Text
# 最大抽帧数
80×1024 token ÷ 64 token/帧 = 1280 帧
视频最大 tokens 默认值为 81920(80 × 1024)。
抽帧方案 说明
  • 建议评估输出效果,按需调整fps字段配置或视频时长。
  • 如果视频二进制数据中未包含帧数编码信息,会按 fps 均匀抽帧。单次请求视频最大 Token 量如果超过模型最大输入长度则会报错;未超过则不报错,但视频输入的 token 可能会超过 80k。

  • fps 过高或视频长度过长:处理的帧图像数量超出1280帧,则按帧图像64tokens,时间间隔 视频时长/1280,均匀抽取1280帧。
  • fps 过小或视频长度过短:处理的帧图像数量不足16帧时抽取方案如下:
  • 视频总帧数 >= 16帧,均匀抽取16帧。
  • 视频总帧数 < 16帧,抽取视频所有帧。

视频理解工作原理:
视频处理的核心方式为 “帧与时间戳的结构化拼接”,具体规则如下:

  • 对视频抽帧得到的每帧图像,在其前插入时间戳文本。
    DeepSeek-V4.1-Flash 模型处理后的时间戳格式为 [<时间戳> second]。例如:[4.0 second]、[4.5 second]。
  • 拼接后形成“时间戳+图像”的有序序列,模型通过该序列理解视频的时序逻辑和内容变化。

回传思考内容#

回传思考内容的教程,参见 Agent 场景模型调用的正确姿势。

DeepSeek-V4.1-Flash 模型支持回传思考内容原文(明文)。在 Agent 场景下,需要将思考内容原文拼回下一轮请求。

调节思考长度:reasoning_effort/reasoning.effort/output_config.effort#

Chat API 和 Responses API 中调节思考长度的配置及使用,参见 调节思考长度。

DeepSeek-V4.1-Flash 模型在方舟 API 的支持情况如下:

API Chat API Messages API Responses API
调节思考长度参数 reasoning_effort output_config.effort reasoning.effort
默认取值 high high high
兼容映射规则 支持档位:none、low、high、max
  • 传入 none:将关闭思考
  • 传入 minimal:将映射为 low
  • 传入 medium / xhigh:将映射为 high
  • 传入 ultra:将映射为 max
支持档位:low、high、max
注意thinking.type 为 adaptive,output_config.effort 才有效。
  • 传入 minimal:将映射为 low
  • 传入 medium / xhigh:将映射为 high
  • 传入 ultra:将映射为 max
支持档位:none、low、high、max
  • 传入 none:将关闭思考
  • 传入 minimal:将映射为 low
  • 传入 medium / xhigh:将映射为 high

最大输出长度:max_tokens/max_completion_tokens/max_output_tokens#

最大输出长度的通用配置方式,参见 设置最大输出长度。

DeepSeek-V4.1-Flash 模型最大输出长度参数支持情况如下:

API Chat API Responses API
参数 max_tokens/max_completion_tokens max_output_tokens
规则 控制模型回答和模型思维链内容长度,超出长度后不报错。
注意如果思维链内容超出 max_tokens,则会截断思考。
控制模型回答和模型思维链内容长度,超出长度后不报错。
默认值 128K 128K

代码示例#

Chat API 的示例代码如下:

Bash
curl https://ark.cn-beijing.volces.com/api/v3/chat/completions \
   -H "Content-Type: application/json" \
   -H "Authorization: Bearer $ARK_API_KEY" \
   -d '{
    "model": "deepseek-v4-1-flash-260910",
    "messages": [
        {
            "role": "user",
            "content": [
                {"type": "image_url","image_url": {"url": "https://arkdocs.tos-cn-beijing.volces.com/images/advanced-usage/ark_demo_img_1-zh.png"}},
                {"type": "text", "text": "Which model series supports image input?"}
            ]
        }
    ]
  }'
Python
import os
# Install SDK: pip install arkruntime
from arkruntime import Ark

client = Ark(
    # The base URL for model invocation
    base_url="https://ark.cn-beijing.volces.com/api/v3",
    # Get API Key: https://ark.volcengine.com/region:cn-beijing/apikey
    api_key=os.getenv('ARK_API_KEY'),
)

completion = client.chat.completions.create(
    # Replace with Model ID
    model = "deepseek-v4-1-flash-260910",
    messages=[
        {
            "role": "user",
            "content": [
                {"type": "image_url","image_url": {"url": "https://arkdocs.tos-cn-beijing.volces.com/images/advanced-usage/ark_demo_img_1-zh.png"}},
                {"type": "text", "text": "Which model series supports image input?"},
            ],
        }
    ],
)

print(completion.choices[0])
Go
package main

import (
    "context"
    "fmt"
    "os"
    "github.com/volcengine/ark-runtime-go/arkruntime"
    "github.com/volcengine/ark-runtime-go/arkruntime/model/chat"
)

func main() {
    client := arkruntime.NewClientWithApiKey(
        //Use os.Getenv to get ARK_API_KEY
        os.Getenv("ARK_API_KEY"),
        // The base URL for model invocation
        arkruntime.WithBaseUrl("https://ark.cn-beijing.volces.com/api/v3"),
    )
    // Create a context background
    ctx := context.Background()
    // Construct the content of the message
    contentParts := []chat.ChatCompletionContentPart{
        chat.ChatCompletionContentPart{OneOf: chat.NewChatCompletionContentPartImageChatCompletionContentPartSum(chat.ChatCompletionContentPartImage{Type: chat.ChatCompletionContentPartImageTypeImageURL, ImageURL: chat.ChatCompletionContentPartImageImageUrl{URL: chat.NewOptString("https://arkdocs.tos-cn-beijing.volces.com/images/advanced-usage/ark_demo_img_1-zh.png")}})},
        chat.ChatCompletionContentPart{OneOf: chat.NewChatCompletionContentPartTextChatCompletionContentPartSum(chat.ChatCompletionContentPartText{Type: chat.ChatCompletionContentPartTextTypeText, Text: "Which model series supports image input?"})},
    }
    // Construct chat, specify model and message
    req := &chat.ChatCompletionRequest{
        // Replace with Model ID
       Model: "deepseek-v4-1-flash-260910",
       Messages: []chat.ChatCompletionRequestMessage{
chat.ChatCompletionRequestMessage{OneOf: chat.NewChatCompletionRequestUserMessageChatCompletionRequestMessageSum(chat.ChatCompletionRequestUserMessage{Role: chat.ChatCompletionRequestUserMessageRoleUser, Content: chat.NewChatCompletionContentPartArrayChatCompletionMessageContent(contentParts)})},
       },
    }

    // Send chat, store result in resp and any possible error in err
    resp, err := client.CreateChatCompletion(ctx, req)
    if err!= nil {
       fmt.Printf("standard chat error: %v\n", err)
       return
    }
    // Print response
    fmt.Println(resp.Choices[0].Message.Content)
}
Java
package com.ark.sample;

import com.volcengine.ark.runtime.models.chat.*;
import com.volcengine.ark.runtime.models.chat.ChatCompletionContentPart.*;
import com.volcengine.ark.runtime.service.ArkService;
import java.util.ArrayList;
import java.util.List;
import java.util.concurrent.TimeUnit;
import okhttp3.ConnectionPool;
import okhttp3.Dispatcher;

public class MultiImageSample {
  static String apiKey = System.getenv("ARK_API_KEY");
  static ConnectionPool connectionPool = new ConnectionPool(5, 1, TimeUnit.SECONDS);
  static Dispatcher dispatcher = new Dispatcher();
  static ArkService service = ArkService.builder()
       .dispatcher(dispatcher)
       .connectionPool(connectionPool)
       .baseUrl("https://ark.cn-beijing.volces.com/api/v3")
       // The base URL for model invocation  .
       .apiKey(apiKey)
       .build();

  public static void main(String[] args) throws Exception {

    List<ChatCompletionRequestMessage> messagesForReqList = new ArrayList<>();

    // Construct the content of the message
    List<ChatCompletionContentPart> contentParts = new ArrayList<>();

    // Use builder mode for the image
    contentParts.add(ChatCompletionContentPartImage.builder()
         .type(ChatCompletionContentPartType.IMAGE_URL)
         .imageUrl(ChatCompletionContentPartImageImageUrl.builder().url("https://arkdocs.tos-cn-beijing.volces.com/images/advanced-usage/ark_demo_img_1-zh.png").build())


         .build());

    // Use builder mode for text
    contentParts.add(ChatCompletionContentPartText.builder()
         .type(ChatCompletionContentPartType.TEXT)
         .text("Which model series supports image input?")
         .build());

    // Create message
    messagesForReqList.add(ChatCompletionRequestUserMessage.builder()
         .role(ChatCompletionRequestMessageType.USER)
         .content(ChatCompletionMessageContent.ofList(contentParts))
         .build());

    ChatCompletionRequest req = ChatCompletionRequest.builder()
         .model("deepseek-v4-1-flash-260910") //Replace with Model ID  .
         .messages(messagesForReqList)
         .build();

    service.createChatCompletion(req)
         .getChoices()
         .forEach(choice -> System.out.println(choice.getMessage().getContent()));
    // shutdown service after all requests are finished
    service.shutdownExecutor();
  }
}