Spaces:
Sleeping
Sleeping
import { RAG_API_BASE_URL } from '$lib/constants'; | |
export const getRAGConfig = async (token: string) => { | |
let error = null; | |
const res = await fetch(`${RAG_API_BASE_URL}/config`, { | |
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.detail; | |
return null; | |
}); | |
if (error) { | |
throw error; | |
} | |
return res; | |
}; | |
type ChunkConfigForm = { | |
chunk_size: number; | |
chunk_overlap: number; | |
}; | |
type YoutubeConfigForm = { | |
language: string[]; | |
translation?: string | null; | |
}; | |
type RAGConfigForm = { | |
pdf_extract_images?: boolean; | |
chunk?: ChunkConfigForm; | |
web_loader_ssl_verification?: boolean; | |
youtube?: YoutubeConfigForm; | |
}; | |
export const updateRAGConfig = async (token: string, payload: RAGConfigForm) => { | |
let error = null; | |
const res = await fetch(`${RAG_API_BASE_URL}/config/update`, { | |
method: 'POST', | |
headers: { | |
'Content-Type': 'application/json', | |
Authorization: `Bearer ${token}` | |
}, | |
body: JSON.stringify({ | |
...payload | |
}) | |
}) | |
.then(async (res) => { | |
if (!res.ok) throw await res.json(); | |
return res.json(); | |
}) | |
.catch((err) => { | |
console.log(err); | |
error = err.detail; | |
return null; | |
}); | |
if (error) { | |
throw error; | |
} | |
return res; | |
}; | |
export const getRAGTemplate = async (token: string) => { | |
let error = null; | |
const res = await fetch(`${RAG_API_BASE_URL}/template`, { | |
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.detail; | |
return null; | |
}); | |
if (error) { | |
throw error; | |
} | |
return res?.template ?? ''; | |
}; | |
export const getQuerySettings = async (token: string) => { | |
let error = null; | |
const res = await fetch(`${RAG_API_BASE_URL}/query/settings`, { | |
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.detail; | |
return null; | |
}); | |
if (error) { | |
throw error; | |
} | |
return res; | |
}; | |
type QuerySettings = { | |
k: number | null; | |
r: number | null; | |
template: string | null; | |
}; | |
export const updateQuerySettings = async (token: string, settings: QuerySettings) => { | |
let error = null; | |
const res = await fetch(`${RAG_API_BASE_URL}/query/settings/update`, { | |
method: 'POST', | |
headers: { | |
'Content-Type': 'application/json', | |
Authorization: `Bearer ${token}` | |
}, | |
body: JSON.stringify({ | |
...settings | |
}) | |
}) | |
.then(async (res) => { | |
if (!res.ok) throw await res.json(); | |
return res.json(); | |
}) | |
.catch((err) => { | |
console.log(err); | |
error = err.detail; | |
return null; | |
}); | |
if (error) { | |
throw error; | |
} | |
return res; | |
}; | |
export const processDocToVectorDB = async (token: string, file_id: string) => { | |
let error = null; | |
const res = await fetch(`${RAG_API_BASE_URL}/process/doc`, { | |
method: 'POST', | |
headers: { | |
Accept: 'application/json', | |
'Content-Type': 'application/json', | |
authorization: `Bearer ${token}` | |
}, | |
body: JSON.stringify({ | |
file_id: file_id | |
}) | |
}) | |
.then(async (res) => { | |
if (!res.ok) throw await res.json(); | |
return res.json(); | |
}) | |
.catch((err) => { | |
error = err.detail; | |
console.log(err); | |
return null; | |
}); | |
if (error) { | |
throw error; | |
} | |
return res; | |
}; | |
export const uploadDocToVectorDB = async (token: string, collection_name: string, file: File) => { | |
const data = new FormData(); | |
data.append('file', file); | |
data.append('collection_name', collection_name); | |
let error = null; | |
const res = await fetch(`${RAG_API_BASE_URL}/doc`, { | |
method: 'POST', | |
headers: { | |
Accept: 'application/json', | |
authorization: `Bearer ${token}` | |
}, | |
body: data | |
}) | |
.then(async (res) => { | |
if (!res.ok) throw await res.json(); | |
return res.json(); | |
}) | |
.catch((err) => { | |
error = err.detail; | |
console.log(err); | |
return null; | |
}); | |
if (error) { | |
throw error; | |
} | |
return res; | |
}; | |
export const uploadWebToVectorDB = async (token: string, collection_name: string, url: string) => { | |
let error = null; | |
const res = await fetch(`${RAG_API_BASE_URL}/web`, { | |
method: 'POST', | |
headers: { | |
Accept: 'application/json', | |
'Content-Type': 'application/json', | |
authorization: `Bearer ${token}` | |
}, | |
body: JSON.stringify({ | |
url: url, | |
collection_name: collection_name | |
}) | |
}) | |
.then(async (res) => { | |
if (!res.ok) throw await res.json(); | |
return res.json(); | |
}) | |
.catch((err) => { | |
error = err.detail; | |
console.log(err); | |
return null; | |
}); | |
if (error) { | |
throw error; | |
} | |
return res; | |
}; | |
export const uploadYoutubeTranscriptionToVectorDB = async (token: string, url: string) => { | |
let error = null; | |
const res = await fetch(`${RAG_API_BASE_URL}/youtube`, { | |
method: 'POST', | |
headers: { | |
Accept: 'application/json', | |
'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) => { | |
error = err.detail; | |
console.log(err); | |
return null; | |
}); | |
if (error) { | |
throw error; | |
} | |
return res; | |
}; | |
export const queryDoc = async ( | |
token: string, | |
collection_name: string, | |
query: string, | |
k: number | null = null | |
) => { | |
let error = null; | |
const res = await fetch(`${RAG_API_BASE_URL}/query/doc`, { | |
method: 'POST', | |
headers: { | |
Accept: 'application/json', | |
'Content-Type': 'application/json', | |
authorization: `Bearer ${token}` | |
}, | |
body: JSON.stringify({ | |
collection_name: collection_name, | |
query: query, | |
k: k | |
}) | |
}) | |
.then(async (res) => { | |
if (!res.ok) throw await res.json(); | |
return res.json(); | |
}) | |
.catch((err) => { | |
error = err.detail; | |
return null; | |
}); | |
if (error) { | |
throw error; | |
} | |
return res; | |
}; | |
export const queryCollection = async ( | |
token: string, | |
collection_names: string, | |
query: string, | |
k: number | null = null | |
) => { | |
let error = null; | |
const res = await fetch(`${RAG_API_BASE_URL}/query/collection`, { | |
method: 'POST', | |
headers: { | |
Accept: 'application/json', | |
'Content-Type': 'application/json', | |
authorization: `Bearer ${token}` | |
}, | |
body: JSON.stringify({ | |
collection_names: collection_names, | |
query: query, | |
k: k | |
}) | |
}) | |
.then(async (res) => { | |
if (!res.ok) throw await res.json(); | |
return res.json(); | |
}) | |
.catch((err) => { | |
error = err.detail; | |
return null; | |
}); | |
if (error) { | |
throw error; | |
} | |
return res; | |
}; | |
export const scanDocs = async (token: string) => { | |
let error = null; | |
const res = await fetch(`${RAG_API_BASE_URL}/scan`, { | |
method: 'GET', | |
headers: { | |
Accept: 'application/json', | |
authorization: `Bearer ${token}` | |
} | |
}) | |
.then(async (res) => { | |
if (!res.ok) throw await res.json(); | |
return res.json(); | |
}) | |
.catch((err) => { | |
error = err.detail; | |
return null; | |
}); | |
if (error) { | |
throw error; | |
} | |
return res; | |
}; | |
export const resetUploadDir = async (token: string) => { | |
let error = null; | |
const res = await fetch(`${RAG_API_BASE_URL}/reset/uploads`, { | |
method: 'GET', | |
headers: { | |
Accept: 'application/json', | |
authorization: `Bearer ${token}` | |
} | |
}) | |
.then(async (res) => { | |
if (!res.ok) throw await res.json(); | |
return res.json(); | |
}) | |
.catch((err) => { | |
error = err.detail; | |
return null; | |
}); | |
if (error) { | |
throw error; | |
} | |
return res; | |
}; | |
export const resetVectorDB = async (token: string) => { | |
let error = null; | |
const res = await fetch(`${RAG_API_BASE_URL}/reset`, { | |
method: 'GET', | |
headers: { | |
Accept: 'application/json', | |
authorization: `Bearer ${token}` | |
} | |
}) | |
.then(async (res) => { | |
if (!res.ok) throw await res.json(); | |
return res.json(); | |
}) | |
.catch((err) => { | |
error = err.detail; | |
return null; | |
}); | |
if (error) { | |
throw error; | |
} | |
return res; | |
}; | |
export const getEmbeddingConfig = async (token: string) => { | |
let error = null; | |
const res = await fetch(`${RAG_API_BASE_URL}/embedding`, { | |
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.detail; | |
return null; | |
}); | |
if (error) { | |
throw error; | |
} | |
return res; | |
}; | |
type OpenAIConfigForm = { | |
key: string; | |
url: string; | |
batch_size: number; | |
}; | |
type EmbeddingModelUpdateForm = { | |
openai_config?: OpenAIConfigForm; | |
embedding_engine: string; | |
embedding_model: string; | |
}; | |
export const updateEmbeddingConfig = async (token: string, payload: EmbeddingModelUpdateForm) => { | |
let error = null; | |
const res = await fetch(`${RAG_API_BASE_URL}/embedding/update`, { | |
method: 'POST', | |
headers: { | |
'Content-Type': 'application/json', | |
Authorization: `Bearer ${token}` | |
}, | |
body: JSON.stringify({ | |
...payload | |
}) | |
}) | |
.then(async (res) => { | |
if (!res.ok) throw await res.json(); | |
return res.json(); | |
}) | |
.catch((err) => { | |
console.log(err); | |
error = err.detail; | |
return null; | |
}); | |
if (error) { | |
throw error; | |
} | |
return res; | |
}; | |
export const getRerankingConfig = async (token: string) => { | |
let error = null; | |
const res = await fetch(`${RAG_API_BASE_URL}/reranking`, { | |
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.detail; | |
return null; | |
}); | |
if (error) { | |
throw error; | |
} | |
return res; | |
}; | |
type RerankingModelUpdateForm = { | |
reranking_model: string; | |
}; | |
export const updateRerankingConfig = async (token: string, payload: RerankingModelUpdateForm) => { | |
let error = null; | |
const res = await fetch(`${RAG_API_BASE_URL}/reranking/update`, { | |
method: 'POST', | |
headers: { | |
'Content-Type': 'application/json', | |
Authorization: `Bearer ${token}` | |
}, | |
body: JSON.stringify({ | |
...payload | |
}) | |
}) | |
.then(async (res) => { | |
if (!res.ok) throw await res.json(); | |
return res.json(); | |
}) | |
.catch((err) => { | |
console.log(err); | |
error = err.detail; | |
return null; | |
}); | |
if (error) { | |
throw error; | |
} | |
return res; | |
}; | |
export const runWebSearch = async ( | |
token: string, | |
query: string, | |
collection_name?: string | |
): Promise<SearchDocument | null> => { | |
let error = null; | |
const res = await fetch(`${RAG_API_BASE_URL}/web/search`, { | |
method: 'POST', | |
headers: { | |
'Content-Type': 'application/json', | |
Authorization: `Bearer ${token}` | |
}, | |
body: JSON.stringify({ | |
query, | |
collection_name: collection_name ?? '' | |
}) | |
}) | |
.then(async (res) => { | |
if (!res.ok) throw await res.json(); | |
return res.json(); | |
}) | |
.catch((err) => { | |
console.log(err); | |
error = err.detail; | |
return null; | |
}); | |
if (error) { | |
throw error; | |
} | |
return res; | |
}; | |
export interface SearchDocument { | |
status: boolean; | |
collection_name: string; | |
filenames: string[]; | |
} | |