Path: blob/master/cloud/ai-service-apps/nextjs-carbon-react-ui/src/app/api/generate/route.js
6410 views
import { Readable } from "node:stream";1import { NextResponse } from "next/server";2import { URLS, getToken } from "../../lib/util";34export async function POST(req) {5try {6const token = await getToken();7const body = await req.json();8const messages = body.messages;910const payload = {11messages,12};1314const options = {15method: "POST",16headers: {17Authorization: `Bearer ${token}`,18"Content-type": "application/json",19Accept: "text/event-stream",20},21body: JSON.stringify(payload),22};2324const response = await fetch(URLS.aiServiceStreamUrl, options);2526if (!response.ok) {27const errorText = await response.text();28return NextResponse.json({ error: errorText }, { status: 500 });29}30const stream = Readable.fromWeb(response.body);31return new NextResponse(stream, { status: 200 });32} catch (err) {33console.error(err);34return NextResponse.json({ error: err.message }, { status: 500 });35}36}373839