Skip to content

Commit 7c8e2b2

Browse files
add error handling for limit exceeded messages in API
1 parent a2f9402 commit 7c8e2b2

File tree

1 file changed

+23
-6
lines changed

1 file changed

+23
-6
lines changed

server.js

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -115,18 +115,35 @@ app.post("/api/ask-ai", async (req, res) => {
115115
const lines = chunk.split('\n').filter(line => line.trim());
116116

117117
for (const line of lines) {
118+
if (!line || !line.startsWith('data: ') || line.includes('[DONE]')) continue;
119+
118120
try {
119-
if (line.includes('[DONE]')) continue;
120-
if (!line.startsWith('data: ')) continue;
121+
if (line.includes('exceeded')) {
122+
return res.status(402).send({
123+
ok: false,
124+
message: line,
125+
});
126+
}
121127

122-
const message = JSON.parse(line.replace('data: ', ''));
123-
if(message.choices[0].delta.content) {
124-
res.write(message.choices[0].delta.content);
128+
const json = line.slice(6).trim();
129+
130+
if (!json.startsWith('{')) {
131+
continue;
132+
}
133+
134+
const message = JSON.parse(json);
135+
const content = message?.choices?.[0]?.delta?.content;
136+
137+
if (content) {
138+
res.write(content);
125139
}
126140
} catch (e) {
127-
console.error('Error parsing chunk:', e);
141+
console.error('Error on line stream:', e.message);
142+
// continue ao invés de throw, pra não matar tudo por causa de uma linha podre
143+
continue;
128144
}
129145
}
146+
130147
}
131148
res.end();
132149
} catch (error) {

0 commit comments

Comments
 (0)