Add support for HF summarization endpoint in the websearch (#319)
Browse files* Add support for HF endpoint for summary
* add fail-safe for summarization
src/lib/server/websearch/summarizeWeb.ts
CHANGED
@@ -1,7 +1,28 @@
|
|
|
|
|
|
1 |
import { generateFromDefaultEndpoint } from "../generateFromDefaultEndpoint";
|
2 |
import type { BackendModel } from "../models";
|
3 |
|
4 |
export async function summarizeWeb(content: string, query: string, model: BackendModel) {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
5 |
const summaryPrompt =
|
6 |
model.userMessageToken +
|
7 |
content
|
|
|
1 |
+
import { HF_ACCESS_TOKEN } from "$env/static/private";
|
2 |
+
import { HfInference } from "@huggingface/inference";
|
3 |
import { generateFromDefaultEndpoint } from "../generateFromDefaultEndpoint";
|
4 |
import type { BackendModel } from "../models";
|
5 |
|
6 |
export async function summarizeWeb(content: string, query: string, model: BackendModel) {
|
7 |
+
// if HF_ACCESS_TOKEN is set, we use a HF dedicated endpoint for summarization
|
8 |
+
try {
|
9 |
+
if (HF_ACCESS_TOKEN) {
|
10 |
+
const summary = (
|
11 |
+
await new HfInference(HF_ACCESS_TOKEN).summarization({
|
12 |
+
model: "facebook/bart-large-cnn",
|
13 |
+
inputs: content,
|
14 |
+
parameters: {
|
15 |
+
max_length: 512,
|
16 |
+
},
|
17 |
+
})
|
18 |
+
).summary_text;
|
19 |
+
return summary;
|
20 |
+
}
|
21 |
+
} catch (e) {
|
22 |
+
console.log(e);
|
23 |
+
}
|
24 |
+
|
25 |
+
// else we use the LLM to generate a summary
|
26 |
const summaryPrompt =
|
27 |
model.userMessageToken +
|
28 |
content
|