使用指南
通过 hiapi API 使用 DeepSeek V4.1 Flash 处理电商产品图片
它不会生成图片——但会围绕你的产品 Listing 撰写其他所有内容。
DeepSeek V4.1 Flash 不生成产品图——以下说明它在电商技术栈中真正擅长什么
如果你是因为“产品图片”这个词点进来的,DeepSeek V4.1 Flash 并不能生成它们——它是一个纯文本模型,完全没有图像、音频或视频输出。但电商目录所依赖的文字比图片多得多:每个 Listing 需要描述,每张图片需要替代文本,每个客户问题需要答案,每个广告渠道需要同一卖点的不同版本。这正是该模型所擅长的层面,而且它恰好在这个任务上异常便宜且灵活——它同时支持 /v1/chat/completions 和 /v1/responses,所以你无需围绕单一请求格式重建集成。本指南涵盖产品图片工作流中的文本部分:使用结构化输出的批量描述生成、客户支持问答,以及多渠道文案变体——并附有基于 hiapi API 的真实请求示例。如果你需要图片本身,可以将它与 GPT Image 2 这样的图像模型配合使用,让 DeepSeek V4.1 Flash 处理围绕图片的所有文字内容。
为什么双 API 接口很重要
hiapi 上的大多数推理级模型只选择一条路径——Chat Completions 或 Responses——并一直使用。DeepSeek V4.1 Flash 原生支持 POST /v1/chat/completions 和 POST /v1/responses,这意味着你可以将它接入已有的集成,而不必专门为这个模型构建新的客户端。以下几点在两个端点上都适用:
reasoning_effort有五个实际级别。 定价页面文案只提到了none、high和max,但模型在实际请求中也接受low和medium——五个级别都有效。对于 Listing 文案这类简短、确定性的任务,none或low就足够了;将high/max留给需要判断的场景,例如政策敏感的客服回复。- 结构化输出在不同端点上的行为不同。 对于这个模型,在
/v1/chat/completions上使用response_format: {"type": "json_schema", ...}不会返回经过 schema 验证的结果——请改用response_format: {"type": "json_object"},并在提示词中描述结构。如果你需要强制 schema 验证,请将相同的请求发送到/v1/responses,并设置text.format.type=json_schema,它会遵守该设置。 - 函数调用和流式传输均按预期工作,在
/v1/chat/completions上——tools、tool_choice和stream: true的行为与 hiapi 上任何其他 OpenAI 兼容聊天模型相同,因此现有的工具调用代码无需调整。
Base URL 为 https://api.hiapi.ai/v1,与你其他 hiapi 模型使用相同的密钥。两个端点的完整请求/响应格式见模型页面。
用例 1:使用结构化输出批量生成产品描述
最直接的匹配是将规格表大规模转化为符合品牌调性的 Listing 文案,并以你的 CMS 可以直接导入、无需后处理的格式输出。在 Chat Completions 上,json_object 模式加上提示词中的明确 schema 可以可靠地实现这一点:
import json
import requests
resp = requests.post(
"https://api.hiapi.ai/v1/chat/completions",
headers={
"Authorization": f"Bearer {HIAPI_KEY}",
"Content-Type": "application/json",
},
json={
"model": "deepseek-v4.1-flash",
"reasoning_effort": "none",
"response_format": {"type": "json_object"},
"messages": [
{
"role": "system",
"content": (
"You write concise, factual e-commerce listing copy. "
"Never invent specs that aren't in the input. "
"Respond with JSON matching this shape: "
'{"title": str, "short_description": str, '
'"long_description": str, "bullet_points": [str]}'
),
},
{
"role": "user",
"content": (
"Product: ceramic pour-over coffee dripper, 400ml, "
"matte white, dishwasher safe, fits standard filters. "
"Write listing copy for this product."
),
},
],
},
)
listing = json.loads(resp.json()["choices"][0]["message"]["content"])
针对产品数据库中的每个 SKU 运行此操作,你就能获得一致的文案,而无需从聊天窗口中手动编辑文本。如果你希望响应在格式错误时明确报错,而不是依赖模型对提示词的遵守,请将等效请求发送到 /v1/responses 并设置 text.format.type=json_schema——该路径会在返回前根据你的 schema 验证输出。
用例 2:基于自有文档的客户支持问答
对于支持助手,两个端点都要求你重放正在进行的对话——两者默认都不在调用之间保留状态,因此对话历史由你的应用管理,而不是供应商。如果你需要从自己的数据库中对对话进行脱敏、分支或恢复,而不是信任供应商的会话存储,这一点很有用。
history = [
{"role": "system", "content": "Answer only from the provided product FAQ context. "
"If the answer isn't in context, say so and offer to escalate."},
]
def ask(user_message: str, faq_context: str) -> str:
history.append({"role": "user", "content": f"Context:\n{faq_context}\n\nQuestion: {user_message}"})
resp = requests.post(
"https://api.hiapi.ai/v1/chat/completions",
headers={"Authorization": f"Bearer {HIAPI_KEY}", "Content-Type": "application/json"},
json={
"model": "deepseek-v4.1-flash",
"reasoning_effort": "low",
"messages": history,
},
)
answer = resp.json()["choices"][0]["message"]["content"]
history.append({"role": "assistant", "content": answer})
return answer
对于任何需要检查订单状态或触发退货的操作,请在 tools 中将其声明为函数——模型会返回一个 tool_calls 条目,你的后端执行它,然后你追加一条包含结果的 role: "tool" 消息,再再次调用。这样模型就永远不会直接接触你的订单数据库,而且它的工作方式与 hiapi 上任何其他 OpenAI 兼容聊天模型相同。
用例 3:针对不同渠道的营销文案变体
同一组产品事实在产品页面、电子邮件主题行和 30 字符的广告标题中需要不同的措辞。在 /v1/chat/completions 上使用 stream: true,你可以在一次请求中生成多个渠道变体,并在它们到达时渲染,而不是等待完整响应——如果这要馈送到内部工具中的实时预览,这会很有用。这里也将 reasoning_effort 保持在 none 或 low;匹配短文案的语气不需要更重的推理,而且当营销人员实时迭代时,这可以保持低延迟。
费用是多少
DeepSeek V4.1 Flash 按 token 统一计费,没有需要预先规划的阶梯悬崖:
| 输入 | 输出 | 缓存输入 |
|---|---|---|
| $0.44 / 1M tokens | $1.32 / 1M tokens | $0.014 / 1M tokens |
对于上述用例——单个产品描述、一轮支持对话、一批渠道变体——每次调用的花费仅为几分钱的零头。缓存输入费率值得有意识地使用:如果你的系统提示词很长且在数千次 SKU 调用中重复,保持它在请求之间逐字节相同,才能使其符合缓存费率条件。费率基于使用量并可能变化——在承诺进行大批量任务之前,请查看 hiapi.ai/pricing。
这与你技术栈其余部分的关系
这些都不能替代实际的图像模型——DeepSeek V4.1 Flash 没有 /v1/tasks 访问权限,也无法产生视觉输出。如果你的工作流需要与这些文案配套的产品摄影或生活场景照片,那是对 GPT Image 2 等图像模型的单独调用,两者不共享请求格式或端点。如果你已经读过 GPT-6 Astra 电商指南,这个问题的形态完全相同——区别在于 DeepSeek V4.1 Flash 为你提供了端点选择和平坦的成本曲线,而不是分层的成本曲线。
FAQ
DeepSeek V4.1 Flash 能生成产品图片吗?
不能。它是一个纯文本模型,没有图像、音频或视频输出,可通过 /v1/chat/completions 或 /v1/responses 访问。请将它与图像模型配合,以处理产品 Listing 的视觉部分。
对于这个模型,我应该使用 Chat Completions 还是 Responses?
两者都可以——选择与你现有集成匹配的那个。唯一有影响的情况是强制结构化输出:json_schema 验证在 /v1/responses 上有效,但在 /v1/chat/completions 上无效,在后者上应改用 json_object 模式。
reasoning_effort 有什么作用,我应该使用哪个级别?
它控制模型在回答前进行多少内部推理,以延迟和成本换取判断质量。所有五个级别(none、low、medium、high、max)在实际请求中都有效,尽管定价页面只列出了三个。对于描述生成这类简短、确定性的任务,使用 none 或 low;将 high 或 max 留给涉及判断的支持回复。
流式传输能与工具调用同时使用吗?
可以——stream: true 和 tools 在 /v1/chat/completions 上都可独立工作,并且可以在同一个请求中组合使用,与 hiapi 上任何其他 OpenAI 兼容聊天模型相同。
我需要在每轮支持对话中重放完整对话吗? 是的,在两个端点上都需要。两者默认都不在调用之间保留对话状态,因此你的应用每次都需要重新发送所需的历史记录。这会增加重放输入 token 的成本,但这意味着你可以控制包含哪些上下文,并可以从自己的数据库中对对话进行脱敏或分支。
缓存输入费率是自动的吗?
只有当请求的前导部分(通常是系统提示词)在调用之间逐字节相同时,才会自动应用。请检查响应中的 usage 对象中的 cached_tokens,而不是假设已应用折扣。