Spaces:
Sleeping
Sleeping
File size: 1,456 Bytes
0d218b1 f24ad59 0d218b1 f24ad59 8919651 0d218b1 f24ad59 8919651 db70195 0d218b1 8919651 0d218b1 f24ad59 db70195 f24ad59 0d218b1 8919651 0d218b1 f24ad59 0d218b1 c1ce586 0d218b1 f24ad59 8919651 db70195 f24ad59 58b1ffb 0d218b1 f24ad59 0d218b1 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
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" }),
})
}
|