| import { WEBUI_API_BASE_URL } from '$lib/constants'; | |
| export const getModelItems = async ( | |
| token: string = '', | |
| query, | |
| viewOption, | |
| selectedTag, | |
| orderBy, | |
| direction, | |
| page | |
| ) => { | |
| let error = null; | |
| const searchParams = new URLSearchParams(); | |
| if (query) { | |
| searchParams.append('query', query); | |
| } | |
| if (viewOption) { | |
| searchParams.append('view_option', viewOption); | |
| } | |
| if (selectedTag) { | |
| searchParams.append('tag', selectedTag); | |
| } | |
| if (orderBy) { | |
| searchParams.append('order_by', orderBy); | |
| } | |
| if (direction) { | |
| searchParams.append('direction', direction); | |
| } | |
| if (page) { | |
| searchParams.append('page', page.toString()); | |
| } | |
| const res = await fetch(`${WEBUI_API_BASE_URL}/models/list?${searchParams.toString()}`, { | |
| method: 'GET', | |
| headers: { | |
| Accept: 'application/json', | |
| 'Content-Type': 'application/json', | |
| authorization: `Bearer ${token}` | |
| } | |
| }) | |
| .then(async (res) => { | |
| if (!res.ok) throw await res.json(); | |
| return res.json(); | |
| }) | |
| .then((json) => { | |
| return json; | |
| }) | |
| .catch((err) => { | |
| error = err; | |
| console.error(err); | |
| return null; | |
| }); | |
| if (error) { | |
| throw error; | |
| } | |
| return res; | |
| }; | |
| export const getModelTags = async (token: string = '') => { | |
| let error = null; | |
| const res = await fetch(`${WEBUI_API_BASE_URL}/models/tags`, { | |
| method: 'GET', | |
| headers: { | |
| Accept: 'application/json', | |
| 'Content-Type': 'application/json', | |
| authorization: `Bearer ${token}` | |
| } | |
| }) | |
| .then(async (res) => { | |
| if (!res.ok) throw await res.json(); | |
| return res.json(); | |
| }) | |
| .then((json) => { | |
| return json; | |
| }) | |
| .catch((err) => { | |
| error = err; | |
| console.error(err); | |
| return null; | |
| }); | |
| if (error) { | |
| throw error; | |
| } | |
| return res; | |
| }; | |
| export const importModels = async (token: string, models: object[]) => { | |
| let error = null; | |
| const res = await fetch(`${WEBUI_API_BASE_URL}/models/import`, { | |
| method: 'POST', | |
| headers: { | |
| 'Content-Type': 'application/json', | |
| authorization: `Bearer ${token}` | |
| }, | |
| body: JSON.stringify({ models: models }) | |
| }) | |
| .then(async (res) => { | |
| if (!res.ok) throw await res.json(); | |
| return res.json(); | |
| }) | |
| .catch((err) => { | |
| error = err; | |
| console.error(err); | |
| return null; | |
| }); | |
| if (error) { | |
| throw error; | |
| } | |
| return res; | |
| }; | |
| export const getBaseModels = async (token: string = '') => { | |
| let error = null; | |
| const res = await fetch(`${WEBUI_API_BASE_URL}/models/base`, { | |
| method: 'GET', | |
| headers: { | |
| Accept: 'application/json', | |
| 'Content-Type': 'application/json', | |
| authorization: `Bearer ${token}` | |
| } | |
| }) | |
| .then(async (res) => { | |
| if (!res.ok) throw await res.json(); | |
| return res.json(); | |
| }) | |
| .then((json) => { | |
| return json; | |
| }) | |
| .catch((err) => { | |
| error = err; | |
| console.error(err); | |
| return null; | |
| }); | |
| if (error) { | |
| throw error; | |
| } | |
| return res; | |
| }; | |
| export const createNewModel = async (token: string, model: object) => { | |
| let error = null; | |
| const res = await fetch(`${WEBUI_API_BASE_URL}/models/create`, { | |
| method: 'POST', | |
| headers: { | |
| Accept: 'application/json', | |
| 'Content-Type': 'application/json', | |
| authorization: `Bearer ${token}` | |
| }, | |
| body: JSON.stringify(model) | |
| }) | |
| .then(async (res) => { | |
| if (!res.ok) throw await res.json(); | |
| return res.json(); | |
| }) | |
| .catch((err) => { | |
| error = err.detail; | |
| console.error(err); | |
| return null; | |
| }); | |
| if (error) { | |
| throw error; | |
| } | |
| return res; | |
| }; | |
| export const getModelById = async (token: string, id: string) => { | |
| let error = null; | |
| const searchParams = new URLSearchParams(); | |
| searchParams.append('id', id); | |
| const res = await fetch(`${WEBUI_API_BASE_URL}/models/model?${searchParams.toString()}`, { | |
| method: 'GET', | |
| headers: { | |
| Accept: 'application/json', | |
| 'Content-Type': 'application/json', | |
| authorization: `Bearer ${token}` | |
| } | |
| }) | |
| .then(async (res) => { | |
| if (!res.ok) throw await res.json(); | |
| return res.json(); | |
| }) | |
| .then((json) => { | |
| return json; | |
| }) | |
| .catch((err) => { | |
| error = err; | |
| console.error(err); | |
| return null; | |
| }); | |
| if (error) { | |
| throw error; | |
| } | |
| return res; | |
| }; | |
| export const toggleModelById = async (token: string, id: string) => { | |
| let error = null; | |
| const searchParams = new URLSearchParams(); | |
| searchParams.append('id', id); | |
| const res = await fetch(`${WEBUI_API_BASE_URL}/models/model/toggle?${searchParams.toString()}`, { | |
| method: 'POST', | |
| headers: { | |
| Accept: 'application/json', | |
| 'Content-Type': 'application/json', | |
| authorization: `Bearer ${token}` | |
| } | |
| }) | |
| .then(async (res) => { | |
| if (!res.ok) throw await res.json(); | |
| return res.json(); | |
| }) | |
| .then((json) => { | |
| return json; | |
| }) | |
| .catch((err) => { | |
| error = err; | |
| console.error(err); | |
| return null; | |
| }); | |
| if (error) { | |
| throw error; | |
| } | |
| return res; | |
| }; | |
| export const updateModelById = async (token: string, id: string, model: object) => { | |
| let error = null; | |
| const res = await fetch(`${WEBUI_API_BASE_URL}/models/model/update`, { | |
| method: 'POST', | |
| headers: { | |
| Accept: 'application/json', | |
| 'Content-Type': 'application/json', | |
| authorization: `Bearer ${token}` | |
| }, | |
| body: JSON.stringify({ ...model, id }) | |
| }) | |
| .then(async (res) => { | |
| if (!res.ok) throw await res.json(); | |
| return res.json(); | |
| }) | |
| .then((json) => { | |
| return json; | |
| }) | |
| .catch((err) => { | |
| error = err; | |
| console.error(err); | |
| return null; | |
| }); | |
| if (error) { | |
| throw error; | |
| } | |
| return res; | |
| }; | |
| export const updateModelAccessGrants = async (token: string, id: string, accessGrants: any[]) => { | |
| let error = null; | |
| const res = await fetch(`${WEBUI_API_BASE_URL}/models/model/access/update`, { | |
| method: 'POST', | |
| headers: { | |
| Accept: 'application/json', | |
| 'Content-Type': 'application/json', | |
| authorization: `Bearer ${token}` | |
| }, | |
| body: JSON.stringify({ id, access_grants: accessGrants }) | |
| }) | |
| .then(async (res) => { | |
| if (!res.ok) throw await res.json(); | |
| return res.json(); | |
| }) | |
| .catch((err) => { | |
| error = err; | |
| console.error(err); | |
| return null; | |
| }); | |
| if (error) { | |
| throw error; | |
| } | |
| return res; | |
| }; | |
| export const deleteModelById = async (token: string, id: string) => { | |
| let error = null; | |
| const res = await fetch(`${WEBUI_API_BASE_URL}/models/model/delete`, { | |
| method: 'POST', | |
| headers: { | |
| Accept: 'application/json', | |
| 'Content-Type': 'application/json', | |
| authorization: `Bearer ${token}` | |
| }, | |
| body: JSON.stringify({ id }) | |
| }) | |
| .then(async (res) => { | |
| if (!res.ok) throw await res.json(); | |
| return res.json(); | |
| }) | |
| .then((json) => { | |
| return json; | |
| }) | |
| .catch((err) => { | |
| error = err.detail; | |
| console.error(err); | |
| return null; | |
| }); | |
| if (error) { | |
| throw error; | |
| } | |
| return res; | |
| }; | |
| export const deleteAllModels = async (token: string) => { | |
| let error = null; | |
| const res = await fetch(`${WEBUI_API_BASE_URL}/models/delete/all`, { | |
| method: 'DELETE', | |
| headers: { | |
| Accept: 'application/json', | |
| 'Content-Type': 'application/json', | |
| authorization: `Bearer ${token}` | |
| } | |
| }) | |
| .then(async (res) => { | |
| if (!res.ok) throw await res.json(); | |
| return res.json(); | |
| }) | |
| .then((json) => { | |
| return json; | |
| }) | |
| .catch((err) => { | |
| error = err; | |
| console.error(err); | |
| return null; | |
| }); | |
| if (error) { | |
| throw error; | |
| } | |
| return res; | |
| }; | |