inference-playground / src /routes /+page.server.ts
mishig's picture
mishig HF staff
fetch all tokenizer configs
fd28154
raw
history blame
No virus
1.28 kB
import type { ModelEntryWithTokenizer } from '$lib/types';
import type { ModelEntry } from '@huggingface/hub';
import type { PageServerLoad } from './$types';
import { env } from '$env/dynamic/private';
export const load: PageServerLoad = async ({ fetch }) => {
const apiUrl =
'https://huggingface.co/api/models?pipeline_tag=text-generation&inference=Warm&filter=conversational';
const HF_TOKEN = env.HF_TOKEN;
const res = await fetch(apiUrl, {
headers: {
Authorization: `Bearer ${HF_TOKEN}`
}
});
const compatibleModels: ModelEntry[] = await res.json();
compatibleModels.sort((a, b) => a.id.toLowerCase().localeCompare(b.id.toLowerCase()));
const promises = compatibleModels.map(async (model) => {
const configUrl = `https://huggingface.co/${model.modelId}/raw/main/tokenizer_config.json`;
const res = await fetch(configUrl, {
headers: {
Authorization: `Bearer ${HF_TOKEN}`
}
});
if (!res.ok) {
throw new Error(
`Failed to fetch tokenizer configuration for model ${model.id}: ${res.status} ${res.statusText}`
);
}
const tokenizerConfig = await res.json();
return { ...model, tokenizerConfig } satisfies ModelEntryWithTokenizer;
});
const models: ModelEntryWithTokenizer[] = await Promise.all(promises);
return { models };
};