-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Expand file tree
/
Copy path+server.ts
More file actions
39 lines (38 loc) · 1.36 KB
/
+server.ts
File metadata and controls
39 lines (38 loc) · 1.36 KB
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
import type { RequestHandler } from "@sveltejs/kit";
import { superjsonResponse } from "$lib/server/api/utils/superjsonResponse";
import type { GETModelsResponse } from "$lib/server/api/types";
export const GET: RequestHandler = async () => {
try {
const { models } = await import("$lib/server/models");
return superjsonResponse(
models
.filter((m) => m.unlisted == false)
.map((model) => ({
id: model.id,
name: model.name,
websiteUrl: model.websiteUrl,
modelUrl: model.modelUrl,
datasetName: model.datasetName,
datasetUrl: model.datasetUrl,
displayName: model.displayName,
description: model.description,
logoUrl: model.logoUrl,
providers: model.providers as unknown as Array<
{ provider: string } & Record<string, unknown>
>,
promptExamples: model.promptExamples,
parameters: model.parameters,
preprompt: model.preprompt,
multimodal: model.multimodal,
multimodalAcceptedMimetypes: model.multimodalAcceptedMimetypes,
acceptedFileMimetypes: model.acceptedFileMimetypes,
supportsTools: (model as unknown as { supportsTools?: boolean }).supportsTools ?? false,
unlisted: model.unlisted,
hasInferenceAPI: model.hasInferenceAPI,
isRouter: model.isRouter,
})) satisfies GETModelsResponse
);
} catch {
return superjsonResponse([] as GETModelsResponse);
}
};