enzostvs's picture
enzostvs HF staff
test sharing function
8cf3257
raw
history blame
No virus
1.44 kB
import { NextRequest } from "next/server";
export async function POST(
request: NextRequest,
) {
const { prompt } = await request.json();
const response = await fetch("https://api-inference.huggingface.co/models/HuggingFaceH4/zephyr-orpo-141b-A35b-v0.1", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.HF_TOKEN}`,
'Content-Type': 'application/json',
['x-use-cache']: "0"
},
body: JSON.stringify({
// inputs: `Generate and return only a music title based on the following prompt: ${prompt}`,
inputs: `Generate a music title based on the following prompt: ${prompt}, return only the title between quotes.`,
parameters: {
num_return_sequences: 1,
return_full_text: false,
do_sample: false,
}
}),
})
.then((response: any) => {
if (response.status !== 200) return Response.json({ status: 500, ok: false, message: response.statusText })
return response.json()
})
.then((response) => {
let title = response?.[0]?.generated_text;
// regex to keep only string between quotes
title = title?.match(/"(.*?)"/)?.[0];
return {
title: title,
}
})
.catch((error) => {
return {
error: error.message,
}
})
if ("error" in response) {
return Response.json({ status: 500, ok: false, message: response.error })
}
return Response.json({
title: response?.title,
})
}