Spaces:
Running
Running
import { WEBUI_API_BASE_URL } from '$lib/constants'; | |
import { getTimeRange } from '$lib/utils'; | |
export const createNewChat = async (token: string, chat: object) => { | |
let error = null; | |
const res = await fetch(`${WEBUI_API_BASE_URL}/chats/new`, { | |
method: 'POST', | |
headers: { | |
Accept: 'application/json', | |
'Content-Type': 'application/json', | |
authorization: `Bearer ${token}` | |
}, | |
body: JSON.stringify({ | |
chat: chat | |
}) | |
}) | |
.then(async (res) => { | |
if (!res.ok) throw await res.json(); | |
return res.json(); | |
}) | |
.catch((err) => { | |
error = err; | |
console.log(err); | |
return null; | |
}); | |
if (error) { | |
throw error; | |
} | |
return res; | |
}; | |
export const importChat = async ( | |
token: string, | |
chat: object, | |
meta: object | null, | |
pinned?: boolean, | |
folderId?: string | null | |
) => { | |
let error = null; | |
const res = await fetch(`${WEBUI_API_BASE_URL}/chats/import`, { | |
method: 'POST', | |
headers: { | |
Accept: 'application/json', | |
'Content-Type': 'application/json', | |
authorization: `Bearer ${token}` | |
}, | |
body: JSON.stringify({ | |
chat: chat, | |
meta: meta ?? {}, | |
pinned: pinned, | |
folder_id: folderId | |
}) | |
}) | |
.then(async (res) => { | |
if (!res.ok) throw await res.json(); | |
return res.json(); | |
}) | |
.catch((err) => { | |
error = err; | |
console.log(err); | |
return null; | |
}); | |
if (error) { | |
throw error; | |
} | |
return res; | |
}; | |
export const getChatList = async (token: string = '', page: number | null = null) => { | |
let error = null; | |
const searchParams = new URLSearchParams(); | |
if (page !== null) { | |
searchParams.append('page', `${page}`); | |
} | |
const res = await fetch(`${WEBUI_API_BASE_URL}/chats/?${searchParams.toString()}`, { | |
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(); | |
}) | |
.then((json) => { | |
return json; | |
}) | |
.catch((err) => { | |
error = err; | |
console.log(err); | |
return null; | |
}); | |
if (error) { | |
throw error; | |
} | |
return res.map((chat) => ({ | |
...chat, | |
time_range: getTimeRange(chat.updated_at) | |
})); | |
}; | |
export const getChatListByUserId = async (token: string = '', userId: string) => { | |
let error = null; | |
const res = await fetch(`${WEBUI_API_BASE_URL}/chats/list/user/${userId}`, { | |
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(); | |
}) | |
.then((json) => { | |
return json; | |
}) | |
.catch((err) => { | |
error = err; | |
console.log(err); | |
return null; | |
}); | |
if (error) { | |
throw error; | |
} | |
return res.map((chat) => ({ | |
...chat, | |
time_range: getTimeRange(chat.updated_at) | |
})); | |
}; | |
export const getArchivedChatList = async (token: string = '') => { | |
let error = null; | |
const res = await fetch(`${WEBUI_API_BASE_URL}/chats/archived`, { | |
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(); | |
}) | |
.then((json) => { | |
return json; | |
}) | |
.catch((err) => { | |
error = err; | |
console.log(err); | |
return null; | |
}); | |
if (error) { | |
throw error; | |
} | |
return res; | |
}; | |
export const getAllChats = async (token: string) => { | |
let error = null; | |
const res = await fetch(`${WEBUI_API_BASE_URL}/chats/all`, { | |
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(); | |
}) | |
.then((json) => { | |
return json; | |
}) | |
.catch((err) => { | |
error = err; | |
console.log(err); | |
return null; | |
}); | |
if (error) { | |
throw error; | |
} | |
return res; | |
}; | |
export const getChatListBySearchText = async (token: string, text: string, page: number = 1) => { | |
let error = null; | |
const searchParams = new URLSearchParams(); | |
searchParams.append('text', text); | |
searchParams.append('page', `${page}`); | |
const res = await fetch(`${WEBUI_API_BASE_URL}/chats/search?${searchParams.toString()}`, { | |
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(); | |
}) | |
.then((json) => { | |
return json; | |
}) | |
.catch((err) => { | |
error = err; | |
console.log(err); | |
return null; | |
}); | |
if (error) { | |
throw error; | |
} | |
return res.map((chat) => ({ | |
...chat, | |
time_range: getTimeRange(chat.updated_at) | |
})); | |
}; | |
export const getChatsByFolderId = async (token: string, folderId: string) => { | |
let error = null; | |
const res = await fetch(`${WEBUI_API_BASE_URL}/chats/folder/${folderId}`, { | |
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(); | |
}) | |
.then((json) => { | |
return json; | |
}) | |
.catch((err) => { | |
error = err; | |
console.log(err); | |
return null; | |
}); | |
if (error) { | |
throw error; | |
} | |
return res; | |
}; | |
export const getAllArchivedChats = async (token: string) => { | |
let error = null; | |
const res = await fetch(`${WEBUI_API_BASE_URL}/chats/all/archived`, { | |
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(); | |
}) | |
.then((json) => { | |
return json; | |
}) | |
.catch((err) => { | |
error = err; | |
console.log(err); | |
return null; | |
}); | |
if (error) { | |
throw error; | |
} | |
return res; | |
}; | |
export const getAllUserChats = async (token: string) => { | |
let error = null; | |
const res = await fetch(`${WEBUI_API_BASE_URL}/chats/all/db`, { | |
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(); | |
}) | |
.then((json) => { | |
return json; | |
}) | |
.catch((err) => { | |
error = err; | |
console.log(err); | |
return null; | |
}); | |
if (error) { | |
throw error; | |
} | |
return res; | |
}; | |
export const getAllTags = async (token: string) => { | |
let error = null; | |
const res = await fetch(`${WEBUI_API_BASE_URL}/chats/all/tags`, { | |
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(); | |
}) | |
.then((json) => { | |
return json; | |
}) | |
.catch((err) => { | |
error = err; | |
console.log(err); | |
return null; | |
}); | |
if (error) { | |
throw error; | |
} | |
return res; | |
}; | |
export const getPinnedChatList = async (token: string = '') => { | |
let error = null; | |
const res = await fetch(`${WEBUI_API_BASE_URL}/chats/pinned`, { | |
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(); | |
}) | |
.then((json) => { | |
return json; | |
}) | |
.catch((err) => { | |
error = err; | |
console.log(err); | |
return null; | |
}); | |
if (error) { | |
throw error; | |
} | |
return res.map((chat) => ({ | |
...chat, | |
time_range: getTimeRange(chat.updated_at) | |
})); | |
}; | |
export const getChatListByTagName = async (token: string = '', tagName: string) => { | |
let error = null; | |
const res = await fetch(`${WEBUI_API_BASE_URL}/chats/tags`, { | |
method: 'POST', | |
headers: { | |
Accept: 'application/json', | |
'Content-Type': 'application/json', | |
...(token && { authorization: `Bearer ${token}` }) | |
}, | |
body: JSON.stringify({ | |
name: tagName | |
}) | |
}) | |
.then(async (res) => { | |
if (!res.ok) throw await res.json(); | |
return res.json(); | |
}) | |
.then((json) => { | |
return json; | |
}) | |
.catch((err) => { | |
error = err; | |
console.log(err); | |
return null; | |
}); | |
if (error) { | |
throw error; | |
} | |
return res.map((chat) => ({ | |
...chat, | |
time_range: getTimeRange(chat.updated_at) | |
})); | |
}; | |
export const getChatById = async (token: string, id: string) => { | |
let error = null; | |
const res = await fetch(`${WEBUI_API_BASE_URL}/chats/${id}`, { | |
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(); | |
}) | |
.then((json) => { | |
return json; | |
}) | |
.catch((err) => { | |
error = err; | |
console.log(err); | |
return null; | |
}); | |
if (error) { | |
throw error; | |
} | |
return res; | |
}; | |
export const getChatByShareId = async (token: string, share_id: string) => { | |
let error = null; | |
const res = await fetch(`${WEBUI_API_BASE_URL}/chats/share/${share_id}`, { | |
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(); | |
}) | |
.then((json) => { | |
return json; | |
}) | |
.catch((err) => { | |
error = err; | |
console.log(err); | |
return null; | |
}); | |
if (error) { | |
throw error; | |
} | |
return res; | |
}; | |
export const getChatPinnedStatusById = async (token: string, id: string) => { | |
let error = null; | |
const res = await fetch(`${WEBUI_API_BASE_URL}/chats/${id}/pinned`, { | |
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(); | |
}) | |
.then((json) => { | |
return json; | |
}) | |
.catch((err) => { | |
error = err; | |
if ('detail' in err) { | |
error = err.detail; | |
} else { | |
error = err; | |
} | |
console.log(err); | |
return null; | |
}); | |
if (error) { | |
throw error; | |
} | |
return res; | |
}; | |
export const toggleChatPinnedStatusById = async (token: string, id: string) => { | |
let error = null; | |
const res = await fetch(`${WEBUI_API_BASE_URL}/chats/${id}/pin`, { | |
method: 'POST', | |
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(); | |
}) | |
.then((json) => { | |
return json; | |
}) | |
.catch((err) => { | |
error = err; | |
if ('detail' in err) { | |
error = err.detail; | |
} else { | |
error = err; | |
} | |
console.log(err); | |
return null; | |
}); | |
if (error) { | |
throw error; | |
} | |
return res; | |
}; | |
export const cloneChatById = async (token: string, id: string) => { | |
let error = null; | |
const res = await fetch(`${WEBUI_API_BASE_URL}/chats/${id}/clone`, { | |
method: 'POST', | |
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(); | |
}) | |
.then((json) => { | |
return json; | |
}) | |
.catch((err) => { | |
error = err; | |
if ('detail' in err) { | |
error = err.detail; | |
} else { | |
error = err; | |
} | |
console.log(err); | |
return null; | |
}); | |
if (error) { | |
throw error; | |
} | |
return res; | |
}; | |
export const cloneSharedChatById = async (token: string, id: string) => { | |
let error = null; | |
const res = await fetch(`${WEBUI_API_BASE_URL}/chats/${id}/clone/shared`, { | |
method: 'POST', | |
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(); | |
}) | |
.then((json) => { | |
return json; | |
}) | |
.catch((err) => { | |
error = err; | |
if ('detail' in err) { | |
error = err.detail; | |
} else { | |
error = err; | |
} | |
console.log(err); | |
return null; | |
}); | |
if (error) { | |
throw error; | |
} | |
return res; | |
}; | |
export const shareChatById = async (token: string, id: string) => { | |
let error = null; | |
const res = await fetch(`${WEBUI_API_BASE_URL}/chats/${id}/share`, { | |
method: 'POST', | |
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(); | |
}) | |
.then((json) => { | |
return json; | |
}) | |
.catch((err) => { | |
error = err; | |
console.log(err); | |
return null; | |
}); | |
if (error) { | |
throw error; | |
} | |
return res; | |
}; | |
export const updateChatFolderIdById = async (token: string, id: string, folderId?: string) => { | |
let error = null; | |
const res = await fetch(`${WEBUI_API_BASE_URL}/chats/${id}/folder`, { | |
method: 'POST', | |
headers: { | |
Accept: 'application/json', | |
'Content-Type': 'application/json', | |
...(token && { authorization: `Bearer ${token}` }) | |
}, | |
body: JSON.stringify({ | |
folder_id: folderId | |
}) | |
}) | |
.then(async (res) => { | |
if (!res.ok) throw await res.json(); | |
return res.json(); | |
}) | |
.then((json) => { | |
return json; | |
}) | |
.catch((err) => { | |
error = err; | |
console.log(err); | |
return null; | |
}); | |
if (error) { | |
throw error; | |
} | |
return res; | |
}; | |
export const archiveChatById = async (token: string, id: string) => { | |
let error = null; | |
const res = await fetch(`${WEBUI_API_BASE_URL}/chats/${id}/archive`, { | |
method: 'POST', | |
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(); | |
}) | |
.then((json) => { | |
return json; | |
}) | |
.catch((err) => { | |
error = err; | |
console.log(err); | |
return null; | |
}); | |
if (error) { | |
throw error; | |
} | |
return res; | |
}; | |
export const deleteSharedChatById = async (token: string, id: string) => { | |
let error = null; | |
const res = await fetch(`${WEBUI_API_BASE_URL}/chats/${id}/share`, { | |
method: 'DELETE', | |
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(); | |
}) | |
.then((json) => { | |
return json; | |
}) | |
.catch((err) => { | |
error = err; | |
console.log(err); | |
return null; | |
}); | |
if (error) { | |
throw error; | |
} | |
return res; | |
}; | |
export const updateChatById = async (token: string, id: string, chat: object) => { | |
let error = null; | |
const res = await fetch(`${WEBUI_API_BASE_URL}/chats/${id}`, { | |
method: 'POST', | |
headers: { | |
Accept: 'application/json', | |
'Content-Type': 'application/json', | |
...(token && { authorization: `Bearer ${token}` }) | |
}, | |
body: JSON.stringify({ | |
chat: chat | |
}) | |
}) | |
.then(async (res) => { | |
if (!res.ok) throw await res.json(); | |
return res.json(); | |
}) | |
.then((json) => { | |
return json; | |
}) | |
.catch((err) => { | |
error = err; | |
console.log(err); | |
return null; | |
}); | |
if (error) { | |
throw error; | |
} | |
return res; | |
}; | |
export const deleteChatById = async (token: string, id: string) => { | |
let error = null; | |
const res = await fetch(`${WEBUI_API_BASE_URL}/chats/${id}`, { | |
method: 'DELETE', | |
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(); | |
}) | |
.then((json) => { | |
return json; | |
}) | |
.catch((err) => { | |
error = err.detail; | |
console.log(err); | |
return null; | |
}); | |
if (error) { | |
throw error; | |
} | |
return res; | |
}; | |
export const getTagsById = async (token: string, id: string) => { | |
let error = null; | |
const res = await fetch(`${WEBUI_API_BASE_URL}/chats/${id}/tags`, { | |
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(); | |
}) | |
.then((json) => { | |
return json; | |
}) | |
.catch((err) => { | |
error = err; | |
console.log(err); | |
return null; | |
}); | |
if (error) { | |
throw error; | |
} | |
return res; | |
}; | |
export const addTagById = async (token: string, id: string, tagName: string) => { | |
let error = null; | |
const res = await fetch(`${WEBUI_API_BASE_URL}/chats/${id}/tags`, { | |
method: 'POST', | |
headers: { | |
Accept: 'application/json', | |
'Content-Type': 'application/json', | |
...(token && { authorization: `Bearer ${token}` }) | |
}, | |
body: JSON.stringify({ | |
name: tagName | |
}) | |
}) | |
.then(async (res) => { | |
if (!res.ok) throw await res.json(); | |
return res.json(); | |
}) | |
.then((json) => { | |
return json; | |
}) | |
.catch((err) => { | |
error = err.detail; | |
console.log(err); | |
return null; | |
}); | |
if (error) { | |
throw error; | |
} | |
return res; | |
}; | |
export const deleteTagById = async (token: string, id: string, tagName: string) => { | |
let error = null; | |
const res = await fetch(`${WEBUI_API_BASE_URL}/chats/${id}/tags`, { | |
method: 'DELETE', | |
headers: { | |
Accept: 'application/json', | |
'Content-Type': 'application/json', | |
...(token && { authorization: `Bearer ${token}` }) | |
}, | |
body: JSON.stringify({ | |
name: tagName | |
}) | |
}) | |
.then(async (res) => { | |
if (!res.ok) throw await res.json(); | |
return res.json(); | |
}) | |
.then((json) => { | |
return json; | |
}) | |
.catch((err) => { | |
error = err; | |
console.log(err); | |
return null; | |
}); | |
if (error) { | |
throw error; | |
} | |
return res; | |
}; | |
export const deleteTagsById = async (token: string, id: string) => { | |
let error = null; | |
const res = await fetch(`${WEBUI_API_BASE_URL}/chats/${id}/tags/all`, { | |
method: 'DELETE', | |
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(); | |
}) | |
.then((json) => { | |
return json; | |
}) | |
.catch((err) => { | |
error = err; | |
console.log(err); | |
return null; | |
}); | |
if (error) { | |
throw error; | |
} | |
return res; | |
}; | |
export const deleteAllChats = async (token: string) => { | |
let error = null; | |
const res = await fetch(`${WEBUI_API_BASE_URL}/chats/`, { | |
method: 'DELETE', | |
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(); | |
}) | |
.then((json) => { | |
return json; | |
}) | |
.catch((err) => { | |
error = err.detail; | |
console.log(err); | |
return null; | |
}); | |
if (error) { | |
throw error; | |
} | |
return res; | |
}; | |
export const archiveAllChats = async (token: string) => { | |
let error = null; | |
const res = await fetch(`${WEBUI_API_BASE_URL}/chats/archive/all`, { | |
method: 'POST', | |
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(); | |
}) | |
.then((json) => { | |
return json; | |
}) | |
.catch((err) => { | |
error = err.detail; | |
console.log(err); | |
return null; | |
}); | |
if (error) { | |
throw error; | |
} | |
return res; | |
}; | |