示例代码:
import fetch from 'node-fetch';
const messages = [];
fetch("https://api.siliconflow.cn/v1/chat/completions", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer "
},
body: JSON.stringify({
"model": "Qwen/QwQ-32B",
"stream": true,
"max_tokens": 512,
"temperature": 0.7,
"top_p": 0.7,
"top_k": 50,
"frequency_penalty": 0.5,
"n": 1,
"messages": [
{ "content": "廖剑锋是谁", "role": "user" }
]
})
}).then(async response => {
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
const textDecoder = new TextDecoder();
let buffer = '';
for await (const chunk of response.body) {
const text = textDecoder.decode(chunk);
buffer += text;
const lines = buffer.split('\n');
buffer = lines.pop() || '';
for (const line of lines) {
if (line.trim()) {
try {
// Remove 'data: ' prefix and parse JSON
const jsonStr = line.replace(/^data: /, '').trim();
if (jsonStr === '[DONE]') continue;
const res = JSON.parse(jsonStr);
if (res.choices && res.choices[0].delta.content) {
if (messages.length === 0) {
messages.push({ content: '' });
}
messages[messages.length - 1].content += res.choices[0].delta.content;
console.log(res.choices[0].delta);
}
} catch (parseError) {
console.error('Error parsing response:', parseError);
}
}
}
}
}).catch(error => {
console.error('Fetch error:', error);
});
输出展示: