# DeepSeek Flash — Scenepond API

模型 ID: `deepseek-flash`

模型开发者: DeepSeek

原始页面: https://open.scenepond.ai/zh/models/deepseek-flash#api

核对日期: 2026-10-01

API 地址: `https://scenepond-api-production.up.railway.app/v1`

每次请求使用 Authorization: Bearer 和 Scenepond API Key 认证；密钥保存在服务器。

## 对话补全

`POST /v1/chat/completions`

### 最小调用

#### cURL

```bash
curl --fail-with-body -X POST "https://scenepond-api-production.up.railway.app/v1/chat/completions" \
  -H "Authorization: Bearer $SCENEPOND_API_KEY" \
  -H "Content-Type: application/json" \
  --data-binary @- <<'JSON'
{
  "model": "deepseek-flash",
  "messages": [
    {
      "role": "user",
      "content": "Hello"
    }
  ]
}
JSON
```

#### Python

```python
import os
import json
from urllib.parse import quote
from urllib.request import Request, urlopen

payload = json.loads("{\n  \"model\": \"deepseek-flash\",\n  \"messages\": [\n    {\n      \"role\": \"user\",\n      \"content\": \"Hello\"\n    }\n  ]\n}")

request = Request(
    "https://scenepond-api-production.up.railway.app/v1/chat/completions",
    headers={
        "Authorization": "Bearer " + os.environ["SCENEPOND_API_KEY"],
        "Content-Type": "application/json",
    },
    data=json.dumps(payload).encode("utf-8"),
    method="POST",
)
with urlopen(request) as response:
    result = json.load(response)
print(json.dumps(result, indent=2))
```

#### JavaScript

