curl -N https://api.yelu.ai/v1/chat/completions \
-H "Authorization: Bearer $YELU_API_KEY" \
-H "Content-Type: application/json" \
-d '{"model":"gpt-4o-mini","messages":[{"role":"user","content":"列出三个 API 设计原则。"}],"stream":true}'
const response = await fetch('https://api.yelu.ai/v1/chat/completions', {
method: 'POST',
headers: { Authorization: `Bearer ${process.env.YELU_API_KEY}`, 'Content-Type': 'application/json' },
body: JSON.stringify({ model: 'gpt-4o-mini', messages: [{ role: 'user', content: '列出三个 API 设计原则。' }], stream: true }),
});
if (!response.ok || !response.body) throw new Error(await response.text());
const decoder = new TextDecoder();
let buffer = '';
for await (const bytes of response.body) {
buffer += decoder.decode(bytes, { stream: true });
const frames = buffer.split('\n\n');
buffer = frames.pop() ?? '';
for (const frame of frames) {
const line = frame.split('\n').find((value) => value.startsWith('data: '));
if (!line) continue;
const payload = line.slice(6).trim();
if (payload !== '[DONE]') process.stdout.write(JSON.parse(payload).choices?.[0]?.delta?.content ?? '');
}
}
import json
import os
import requests
with requests.post(
"https://api.yelu.ai/v1/chat/completions",
headers={"Authorization": f"Bearer {os.environ['YELU_API_KEY']}"},
json={"model": "gpt-4o-mini", "messages": [{"role": "user", "content": "列出三个 API 设计原则。"}], "stream": True},
stream=True,
timeout=(10, 120),
) as response:
response.raise_for_status()
for line in response.iter_lines(decode_unicode=True):
if not line or not line.startswith("data: "):
continue
payload = line[6:].strip()
if payload == "[DONE]":
break
print(json.loads(payload).get("choices", [{}])[0].get("delta", {}).get("content", ""), end="", flush=True)