This guide uses source checks from Sep 12, 2026. Provider and gateway prices can change; preserve the checked date with every forecast.
Why This Topic Matters Now
Streaming queries are a different kind of evaluator intent. A developer who searches for `chat completion stream` or `responses api streaming` is usually past the headline stage. They need to know whether a client can connect, whether events arrive in order, whether the final response is complete, and whether the billing evidence is still available after streaming.
For AIWave, the right article is a receipt runbook. It should show an OpenAI-compatible Chat Completions stream, use only placeholder credentials, record pricing_version, capture route and timing fields, and keep live prices source-dated. Streaming improves user experience only when the team can debug and audit it afterward.
Source Facts Checked Today
AIWave /api/pricing checked on Sep 12, 2026 returned success=true, 64 model rows, pricing_version a42d372ccf0b5dd13ecf71203521f9d2, auto_groups=['default'], group_ratio default=3 and vip=1, and public rows enabled for default, vip, and svip groups. Computed base examples per 1M text-token units were DeepSeek V4 Flash at $0.638 input, $0.020288 cache-hit input, and $1.914 output; DeepSeek V4 Pro at $1.914 input, $0.063736 cache-hit input, and $5.742 output; DeepSeek V3.2 at $0.154 input and $0.308 output; GLM-5.1 at $2.10 input, $0.680001 cache-hit input, and $6.60 output; GLM-5 at $1.55 input, $0.400001 cache-hit input, and $4.96 output; Kimi K3 at $4.50 input, $0.90 cache-hit input, and $22.50 output; and Kimi K2.7 Code at $1.89 input, $0.285001 cache-hit input, and $6.00 output. Actual invoices still depend on account group, final route, request usage, and the receipt captured for that run.
The Sep 11 keyword report lists `chat completion stream` from the United Kingdom and `responses api streaming` in the 30-day top-query table. Volume is small, but the intent is developer-specific and fits a docs-to-blog internal-link cleanup.
AIWave public docs and pricing endpoints are the public evidence layer for this article. Official provider docs are linked for source context, while the example keeps the AIWave base URL and route receipt fields explicit.
Planning Matrix
A source-dated planning matrix keeps the page useful for engineers and procurement reviewers. It turns a search query into an auditable route decision instead of a loose model preference.
| Stream field | Why it matters | Acceptance rule |
|---|---|---|
| model | Route identity drives review | Matches approved route list |
| pricing_version | Rows can change | a42d372ccf0b5dd13ecf71203521f9d2 |
| first_event_ms | User experience signal | Captured with timestamp |
| finish_reason | Completeness check | Present before acceptance |
| error_class | Debug path | 401, 403, 429, timeout, upstream separated |
| usage | Billing evidence | Stored when available |
| status_checked_at | Current probe context | Stored without broad uptime claim |
Implementation Pattern
The implementation pattern keeps credentials as placeholders, pins the AIWave base URL, records the model, and leaves room for route-specific controls. Production applications should move credentials into environment or secret storage.
from openai import OpenAI
from time import monotonic
client = OpenAI(api_key="YOUR_API_KEY_HERE", base_url="https://aiwave.live/v1")
def stream_trial(prompt: str):
started = monotonic()
first_event_ms = None
text = []
stream = client.chat.completions.create(
model="deepseek-v4-flash",
messages=[{"role": "user", "content": prompt}],
temperature=0.1,
max_tokens=500,
stream=True,
)
for event in stream:
if first_event_ms is None:
first_event_ms = round((monotonic() - started) * 1000)
delta = event.choices[0].delta.content or ""
text.append(delta)
return {
"api_key": "YOUR_API_KEY_HERE",
"model": "deepseek-v4-flash",
"pricing_checked_at": "2026-09-12",
"pricing_version": "a42d372ccf0b5dd13ecf71203521f9d2",
"first_event_ms": first_event_ms,
"text": "".join(text),
}
Begin With a Redacted Prompt
A streaming trial should not start with customer data. Use a small redacted support ticket, incident summary, or coding task. Store the prompt class, model, output cap, timestamp, and expected response shape before the call. That makes the result comparable across DeepSeek, GLM, Kimi, or Qwen routes later.
Record Event Timing
The first streamed event is useful evidence, but it is not a public latency benchmark. Capture first_event_ms, final_event_ms, event_count, finish_reason, and request timestamp for the internal receipt. If the trial is run from a developer laptop, note the network and region. If it is run from CI, note the runner. Context makes the timing useful without turning it into an unsupported claim.
Preserve Completion Evidence
A stream can look successful while the final answer is truncated or missing a finish reason. The receipt should store the assembled output length, final finish state, and whether the application received all expected chunks. For UI trials, also store whether the user can cancel, retry, and copy the final answer without losing the route evidence.
Separate Error Classes
Streaming failures need the same taxonomy as normal requests: authentication, insufficient balance, rate limit, timeout, upstream error, malformed request, and user cancellation. Do not route every stream interruption into one retry loop. A 401 needs credential handling. A 429 needs backoff or capacity planning. A cancellation should not be counted as model failure.
Attach Pricing Version
Streaming does not remove the need for billing evidence. The trial should attach pricing_version, checked date, model, account group, output cap, and usage when available. If usage is only available in a final event or separate receipt, the client should wait for that evidence before marking the trial accepted. A streamed answer without usage evidence is incomplete for procurement.
Internal Links for Streaming Searchers
This article should link to Chat Completions, Models docs, Pricing, Pricing JSON, Status, and the earlier streaming receipt guide. The new page focuses on stream event receipts for the current keyword cluster.
Procurement Review
Procurement should ask for route name, source date, pricing_version, status timestamp, output cap, usage availability, error taxonomy, and a redacted event log. Engineering should provide the code path that assembles chunks and the code path that records final usage. Without both paths, the team has a demo rather than an auditable streaming trial.
Final Checklist
A streaming trial is ready when the prompt is redacted, route identity is explicit, first and final event fields are captured, completion state is checked, error classes are separated, pricing_version is attached, and usage evidence is preserved. Recheck live pricing before rollout and keep timing claims internal unless a controlled benchmark exists.