```javascript
const response = await fetch("https://scenepond-api-production.up.railway.app/v1/chat/completions", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.SCENEPOND_API_KEY}`,
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
  "model": "deepseek-flash",
  "messages": [
    {
      "role": "user",
      "content": "Hello"
    }
  ]
})
});
if (!response.ok) throw new Error(`API error: ${response.status} ${await response.text()}`);
const result = await response.json();
console.log(result);
```

### 请求参数

- `model` — **必填**; `string`. 使用此处公布的完整模型 ID。
  - 约束: `deepseek-flash`

- `messages` — **必填**; `object[]`. 按顺序发送对话历史。
  - 约束: `至少一条消息`

### messages 中的字段

仅在提供 messages 时适用；子字段必填不代表可选的父字段也必填。

- `messages[].role` — **必填**; `string`. 消息作者的角色。
  - 约束: `system`; `user`; `assistant`; `tool`

- `messages[].content` — **必填**; `string | object[] | null`. 消息文本；包含工具调用的 assistant 消息可使用 null。

### messages[].content 中的字段

仅在提供 messages[].content 时适用；子字段必填不代表可选的父字段也必填。

- `messages[].content[].type` — **必填**; `string`. 选择文本或图片内容项。
  - 约束: `text`; `image_url`

- `messages[].content[].text` — **条件必填**; `string`. text 内容项必须提供。

- `messages[].content[].image_url` — **条件必填**; `object`. user 和 tool 消息的图片输入。
  - 内容项 type 为 image_url 时必须提供。

### messages[].content[].image_url 中的字段

仅在提供 messages[].content[].image_url 时适用；子字段必填不代表可选的父字段也必填。

- `messages[].content[].image_url.url` — **必填**; `string`. HTTPS 图片 URL 或 base64 图片 data URL。

- `messages[].content[].image_url.detail` — **可选**; `string`. 图片处理精度。
  - 约束: `low`; `high`; `original`; `auto`



- `messages[].name` — **可选**; `string`. 可选的参与者名称。

- `messages[].tool_call_id` — **条件必填**; `string`. 工具回复必须提供，并与先前的工具调用 ID 一致。

- `messages[].tool_calls` — **可选**; `object[]`. 返回工具结果时，重放 assistant 的函数调用。

### messages[].tool_calls 中的字段

仅在提供 messages[].tool_calls 时适用；子字段必填不代表可选的父字段也必填。

- `messages[].tool_calls[].id` — **必填**; `string`. 供对应工具回复引用的标识符。

- `messages[].tool_calls[].type` — **必填**; `string`. 函数调用类型。
  - 约束: `function`

- `messages[].tool_calls[].function` — **必填**; `object`. 函数名与 JSON 编码的参数。

### messages[].tool_calls[].function 中的字段

仅在提供 messages[].tool_calls[].function 时适用；子字段必填不代表可选的父字段也必填。

- `messages[].tool_calls[].function.name` — **必填**; `string`. 已声明函数的名称。

- `messages[].tool_calls[].function.arguments` — **必填**; `string`. 包含函数参数的 JSON 字符串。



- `messages[].reasoning_content` — **条件必填**; `string`. 延续思考模式的工具调用对话时，重放先前的 assistant 推理内容。


- `thinking` — **可选**; `object`. 开启或关闭思考模式。

### thinking 中的字段

仅在提供 thinking 时适用；子字段必填不代表可选的父字段也必填。

- `thinking.type` — **可选**; `string`. 思考模式开关。
  - 默认: `enabled`
  - 约束: `enabled`; `已禁用`


- `reasoning_effort` — **可选**; `string`. 选择推理强度；none 会关闭思考。
  - 默认: `high`
  - 约束: `none`; `low`; `high`; `max`

- `max_tokens` — **可选**; `integer`. 最大生成 token 数；输入与输出总量还需符合模型上下文限制。
  - 约束: `1–393216`

- `stream` — **可选**; `boolean`. 接收增量服务器发送事件。
  - 默认: `false`

- `stream_options` — **可选**; `object`. 流式选项；需同时设置 stream=true。

### stream_options 中的字段

仅在提供 stream_options 时适用；子字段必填不代表可选的父字段也必填。

- `stream_options.include_usage` — **可选**; `boolean`. 请求在流式响应中返回 token 用量。


- `temperature` — **可选**; `number`. 采样随机性；启用思考时会被忽略。
  - 默认: `1`
  - 约束: `0–2`

- `top_p` — **可选**; `number`. 思考模式中的采样阈值；非思考模式会忽略此值。
  - 默认: `1`
  - 约束: `0 < top_p ≤ 1`; `思考模式：小于 0.95 的值按 0.95 处理`

- `stop` — **可选**; `string | string[]`. 遇到任意指定序列时停止生成。
  - 约束: `最多 16 个序列`

- `response_format` — **可选**; `object`. 选择普通文本或 JSON 对象输出。

### response_format 中的字段

仅在提供 response_format 时适用；子字段必填不代表可选的父字段也必填。

- `response_format.type` — **可选**; `string`. 输出格式。
  - 默认: `text`
  - 约束: `text`; `json_object`


- `tools` — **可选**; `object[]`. 声明模型可请求的函数；函数由你的应用执行。

### tools 中的字段

仅在提供 tools 时适用；子字段必填不代表可选的父字段也必填。

- `tools[].type` — **必填**; `string`. 函数工具类型。
  - 约束: `function`

- `tools[].function` — **必填**; `object`. 函数定义。

### tools[].function 中的字段

仅在提供 tools[].function 时适用；子字段必填不代表可选的父字段也必填。

- `tools[].function.name` — **必填**; `string`. 唯一的函数名。
  - 约束: `1–128 个字符`; `A–Z、a–z、0–9、下划线或连字符`

- `tools[].function.description` — **可选**; `string`. 说明何时应使用此函数。

- `tools[].function.parameters` — **可选**; `object`. 函数参数的 JSON Schema；省略表示无参数。



- `tool_choice` — **可选**; `string | object`. 允许、禁用、要求或指定函数调用。
  - 约束: `none`; `auto`; `必填`; `{"type":"function","function":{"name":"FUNCTION_NAME"}}`

- `logprobs` — **可选**; `boolean`. 返回生成文本的对数概率。

- `top_logprobs` — **可选**; `integer`. 返回候选 token 概率的数量；需设置 logprobs=true。
  - 约束: `0–20`

### 响应示例

响应示例仅展示结构；ID、URL 和数值为占位内容。

#### 已完成的聊天响应

```json
{
  "id": "chatcmpl_example",
  "object": "chat.completion",
  "created": 1790812800,
  "model": "deepseek-flash",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Hello! How can I help?"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 8,
    "completion_tokens": 9,
    "total_tokens": 17
  }
}
```

#### Chat 流式文本分片

```json
{
  "id": "chatcmpl_example",
  "object": "chat.completion.chunk",
  "created": 1790812800,
  "model": "deepseek-flash",
  "choices": [
    {
      "index": 0,
      "delta": {
        "content": "Hello"
      },
      "finish_reason": null
    }
  ]
}
```

### 调用注意事项

- 使用 Scenepond Bearer API 密钥和 Scenepond 基础 URL，无需提供方密钥。
- 默认启用思考。temperature 在思考模式中无效，top_p 在非思考模式中无效。
- 省略 max_tokens 时，提供方在非思考模式下默认使用 8192，思考模式下使用 65536，max 推理强度下使用 131072。
- JSON 对象输出还需在提示词中要求生成 JSON。请检查 finish_reason，避免把截断输出当作完整 JSON。
- 使用 required 或指定函数的 tool_choice 时，需关闭思考。执行工具前请校验函数参数。
- 延续思考模式的工具调用时，保留 assistant 的 tool_calls、reasoning_content 及对应工具回复。
- Chat 流式响应以 [DONE] 结束。提供方返回最终 token 用量，网关可能统一用量分片的发送方式。
- stream 为 false 时，网关会移除 stream_options；在支持的渠道上也可能自动请求用量。
- frequency_penalty 和 presence_penalty 已不影响原生 DeepSeek 输出。不要把 seed、n 或 max_completion_tokens 当作已支持的 DeepSeek 控制参数。
- 提供方文档列有 user_id，但当前网关 Chat DTO 不会保留该字段。额外的未文档化字段不保证会传至提供方。
- 助手前缀补全和严格工具模式属于提供方 Beta 功能，此标准 Chat 端点尚未验证其 Beta 路由。
- DeepSeek Flash 支持 user 或 tool 消息中的图片 URL 和内嵌图片数据。system 或 assistant 消息中的图片会被拒绝；此处尚未确认 Scenepond Files API 支持。

## Responses

`POST /v1/responses`

### 最小调用

#### cURL

```bash
curl --fail-with-body -X POST "https://scenepond-api-production.up.railway.app/v1/responses" \
  -H "Authorization: Bearer $SCENEPOND_API_KEY" \
  -H "Content-Type: application/json" \
  --data-binary @- <<'JSON'
{
  "model": "deepseek-flash",
  "input": "Hello"
}
JSON
```

#### Python

```python
import os
import json
from urllib.parse import quote
from urllib.request import Request, urlopen

