HiAPI
博客

教程

如何通过 hiapi API 使用 DeepSeek V4 Flash:curl、Python 及可运行的请求示例

2026年11月3日
如何通过 hiapi API 使用 DeepSeek V4 Flash:curl、Python 及可运行的请求示例

DeepSeek V4 Flash 是一个推理聊天模型,在 hiapi 上它的接入方式与平台上大多数模型不同:它不使用图像和视频生成所用的异步 POST /v1/tasks 队列,而是一个兼容 OpenAI 的聊天补全端点——POST /v1/chat/completions,支持同步或流式,无需轮询。本教程将带你用 curl 和 Python 发出一个可运行的请求,然后介绍两个在生产环境中确实容易踩坑的问题。

你将构建什么

一个最小脚本,通过 hiapi 向 deepseek-v4-flash 发送提示词并打印模型的回答——以及当这个脚本变成真实集成后你需要的模式:处理模型的推理 token 预算、流式传输、重试,以及文档中说明的错误结构。

前提条件:一个 hiapi API 密钥。从 hiapi 仪表盘获取——下方每个请求都通过 Authorization: Bearer sk-<your-key> 进行认证。

最小可运行示例

curl

curl https://api.hiapi.ai/v1/chat/completions \
  -H "Authorization: Bearer $HIAPI_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "deepseek-v4-flash",
    "messages": [{"role": "user", "content": "Explain what a hash table is in two sentences."}],
    "max_tokens": 500
  }'

调用成功后返回标准的聊天补全对象:

{
  "id": "gen-...",
  "object": "chat.completion",
  "model": "deepseek/deepseek-v4-flash",
  "provider": "DeepInfra",
  "choices": [{
    "index": 0,
    "finish_reason": "stop",
    "message": {"role": "assistant", "content": "A hash table is ...", "reasoning": "..."}
  }],
  "usage": {
    "prompt_tokens": 14, "completion_tokens": 187, "total_tokens": 201,
    "completion_tokens_details": {"reasoning_tokens": 96}
  }
}

有两点需要注意:请求时使用裸模型 ID deepseek-v4-flash——hiapi 会在内部将其解析到上游提供商,而响应中的 model 字段会回显一个带提供商限定的 ID(deepseek/deepseek-v4-flash),你应将其视为参考信息,而不是作为请求参数发回去。另外,消息中除 content 外还带有 reasoning 字段——这是一个推理模型,usage.completion_tokens_details.reasoning_tokens 会告诉你 completion_tokens 花费中有多少用于该思维链,多少用于可见回答。

Python

import os
import requests

resp = requests.post(
    "https://api.hiapi.ai/v1/chat/completions",
    headers={"Authorization": f"Bearer {os.environ['HIAPI_KEY']}"},
    json={
        "model": "deepseek-v4-flash",
        "messages": [{"role": "user", "content": "Explain what a hash table is in two sentences."}],
        "max_tokens": 500,
    },
    timeout=60,
)
resp.raise_for_status()
data = resp.json()
print(data["choices"][0]["message"]["content"])

由于该端点兼容 OpenAI,这段代码也可以不改动地配合官方 openai Python SDK 使用——只需将 base_url 指向 https://api.hiapi.ai/v1,并将 hiapi 密钥作为 api_key 传入。

生产环境使用模式

推理预算的坑:不要将 max_tokens 设得太低

max_tokens 限制的是推理加回答的合计开销,而不仅仅是可见回答。如果模型在达到上限时仍在推理,你会得到 finish_reason: "length" 且 content: null 的响应——消耗并计费了 token,却没有任何可展示的内容。对于任何非简单提示词,请给请求留出真正的余量(至少几百个 token),而不是把 max_tokens 削减到你认为回答所需的量。

为简单、确定性的任务关闭推理

如果任务不需要思维链——分类、简短查询、格式转换——你可以完全抑制推理:

{
  "model": "deepseek-v4-flash",
  "messages": [{"role": "user", "content": "Say OK and nothing else."}],
  "max_tokens": 50,
  "reasoning": {"enabled": false}
}

使用 reasoning.enabled: false 后,响应中的 message.reasoning 返回 null,completion_tokens_details.reasoning_tokens 为 0——你只为可见输出付费,延迟也相应降低。仅对额外思考确实能改善回答的任务保留默认(开启推理)行为。

流式传输

设置 "stream": true 即可获得标准 OpenAI 风格的服务器发送事件,而无需等待完整响应:

curl https://api.hiapi.ai/v1/chat/completions \
  -H "Authorization: Bearer $HIAPI_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"deepseek-v4-flash","messages":[{"role":"user","content":"Count to 5."}],"stream":true}'

每个数据块都是一行 data: {...},携带增量的 choices[0].delta.content;最后一个数据块包含 usage,流以字面量 data: [DONE] 行结束。请在数据块到达时即时解析,而不是在客户端缓冲整个响应——这正是聊天 UI 使用流式传输的意义所在。

幂等性与重试

这里的聊天补全是无状态 HTTP 调用,不是排队任务——没有任务 ID 可供轮询,也不会意外地将内容重复提交到队列。重试关注的是普通 HTTP 问题:在传输错误或 5xx 时,使用退避策略重试;在 429 时,重试前遵守 Retry-After 响应头(参见速率限制文档)。对于表示错误请求的 4xx 错误(如格式错误的 messages)不要重试——而应修正请求体。

错误处理

无效或缺失的密钥会返回 HTTP 401:

{
  "error": {
    "code": "permission_denied",
    "message": "...",
    "request_id": "...",
    "type": "hiapi_error"
  }
}

在错误处理器中检查 error.code,而不是对消息字符串做模式匹配——permission_denied 才是稳定的标识符。如果你使用自认为有效的密钥却收到此错误,请参阅认证文档。

相关阅读

FAQ

我需要像使用 hiapi 的图像/视频模型那样轮询结果吗? 不需要。hiapi 上的图像和视频生成走异步 /v1/tasks 队列(创建 → 轮询或回调 → 下载 output[0].url)。像 deepseek-v4-flash 这样的聊天模型只是对 /v1/chat/completions 的普通同步(或流式)HTTP 调用——你会在响应中直接得到答案。

为什么 usage.completion_tokens 比可见回答看起来应花费的更高? 因为它包含推理 token。检查 usage.completion_tokens_details.reasoning_tokens 查看拆分,并在不需要模型展示思考过程时使用 "reasoning": {"enabled": false}。

我的响应带有 "finish_reason": "length" 且 content 为空——发生了什么? 模型在仍处于推理阶段时耗尽了 max_tokens,从未写出可见回答。请提高 max_tokens,或为更简单的提示词禁用推理。

我可以使用官方 OpenAI SDK 代替原始 HTTP 调用吗? 可以——将 SDK 的 base_url 设为 https://api.hiapi.ai/v1,api_key 设为你的 hiapi 密钥;请求/响应结构一致。

我在哪里可以找到该模型的当前定价? 在模型页面或实时定价页面——每 token 成本可能因上游提供商路由而略有差异,因此请在那里查看,而不要依赖本文中的数字。

立即开始构建持久 AI 产物

获取 API 密钥,通过一个基于任务(task)的 API 调用图像、视频和音频模型。

阅读 API 文档