| 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; |
| } |
|
|