payload = json.loads("{\n  \"model\": \"deepseek-flash\",\n  \"input\": \"Hello\"\n}")

request = Request(
    "https://scenepond-api-production.up.railway.app/v1/responses",
    headers={
        "Authorization": "Bearer " + os.environ["SCENEPOND_API_KEY"],
        "Content-Type": "application/json",
    },
    data=json.dumps(payload).encode("utf-8"),
    method="POST",
)
with urlopen(request) as response:
    result = json.load(response)
print(json.dumps(result, indent=2))
```

#### JavaScript

```javascript
const response = await fetch("https://scenepond-api-production.up.railway.app/v1/responses", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.SCENEPOND_API_KEY}`,
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
  "model": "deepseek-flash",
  "input": "Hello"
})
});
if (!response.ok) throw new Error(`API error: ${response.status} ${await response.text()}`);
const result = await response.json();
console.log(result);
```

### 请求参数

- `model` — **必填**; `string`. 使用此处公布的完整模型 ID。
  - 约束: `deepseek-flash`

- `input` — **必填**; `string | object[]`. 发送文本或完整输入项历史；网关要求提供 input。

### input 中的字段

仅在提供 input 时适用；子字段必填不代表可选的父字段也必填。

- `input[].type` — **条件必填**; `string`. 输入项类型；提供 role 时可省略 message 类型。
  - 约束: `message`; `function_call`; `function_call_output`; `reasoning`; `custom_tool_call`; `custom_tool_call_output`

- `input[].role` — **条件必填**; `string`. 消息作者；DeepSeek 将 developer 视为 user。
  - message 输入项必须提供。
  - 约束: `system`; `developer`; `user`; `assistant`

