Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
ibm
GitHub Repository: ibm/watson-machine-learning-samples
Path: blob/master/cloud/ai-service-apps/nextjs-carbon-react-ui/src/app/api/generate/route.js
6410 views
1
import { Readable } from "node:stream";
2
import { NextResponse } from "next/server";
3
import { URLS, getToken } from "../../lib/util";
4
5
export async function POST(req) {
6
try {
7
const token = await getToken();
8
const body = await req.json();
9
const messages = body.messages;
10
11
const payload = {
12
messages,
13
};
14
15
const options = {
16
method: "POST",
17
headers: {
18
Authorization: `Bearer ${token}`,
19
"Content-type": "application/json",
20
Accept: "text/event-stream",
21
},
22
body: JSON.stringify(payload),
23
};
24
25
const response = await fetch(URLS.aiServiceStreamUrl, options);
26
27
if (!response.ok) {
28
const errorText = await response.text();
29
return NextResponse.json({ error: errorText }, { status: 500 });
30
}
31
const stream = Readable.fromWeb(response.body);
32
return new NextResponse(stream, { status: 200 });
33
} catch (err) {
34
console.error(err);
35
return NextResponse.json({ error: err.message }, { status: 500 });
36
}
37
}
38
39