jbilcke-hf's picture
jbilcke-hf HF Staff
improve prompts
58b1ffb
import { NextResponse, NextRequest } from "next/server"
import queryString from "query-string"
import { newClap, parseClap, serializeClap } from "@aitube/clap"
import { parseCompletionMode } from "@/app/api/parsers/parseCompletionMode"
import { parseClapEntityPrompts } from "@/app/api/parsers/parseEntityPrompts"
import { throwIfInvalidToken } from "@/app/api/v1/auth/throwIfInvalidToken"
import { editEntities } from "."
import { ClapCompletionMode } from "@aitube/client"
import { parseTurbo } from "@/app/api/parsers/parseTurbo"
export async function POST(req: NextRequest) {
await throwIfInvalidToken(req.headers.get("Authorization"))
const qs = queryString.parseUrl(req.url || "")
const query = (qs || {}).query
const mode = parseCompletionMode(query?.c)
const turbo = parseTurbo(query?.t)
// const prompt = parsePrompt(query?.p)
const entityPrompts = parseClapEntityPrompts(query?.e)
const blob = await req.blob()
const existingClap = await parseClap(blob)
const newerClap = mode === ClapCompletionMode.FULL ? existingClap : newClap({
meta: existingClap.meta
})
await editEntities({
existingClap,
newerClap,
entityPrompts,
mode,
turbo,
})
// console.log(`[api/edit/entities] returning the newer clap extended with the entities`)
return new NextResponse(await serializeClap(newerClap), {
status: 200,
headers: new Headers({ "content-type": "application/x-gzip" }),
})
}