- `input[].content` — **条件必填**; `string | object[]`. 消息或推理项的文本，或带类型的内容项。

### input[].content 中的字段

仅在提供 input[].content 时适用；子字段必填不代表可选的父字段也必填。

- `input[].content[].type` — **必填**; `string`. 内容项类型。
  - 约束: `input_text`; `output_text`; `reasoning_text`; `input_image`

- `input[].content[].text` — **条件必填**; `string`. 文本或推理内容项的文本。

- `input[].content[].image_url` — **条件必填**; `string`. input_image 内容项使用 HTTPS 图片 URL 或 base64 图片 data URL。
  - input_image 内容项未提供 file_id 时必须提供。

- `input[].content[].detail` — **可选**; `string`. 图片处理精度。
  - 约束: `low`; `high`; `original`; `auto`


- `input[].call_id` — **条件必填**; `string`. 使用相同 call ID，将每次函数或自定义工具调用与结果配对。

- `input[].name` — **条件必填**; `string`. function_call 项的函数名。

- `input[].arguments` — **条件必填**; `string`. function_call 项中以 JSON 编码的参数。

- `input[].output` — **条件必填**; `string | object[]`. function_call_output 或 custom_tool_call_output 项的结果内容。


- `instructions` — **可选**; `string`. 可选的系统指令；此网关仍要求提供 input。

- `reasoning` — **可选**; `object`. 配置思考强度。

### reasoning 中的字段

仅在提供 reasoning 时适用；子字段必填不代表可选的父字段也必填。

- `reasoning.effort` — **可选**; `string`. 选择推理强度；none 会关闭思考。
  - 默认: `high`
  - 约束: `none`; `low`; `high`; `max`


- `max_output_tokens` — **可选**; `integer`. 限制可见输出与推理 token 的总量。
  - 约束: `正整数；仍需符合模型上下文和输出限制`

- `stream` — **可选**; `boolean`. 接收语义化服务器发送事件，而非单次 JSON 响应。
  - 默认: `false`

- `temperature` — **可选**; `number`. 采样随机性；启用思考时会被忽略。
  - 默认: `1`
  - 约束: `0–2`

- `top_p` — **可选**; `number`. 思考模式中的采样阈值；非思考模式会忽略此值。
  - 默认: `1`
  - 约束: `0 < top_p ≤ 1`; `思考模式：小于 0.95 的值按 0.95 处理`

- `text` — **可选**; `object`. 配置文本输出格式。

### text 中的字段

仅在提供 text 时适用；子字段必填不代表可选的父字段也必填。

- `text.format` — **可选**; `object`. 纯文本、JSON 对象或符合 JSON Schema 的输出。

### text.format 中的字段

仅在提供 text.format 时适用；子字段必填不代表可选的父字段也必填。

- `text.format.type` — **可选**; `string`. 输出格式。
  - 默认: `text`
  - 约束: `text`; `json_object`; `json_schema`

- `text.format.name` — **条件必填**; `string`. format.type 为 json_schema 时必须提供。

- `text.format.schema` — **条件必填**; `object`. format.type 为 json_schema 时必须提供的 JSON Schema。



- `tools` — **可选**; `object[]`. 声明函数工具；返回的调用由你的应用执行。

### tools 中的字段

仅在提供 tools 时适用；子字段必填不代表可选的父字段也必填。

- `tools[].type` — **必填**; `string`. 函数工具类型。
  - 约束: `function`

- `tools[].name` — **必填**; `string`. 唯一的函数名。
  - 约束: `1–128 个字符`; `A–Z、a–z、0–9、下划线或连字符`

- `tools[].description` — **可选**; `string`. 说明何时应使用此函数。

- `tools[].parameters` — **可选**; `object`. 函数参数的 JSON Schema；省略表示无参数。


- `tool_choice` — **可选**; `string | object`. 允许、禁用、要求或指定函数调用。
  - 约束: `none`; `auto`; `必填`; `{"type":"function","name":"FUNCTION_NAME"}`

- `top_logprobs` — **可选**; `integer`. 返回候选 token 对数概率的数量。
  - 约束: `0–20`

