Spaces:
Runtime error
Runtime error
File size: 1,876 Bytes
abaaa3e 3e9f86e 9be5ab5 06ffd82 3e9f86e c38ef3b 3e9f86e ffa4f55 3e9f86e 06ffd82 3c650ed abaaa3e 06ffd82 3e9f86e 9be5ab5 06ffd82 9be5ab5 06ffd82 9be5ab5 06ffd82 3e9f86e 06ffd82 3e9f86e 06ffd82 3e9f86e 06ffd82 3e9f86e 06ffd82 3e9f86e |
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 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
import { PUBLIC_MAX_INPUT_TOKENS, PUBLIC_SEP_TOKEN } from "$env/static/public";
import { buildPrompt } from "$lib/buildPrompt";
import { collections } from "$lib/server/database.js";
import { modelEndpoint } from "$lib/server/modelEndpoint.js";
import { textGeneration } from "@huggingface/inference";
import { error } from "@sveltejs/kit";
import { ObjectId } from "mongodb";
export async function POST({ params, locals, fetch }) {
const convId = new ObjectId(params.id);
const conversation = await collections.conversations.findOne({
_id: convId,
sessionId: locals.sessionId,
});
if (!conversation) {
throw error(404, "Conversation not found");
}
const firstMessage = conversation.messages.find((m) => m.from === "user");
const userPrompt =
`Please summarize the following message as a single sentence of less than 5 words:\n` +
firstMessage?.content;
const prompt = buildPrompt([{ from: "user", content: userPrompt }]);
const parameters = {
temperature: 0.9,
top_p: 0.95,
repetition_penalty: 1.2,
top_k: 50,
watermark: false,
max_new_tokens: 1024,
truncate: parseInt(PUBLIC_MAX_INPUT_TOKENS),
stop: [PUBLIC_SEP_TOKEN],
return_full_text: false,
};
const endpoint = modelEndpoint();
const { generated_text } = await textGeneration(
{
model: endpoint.endpoint,
inputs: prompt,
parameters,
},
{
fetch: (url, options) =>
fetch(url, {
...options,
headers: { ...options?.headers, Authorization: endpoint.authorization },
}),
}
);
if (generated_text) {
await collections.conversations.updateOne(
{
_id: convId,
sessionId: locals.sessionId,
},
{
$set: { title: generated_text },
}
);
}
return new Response(
JSON.stringify(
generated_text
? {
title: generated_text,
}
: {}
),
{ headers: { "Content-Type": "application/json" } }
);
}
|