|
import { HF_ACCESS_TOKEN } from "$env/static/private"; |
|
import { HfInference } from "@huggingface/inference"; |
|
import { defaultModel } from "$lib/server/models"; |
|
import type { BackendModel } from "../models"; |
|
import { generateFromDefaultEndpoint } from "../generateFromDefaultEndpoint"; |
|
|
|
export async function summarizeWeb(content: string, query: string, model: BackendModel) { |
|
|
|
try { |
|
if (HF_ACCESS_TOKEN) { |
|
const summary = ( |
|
await new HfInference(HF_ACCESS_TOKEN).summarization({ |
|
model: "facebook/bart-large-cnn", |
|
inputs: content, |
|
parameters: { |
|
max_length: 512, |
|
}, |
|
}) |
|
).summary_text; |
|
return summary; |
|
} |
|
} catch (e) { |
|
console.log(e); |
|
} |
|
|
|
|
|
const summaryPrompt = defaultModel.webSearchSummaryPromptRender({ |
|
answer: content |
|
.split(" ") |
|
.slice(0, model.parameters?.truncate ?? 0) |
|
.join(" "), |
|
query: query, |
|
}); |
|
const summary = await generateFromDefaultEndpoint(summaryPrompt).then((txt: string) => |
|
txt.trim() |
|
); |
|
|
|
return summary; |
|
} |
|
|