- `user` — **可选**; `string`. 可选的匿名终端用户标识符；不要包含隐私信息。
  - 约束: `最多 512 个字符`; `A–Z、a–z、0–9、下划线或连字符`

### 响应示例

响应示例仅展示结构；ID、URL 和数值为占位内容。

#### 已完成的 Responses 结果

```json
{
  "id": "response_example",
  "object": "response",
  "created_at": 1790812800,
  "status": "completed",
  "model": "deepseek-flash",
  "output": [
    {
      "id": "message_example",
      "type": "message",
      "role": "assistant",
      "status": "completed",
      "content": [
        {
          "type": "output_text",
          "text": "Hello! How can I help?"
        }
      ]
    }
  ],
  "usage": {
    "input_tokens": 8,
    "output_tokens": 9,
    "total_tokens": 17
  }
}
```

#### Responses 流式文本事件

```json
{
  "type": "response.output_text.delta",
  "sequence_number": 5,
  "item_id": "message_example",
  "output_index": 0,
  "content_index": 0,
  "delta": "Hello"
}
```

### 调用注意事项

- 使用 Scenepond Bearer API 密钥和 Scenepond 基础 URL，无需提供方密钥。
- 原生 DeepSeek Responses 支持普通 JSON 响应和 stream=true，不使用 Fal 后台任务流程。
- DeepSeek Responses 是无状态接口，每次调用需发送完整历史。不要使用 previous_response_id、conversation、后台任务或 GET 响应轮询。
- 即使提供方允许仅发送 instructions，网关仍要求提供 input。
- 流式响应以 response.completed、response.incomplete 或 response.failed 结束，不使用 [DONE] 标记。
- 函数工具使用顶层 name 和 parameters。Chat 的嵌套 function 定义采用另一种格式。
- 提供方还支持名为 apply_patch 的自定义工具；其他自定义名称会被拒绝，内置 web_search、file_search、code_interpreter、computer_use 和 mcp 工具会被忽略。
- reasoning.summary 和 text.verbosity 不生效。parallel_tool_calls 和 max_tool_calls 会被忽略，函数并行调用始终开启。
- 原生 DeepSeek Responses 不支持 store、metadata、include、prompt、truncation、service_tier、safety_identifier、提示缓存控制、context_management 和 stream_options。
- 在普通转发模式下，网关 Chat 和 Responses DTO 仅保留已识别字段。兼容 OpenAI 的字段不一定是 DeepSeek 支持的功能。
- Flash 支持 user 或 developer 消息以及工具结果中的 input_image。请使用 image_url 或内嵌图片数据；system 和 assistant 图片输入会被拒绝。此处尚未确认网关文件上传支持。

## Anthropic Messages

`POST /v1/messages`

### 最小调用

#### cURL

```bash
curl --fail-with-body -X POST "https://scenepond-api-production.up.railway.app/v1/messages" \
  -H "Authorization: Bearer $SCENEPOND_API_KEY" \
  -H "Content-Type: application/json" \
  --data-binary @- <<'JSON'
{
  "model": "deepseek-flash",
  "max_tokens": 1024,
  "messages": [
    {
      "role": "user",
      "content": "Hello"
    }
  ]
}
JSON
```

#### Python

```python
import os
import json
from urllib.parse import quote
from urllib.request import Request, urlopen

payload = json.loads("{\n  \"model\": \"deepseek-flash\",\n  \"max_tokens\": 1024,\n  \"messages\": [\n    {\n      \"role\": \"user\",\n      \"content\": \"Hello\"\n    }\n  ]\n}")

request = Request(
    "https://scenepond-api-production.up.railway.app/v1/messages",
    headers={
        "Authorization": "Bearer " + os.environ["SCENEPOND_API_KEY"],
        "Content-Type": "application/json",
    },
    data=json.dumps(payload).encode("utf-8"),
    method="POST",
)
with urlopen(request) as response:
    result = json.load(response)
print(json.dumps(result, indent=2))
```

#### JavaScript

