批次內容生產
批次寫商品描述和營銷文案,用一個便宜的對話模型寫初稿,再從中抽一部分交給更強的模型檢查和潤色。按每月 2 萬條商品描述、抽檢 10% 估算,用最低價分組計算,模型費用每月約 ¥152。併發數、排隊和失敗重試都由你的程式控制。
價格更新於 2026年11月13日 下午5:48
月成本估算
假設:每月生成 2 萬條商品描述,每條輸入約 800 tokens(商品屬性、品牌語氣和一個示例),輸出約 400 tokens;抽 10%(2,000 條)交給更強的模型複核,每條輸入約 1,200 tokens,輸出約 300 tokens。
業務問題
電商上新、內容運營、廣告投放都要大量文字:每個 SKU 一段描述,每個渠道一套標題,每次活動幾十條文案。人工寫跟不上節奏,外包的質量又時好時壞。
讓模型寫一條並不難,難在穩定地寫幾萬條:任務要排隊併發,遇到限流和網路錯誤要重試,語氣要統一,還不能出現商品沒有的賣點。
常見做法是先把商品屬性整理成結構化資料,按固定模板生成初稿,再抽一部分交給更強的模型或人工複核,問題集中的批次整體重跑。
推薦模型組合
推薦模型按即時目錄自動選取,價格取各模型最低價分組,更新於 2026年11月13日 下午5:48。點模型名可檢視全部分組價格。
寫初稿(對話模型)
deepseek-v4.1-flashDeepSeek
輸入 ¥2.8 / 輸出 ¥11.2 每百萬 tokens國產模型分組
承擔絕大部分呼叫量,選輸出單價低、中文表達自然的模型。初稿只按給定屬性寫,不需要模型自己發揮賣點。
抽檢與潤色(更強的模型)
Claude Sonnet 5.5Anthropic
輸入 ¥3.2 / 輸出 ¥16 每百萬 tokensClaude 經濟分組
抽一部分初稿檢查內容是否和商品屬性一致、語氣是否統一,必要時直接改寫。只處理抽檢部分,單價高一些也能接受。
參考架構
- 1
整理輸入
把商品屬性(名稱、材質、規格、適用場景)和品牌語氣說明整理成結構化資料,敏感詞和停用說法單獨列成清單。
- 2
排隊併發
任務進入佇列,用固定併發數(比如 8 到 16)呼叫對話模型;429 和 5xx 按指數退避重試,400 類錯誤記錄下來修正輸入,不要重試。
- 3
生成初稿
系統提示詞固定,每個商品的屬性放進使用者訊息;限制輸出長度,按段落或 JSON 返回,方便直接入庫。
- 4
自動檢查
用程式檢查字數、停用詞,以及有沒有出現屬性裡沒有的數字或認證,不合格的打回重寫。
- 5
抽檢潤色
抽 10% 左右交給更強的模型複核和潤色,問題集中的批次整體重跑;上線前運營再人工過一遍。
成本估算
假設:每月生成 2 萬條商品描述,每條輸入約 800 tokens(商品屬性、品牌語氣和一個示例),輸出約 400 tokens;抽 10%(2,000 條)交給更強的模型複核,每條輸入約 1,200 tokens,輸出約 300 tokens。
| 專案 | 模型 | 用量假設 | 費用 |
|---|---|---|---|
| 生成初稿 | deepseek-v4.1-flash | 20,000 次 × 輸入 800 + 輸出 400 tokens | ¥134.4 |
| 抽檢潤色 | Claude Sonnet 5.5 | 2,000 次 × 輸入 1,200 + 輸出 300 tokens | ¥17.28 |
| 合計(每月) | ¥151.68 | ||
按各模型最低價分組的即時價格計算,價格更新於 2026年11月13日 下午5:48。
只含模型呼叫費用。失敗重試會產生額外呼叫,失敗率高時費用相應增加。條數翻倍,費用大致翻倍;描述寫得越長,輸出費用越高。
示例程式碼
用訊號量限制同時進行的請求數,429、5xx 和網路錯誤按指數退避重試,其他 4xx 直接記錄,結果寫成 JSONL 方便入庫。
import asyncio
import json
import os
import random
from openai import APIConnectionError, APIStatusError, AsyncOpenAI
client = AsyncOpenAI(base_url="https://www.tutujin.com/v1", api_key=os.environ["TUTUJIN_API_KEY"], max_retries=0)
LIMIT = asyncio.Semaphore(8) # requests in flight at the same time
PROMPT = (
"Write a product description for an online store in a friendly, concrete tone. "
"Use only the facts provided. Do not add awards, certifications or numbers that are not listed. "
"Return 3 short paragraphs."
)
async def write(product, attempts=4):
async with LIMIT:
for i in range(attempts):
try:
resp = await client.chat.completions.create(
model="deepseek-v4.1-flash",
messages=[
{"role": "system", "content": PROMPT},
{"role": "user", "content": json.dumps(product, ensure_ascii=False)},
],
max_tokens=600,
temperature=0.8,
)
return {"sku": product["sku"], "text": resp.choices[0].message.content}
except APIConnectionError:
pass # network problem or timeout: retry
except APIStatusError as e:
if e.status_code != 429 and e.status_code < 500:
# 4xx means the request itself is wrong (or no balance): fix it, do not retry
return {"sku": product["sku"], "error": e.status_code}
await asyncio.sleep(2 ** i + random.random()) # back off: ~1s, 2s, 4s, 8s
return {"sku": product["sku"], "error": "gave up after retries"}
async def main(products):
results = await asyncio.gather(*(write(p) for p in products))
with open("descriptions.jsonl", "w", encoding="utf-8") as f:
for r in results:
f.write(json.dumps(r, ensure_ascii=False) + "\n")
products = [
{"sku": "A1001", "name": "Ceramic mug", "material": "stoneware", "capacity_ml": 350, "dishwasher_safe": True},
]
asyncio.run(main(products))
# then send about 10% of the results to claude-sonnet-5-5 for a fact and tone check常見問題
每月 2 萬條商品描述大概多少錢?
按每條輸入約 800 tokens、輸出約 400 tokens,再抽 10% 交給更強的模型複核估算,用最低價分組計算約 ¥152。輸出越長費用越高,可以在提示詞裡限定字數。
有專門的批次介面嗎?
沒有單獨的批次介面。批次任務就是併發呼叫普通的 Chat Completions 介面,按實際用量計費,併發數、排隊和重試由你的程式控制。
併發開多少合適?
先從 4 到 8 個併發開始,看 429 出現的比例再慢慢調高。收到 429 時等一會兒再重試,不要立刻重發。不同模型和分組能承受的併發不同,可以參考文件裡的限流說明。
怎麼防止模型編造賣點?
只把商品已有的屬性給模型,提示詞裡寫明不得新增屬性以外的功效、認證和資料;輸出後再用程式檢查其中的數字和關鍵詞,確認都能在屬性裡找到。
生成的文案能直接上線嗎?
建議先抽檢。商品描述和廣告文案有廣告法等合規要求,模型並不瞭解你們的具體規定,上線前應由運營或法務按規則複核。
