mirror of
https://github.com/RYDE-WORK/Langchain-Chatchat.git
synced 2026-01-19 21:37:20 +08:00
147 lines
4.7 KiB
TypeScript
147 lines
4.7 KiB
TypeScript
|
|
import type {
|
|
KnowledgeList, KnowledgeFormFields, Reseponse,
|
|
KnowledgeFilesList, KnowledgeDelDocsParams, KnowledgeDelDocsRes,
|
|
KnowledgeRebuildVectorParams,
|
|
ReAddVectorDBParams, ReAddVectorDBRes,
|
|
KnowledgeUplodDocsParams, KnowledgeUplodDocsRes
|
|
} from '@/types/knowledge';
|
|
|
|
import { fetchSSE, FetchSSEOptions } from '@/utils/fetch';
|
|
import { API_ENDPOINTS } from './_url';
|
|
|
|
class KnowledgeService {
|
|
getList = async (): Promise<Reseponse<KnowledgeList>> => {
|
|
const res = await fetch(`${API_ENDPOINTS.knowledgeList}`);
|
|
const data = await res.json();
|
|
return data;
|
|
};
|
|
|
|
add = async (formValues: KnowledgeFormFields) => {
|
|
const res = await fetch(`${API_ENDPOINTS.knowledgeAdd}`, {
|
|
body: JSON.stringify(formValues),
|
|
headers: {
|
|
'Content-Type': 'application/json',
|
|
},
|
|
method: 'POST',
|
|
});
|
|
return res.json();
|
|
};
|
|
update = async (formValues: Partial<KnowledgeFormFields>) => {
|
|
const res = await fetch(`${API_ENDPOINTS.knowledgeUpdate}`, {
|
|
body: JSON.stringify(formValues),
|
|
headers: {
|
|
'Content-Type': 'application/json',
|
|
},
|
|
method: 'POST',
|
|
});
|
|
return res.json();
|
|
};
|
|
|
|
del = async (name: string) => {
|
|
const res = await fetch(`${API_ENDPOINTS.knowledgeDel}`, {
|
|
body: JSON.stringify(name),
|
|
headers: {
|
|
'Content-Type': 'application/json',
|
|
},
|
|
method: 'POST',
|
|
});
|
|
return res.json();
|
|
};
|
|
|
|
getFilesList = (name: string): () => Promise<Reseponse<KnowledgeFilesList>> => {
|
|
const queryString = new URLSearchParams({
|
|
knowledge_base_name: name
|
|
}).toString();
|
|
return async () => {
|
|
const res = await fetch(`${API_ENDPOINTS.knowledgeFilesList}?${queryString}`);
|
|
const data = await res.json();
|
|
return data;
|
|
}
|
|
};
|
|
|
|
uploadDocs = async (formData: FormData): Promise<Reseponse<{}>> => {
|
|
const res = await fetch(`${API_ENDPOINTS.knowledgeUploadDocs}`, {
|
|
body: formData,
|
|
method: 'POST',
|
|
});
|
|
return res.json();
|
|
};
|
|
|
|
delInknowledgeDB = async (params: KnowledgeDelDocsParams): Promise<Reseponse<KnowledgeDelDocsRes>> => {
|
|
const res = await fetch(`${API_ENDPOINTS.knowledgeDelInknowledgeDB}`, {
|
|
body: JSON.stringify({
|
|
...params,
|
|
}),
|
|
headers: {
|
|
'Content-Type': 'application/json',
|
|
},
|
|
method: 'POST',
|
|
});
|
|
return res.json();
|
|
};
|
|
|
|
rebuildVectorDB = async (params: KnowledgeRebuildVectorParams, opts:
|
|
{ onFinish: FetchSSEOptions["onFinish"]; onMessageHandle: FetchSSEOptions["onMessageHandle"] }
|
|
) => {
|
|
const { onFinish, onMessageHandle } = opts;
|
|
fetchSSE(async () => await fetch(`${API_ENDPOINTS.knowledgeRebuildVectorDB}`, {
|
|
body: JSON.stringify({
|
|
...params,
|
|
}),
|
|
headers: {
|
|
'Content-Type': 'application/json',
|
|
},
|
|
method: 'POST'
|
|
}), {
|
|
onErrorHandle: (error) => {
|
|
throw new Error('请求错误:' + error);
|
|
},
|
|
onFinish,
|
|
onMessageHandle
|
|
})
|
|
};
|
|
|
|
delVectorDocs = async (params: KnowledgeDelDocsParams): Promise<Reseponse<KnowledgeDelDocsRes>> => {
|
|
const res = await fetch(`${API_ENDPOINTS.knowledgeDelVectorDB}`, {
|
|
body: JSON.stringify({
|
|
...params,
|
|
}),
|
|
headers: {
|
|
'Content-Type': 'application/json',
|
|
},
|
|
method: 'POST',
|
|
});
|
|
return res.json();
|
|
};
|
|
|
|
downloadDocs = async (kbName: string, docName: string): Promise<Reseponse<{}>> => {
|
|
const queryString = new URLSearchParams({
|
|
knowledge_base_name: kbName,
|
|
file_name: docName,
|
|
preview: 'false'
|
|
}).toString();
|
|
const res = await fetch(`${API_ENDPOINTS.knowledgeDownloadDocs}?${queryString}`);
|
|
console.log('res', res)
|
|
const data = await res.json();
|
|
return data;
|
|
};
|
|
reAddVectorDB = async (params: ReAddVectorDBParams): Promise<Reseponse<ReAddVectorDBRes>> => {
|
|
const res = await fetch(`${API_ENDPOINTS.knowledgeReAddVectorDB}`, {
|
|
body: JSON.stringify({
|
|
...params,
|
|
}),
|
|
headers: {
|
|
'Content-Type': 'application/json',
|
|
},
|
|
method: 'POST',
|
|
});
|
|
return res.json();
|
|
};
|
|
|
|
|
|
|
|
}
|
|
|
|
export const knowledgeService = new KnowledgeService();
|