Spaces:
Paused
Paused
| import { WEBUI_BASE_URL } from '$lib/constants'; | |
| export const getModels = async (token: string = '') => { | |
| let error = null; | |
| const res = await fetch(`${WEBUI_BASE_URL}/api/models`, { | |
| method: 'GET', | |
| headers: { | |
| Accept: 'application/json', | |
| 'Content-Type': 'application/json', | |
| ...(token && { authorization: `Bearer ${token}` }) | |
| } | |
| }) | |
| .then(async (res) => { | |
| if (!res.ok) throw await res.json(); | |
| return res.json(); | |
| }) | |
| .catch((err) => { | |
| console.log(err); | |
| error = err; | |
| return null; | |
| }); | |
| if (error) { | |
| throw error; | |
| } | |
| let models = res?.data ?? []; | |
| models = models | |
| .filter((models) => models) | |
| .sort((a, b) => { | |
| // Compare case-insensitively | |
| const lowerA = a.name.toLowerCase(); | |
| const lowerB = b.name.toLowerCase(); | |
| if (lowerA < lowerB) return -1; | |
| if (lowerA > lowerB) return 1; | |
| // If same case-insensitively, sort by original strings, | |
| // lowercase will come before uppercase due to ASCII values | |
| if (a < b) return -1; | |
| if (a > b) return 1; | |
| return 0; // They are equal | |
| }); | |
| console.log(models); | |
| return models; | |
| }; | |
| export const getBackendConfig = async () => { | |
| let error = null; | |
| const res = await fetch(`${WEBUI_BASE_URL}/api/config`, { | |
| method: 'GET', | |
| headers: { | |
| 'Content-Type': 'application/json' | |
| } | |
| }) | |
| .then(async (res) => { | |
| if (!res.ok) throw await res.json(); | |
| return res.json(); | |
| }) | |
| .catch((err) => { | |
| console.log(err); | |
| error = err; | |
| return null; | |
| }); | |
| if (error) { | |
| throw error; | |
| } | |
| return res; | |
| }; | |
| export const getChangelog = async () => { | |
| let error = null; | |
| const res = await fetch(`${WEBUI_BASE_URL}/api/changelog`, { | |
| method: 'GET', | |
| headers: { | |
| 'Content-Type': 'application/json' | |
| } | |
| }) | |
| .then(async (res) => { | |
| if (!res.ok) throw await res.json(); | |
| return res.json(); | |
| }) | |
| .catch((err) => { | |
| console.log(err); | |
| error = err; | |
| return null; | |
| }); | |
| if (error) { | |
| throw error; | |
| } | |
| return res; | |
| }; | |
| export const getVersionUpdates = async () => { | |
| let error = null; | |
| const res = await fetch(`${WEBUI_BASE_URL}/api/version/updates`, { | |
| method: 'GET', | |
| headers: { | |
| 'Content-Type': 'application/json' | |
| } | |
| }) | |
| .then(async (res) => { | |
| if (!res.ok) throw await res.json(); | |
| return res.json(); | |
| }) | |
| .catch((err) => { | |
| console.log(err); | |
| error = err; | |
| return null; | |
| }); | |
| if (error) { | |
| throw error; | |
| } | |
| return res; | |
| }; | |
| export const getModelFilterConfig = async (token: string) => { | |
| let error = null; | |
| const res = await fetch(`${WEBUI_BASE_URL}/api/config/model/filter`, { | |
| method: 'GET', | |
| headers: { | |
| 'Content-Type': 'application/json', | |
| Authorization: `Bearer ${token}` | |
| } | |
| }) | |
| .then(async (res) => { | |
| if (!res.ok) throw await res.json(); | |
| return res.json(); | |
| }) | |
| .catch((err) => { | |
| console.log(err); | |
| error = err; | |
| return null; | |
| }); | |
| if (error) { | |
| throw error; | |
| } | |
| return res; | |
| }; | |
| export const updateModelFilterConfig = async ( | |
| token: string, | |
| enabled: boolean, | |
| models: string[] | |
| ) => { | |
| let error = null; | |
| const res = await fetch(`${WEBUI_BASE_URL}/api/config/model/filter`, { | |
| method: 'POST', | |
| headers: { | |
| 'Content-Type': 'application/json', | |
| Authorization: `Bearer ${token}` | |
| }, | |
| body: JSON.stringify({ | |
| enabled: enabled, | |
| models: models | |
| }) | |
| }) | |
| .then(async (res) => { | |
| if (!res.ok) throw await res.json(); | |
| return res.json(); | |
| }) | |
| .catch((err) => { | |
| console.log(err); | |
| error = err; | |
| return null; | |
| }); | |
| if (error) { | |
| throw error; | |
| } | |
| return res; | |
| }; | |
| export const getWebhookUrl = async (token: string) => { | |
| let error = null; | |
| const res = await fetch(`${WEBUI_BASE_URL}/api/webhook`, { | |
| method: 'GET', | |
| headers: { | |
| 'Content-Type': 'application/json', | |
| Authorization: `Bearer ${token}` | |
| } | |
| }) | |
| .then(async (res) => { | |
| if (!res.ok) throw await res.json(); | |
| return res.json(); | |
| }) | |
| .catch((err) => { | |
| console.log(err); | |
| error = err; | |
| return null; | |
| }); | |
| if (error) { | |
| throw error; | |
| } | |
| return res.url; | |
| }; | |
| export const updateWebhookUrl = async (token: string, url: string) => { | |
| let error = null; | |
| const res = await fetch(`${WEBUI_BASE_URL}/api/webhook`, { | |
| method: 'POST', | |
| headers: { | |
| 'Content-Type': 'application/json', | |
| Authorization: `Bearer ${token}` | |
| }, | |
| body: JSON.stringify({ | |
| url: url | |
| }) | |
| }) | |
| .then(async (res) => { | |
| if (!res.ok) throw await res.json(); | |
| return res.json(); | |
| }) | |
| .catch((err) => { | |
| console.log(err); | |
| error = err; | |
| return null; | |
| }); | |
| if (error) { | |
| throw error; | |
| } | |
| return res.url; | |
| }; | |
| export const getModelConfig = async (token: string): Promise<GlobalModelConfig> => { | |
| let error = null; | |
| const res = await fetch(`${WEBUI_BASE_URL}/api/config/models`, { | |
| method: 'GET', | |
| headers: { | |
| 'Content-Type': 'application/json', | |
| Authorization: `Bearer ${token}` | |
| } | |
| }) | |
| .then(async (res) => { | |
| if (!res.ok) throw await res.json(); | |
| return res.json(); | |
| }) | |
| .catch((err) => { | |
| console.log(err); | |
| error = err; | |
| return null; | |
| }); | |
| if (error) { | |
| throw error; | |
| } | |
| return res.models; | |
| }; | |
| export interface ModelConfig { | |
| id: string; | |
| name: string; | |
| meta: ModelMeta; | |
| base_model_id?: string; | |
| params: ModelParams; | |
| } | |
| export interface ModelMeta { | |
| description?: string; | |
| capabilities?: object; | |
| } | |
| export interface ModelParams {} | |
| export type GlobalModelConfig = ModelConfig[]; | |
| export const updateModelConfig = async (token: string, config: GlobalModelConfig) => { | |
| let error = null; | |
| const res = await fetch(`${WEBUI_BASE_URL}/api/config/models`, { | |
| method: 'POST', | |
| headers: { | |
| 'Content-Type': 'application/json', | |
| Authorization: `Bearer ${token}` | |
| }, | |
| body: JSON.stringify({ | |
| models: config | |
| }) | |
| }) | |
| .then(async (res) => { | |
| if (!res.ok) throw await res.json(); | |
| return res.json(); | |
| }) | |
| .catch((err) => { | |
| console.log(err); | |
| error = err; | |
| return null; | |
| }); | |
| if (error) { | |
| throw error; | |
| } | |
| return res; | |
| }; | |