```javascript
const response = await fetch("https://scenepond-api-production.up.railway.app/v1/messages", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${process.env.SCENEPOND_API_KEY}`,
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
  "model": "deepseek-flash",
  "max_tokens": 1024,
  "messages": [
    {
      "role": "user",
      "content": "Hello"
    }
  ]
})
});
if (!response.ok) throw new Error(`API error: ${response.status} ${await response.text()}`);
const result = await response.json();
console.log(result);
```

### 请求参数

- `model` — **必填**; `string`. 使用此处公布的完整模型 ID。
  - 约束: `deepseek-flash`

- `messages` — **必填**; `object[]`. 按顺序发送对话历史；系统指令请放在 system 中。
  - 约束: `至少一条消息`

### messages 中的字段

仅在提供 messages 时适用；子字段必填不代表可选的父字段也必填。

- `messages[].role` — **必填**; `string`. 消息作者的角色。
  - 约束: `user`; `assistant`

- `messages[].content` — **必填**; `string | object[]`. 消息文本或带类型的内容块。

### messages[].content 中的字段

仅在提供 messages[].content 时适用；子字段必填不代表可选的父字段也必填。

- `messages[].content[].type` — **必填**; `string`. 内容块类型。
  - 约束: `text`; `thinking`; `tool_use`; `tool_result`; `张`

- `messages[].content[].text` — **条件必填**; `string`. text 内容块必须提供。

- `messages[].content[].thinking` — **条件必填**; `string`. 重放 assistant 思考内容块时的推理文本。

- `messages[].content[].id` — **条件必填**; `string`. tool_use 内容块必须提供。

- `messages[].content[].name` — **条件必填**; `string`. tool_use 内容块引用的已声明函数名。
  - tool_use 内容块必须提供。

- `messages[].content[].input` — **条件必填**; `object`. tool_use 内容块的函数参数。
  - tool_use 内容块必须提供。

- `messages[].content[].tool_use_id` — **条件必填**; `string`. tool_result 内容块必须提供，并与原始工具调用 ID 一致。

- `messages[].content[].content` — **可选**; `string | object[]`. 工具结果文本或支持的内容块。

- `messages[].content[].source` — **条件必填**; `object`. 图片内容块的图片来源。

### messages[].content[].source 中的字段

仅在提供 messages[].content[].source 时适用；子字段必填不代表可选的父字段也必填。

- `messages[].content[].source.type` — **必填**; `string`. 使用 URL 或内嵌 base64 图片。
  - 约束: `url`; `base64`

- `messages[].content[].source.url` — **条件必填**; `string`. URL 图片来源必须提供。

- `messages[].content[].source.media_type` — **条件必填**; `string`. base64 图片来源必须提供。
  - 约束: `image/jpeg`; `image/png`; `image/gif`; `image/webp`

- `messages[].content[].source.data` — **条件必填**; `string`. base64 图片来源必须提供的 base64 数据。




- `max_tokens` — **可选**; `integer`. SDK 要求输出上限。省略或设为零时，网关会使用配置的默认值；建议显式设置正数。
  - 约束: `正整数；仍需符合模型上下文和输出限制`

- `system` — **可选**; `string | object[]`. 系统指令文本或文本内容块。

### system 中的字段

仅在提供 system 时适用；子字段必填不代表可选的父字段也必填。

- `system[].type` — **必填**; `string`. 系统内容块类型。
  - 约束: `text`

- `system[].text` — **必填**; `string`. 系统指令。


- `stop_sequences` — **可选**; `string[]`. 遇到指定序列时停止生成。

- `stream` — **可选**; `boolean`. 接收 Anthropic 格式的服务器发送事件。
  - 默认: `false`

- `temperature` — **可选**; `number`. 采样随机性；启用思考时会被忽略。
  - 默认: `1`
  - 约束: `0–2`

- `top_p` — **可选**; `number`. 思考模式中的采样阈值；非思考模式会忽略此值。
  - 默认: `1`
  - 约束: `0 < top_p ≤ 1`; `思考模式：小于 0.95 的值按 0.95 处理`

- `thinking` — **可选**; `object`. 开启或关闭思考模式。

### thinking 中的字段

仅在提供 thinking 时适用；子字段必填不代表可选的父字段也必填。

- `thinking.type` — **可选**; `string`. 思考模式开关。
  - 默认: `enabled`
  - 约束: `enabled`; `已禁用`


- `output_config` — **可选**; `object`. output_config 仅支持推理强度。

### output_config 中的字段

仅在提供 output_config 时适用；子字段必填不代表可选的父字段也必填。

- `output_config.effort` — **可选**; `string`. 思考强度。
  - 默认: `high`
  - 约束: `low`; `high`; `max`


- `tools` — **可选**; `object[]`. 声明由客户端执行的函数工具。

### tools 中的字段

仅在提供 tools 时适用；子字段必填不代表可选的父字段也必填。

- `tools[].name` — **必填**; `string`. 唯一的函数名。

- `tools[].description` — **可选**; `string`. 说明何时应使用此函数。

- `tools[].input_schema` — **必填**; `object`. 工具输入的 JSON Schema。


- `tool_choice` — **可选**; `object`. 按 Anthropic 格式配置工具选择。

### tool_choice 中的字段

仅在提供 tool_choice 时适用；子字段必填不代表可选的父字段也必填。

- `tool_choice.type` — **必填**; `string`. 工具选择模式。
  - 约束: `none`; `auto`; `any`; `tool`

- `tool_choice.name` — **条件必填**; `string`. tool_choice.type 为 tool 时必须提供。


- `metadata` — **可选**; `object`. 仅支持不含真实身份信息的 user_id 字段。

### metadata 中的字段

仅在提供 metadata 时适用；子字段必填不代表可选的父字段也必填。

- `metadata.user_id` — **可选**; `string`. 可选的匿名终端用户标识符；不要包含隐私信息。
  - 约束: `最多 512 个字符`; `A–Z、a–z、0–9、下划线或连字符`


### 响应示例

响应示例仅展示结构；ID、URL 和数值为占位内容。

#### 已完成的 Anthropic 兼容消息

```json
{
  "id": "message_example",
  "type": "message",
  "role": "assistant",
  "model": "deepseek-flash",
  "content": [
    {
      "type": "text",
      "text": "Hello! How can I help?"
    }
  ],
  "stop_reason": "end_turn",
  "stop_sequence": null,
  "usage": {
    "input_tokens": 8,
    "output_tokens": 9
  }
}
```

#### Anthropic 流式文本事件

```json
{
  "type": "content_block_delta",
  "index": 0,
  "delta": {
    "type": "text_delta",
    "text": "Hello"
  }
}
```

### 调用注意事项

- 使用 Scenepond /v1/messages 端点和 Scenepond Bearer API 密钥，无需提供方凭据或 URL。
- 网关校验 model 和非空 messages。原生 DeepSeek 适配器会在省略或设为零时补入 max_tokens；SDK 通常要求该值，因此示例显式提供。
- 此处通过 Anthropic 兼容协议调用 DeepSeek，不能据此假定支持 Claude 的专属能力。
- 原生 DeepSeek 兼容接口中的 thinking.budget_tokens、top_k、container、mcp_servers、service_tier、cache_control 和 tool_choice.disable_parallel_tool_use 不生效。
- 这些对象仅支持 output_config.effort 和 metadata.user_id，其他成员会被忽略。
- 不支持 document、redacted_thinking、code_execution_tool_result、mcp_tool_use、mcp_tool_result 和 container_upload 内容块。不能据此模型端点推断 Files API 支持。
- 执行请求的函数后，返回 tool_use_id 对应的 tool_result 内容块。请在应用中校验工具输入。
- Anthropic 流式响应使用命名事件，并以 message_stop 结束，无需轮询 Fal 任务。
- Flash 图片内容块支持 URL 或 base64 数据，格式为 JPEG、PNG、GIF 或 WebP。图片应放在 user 消息中；此处尚未确认文件上传接入。

## 资料来源

- [DeepSeek Chat Completions API](https://api-docs.deepseek.com/api/create-chat-completion/)
- [DeepSeek Responses API](https://api-docs.deepseek.com/api/create-response/)
- [DeepSeek 思考模式](https://api-docs.deepseek.com/guides/thinking_mode/)
- [DeepSeek Responses 兼容说明](https://api-docs.deepseek.com/guides/responses_api/)
- [DeepSeek Anthropic 兼容说明](https://api-docs.deepseek.com/guides/anthropic_api/)
- [DeepSeek 视觉输入](https://api-docs.deepseek.com/guides/vision/)
