Update knowledge frontend
This commit is contained in:
@@ -143,6 +143,11 @@ const mapKnowledgeBase = (raw: AnyRecord): KnowledgeBase => ({
|
||||
name: readField(raw, ['name'], ''),
|
||||
creator: 'Admin',
|
||||
createdAt: normalizeDateLabel(readField(raw, ['createdAt', 'created_at'], '')),
|
||||
description: readField(raw, ['description'], ''),
|
||||
embeddingModel: readField(raw, ['embeddingModel', 'embedding_model'], ''),
|
||||
chunkSize: Number(readField(raw, ['chunkSize', 'chunk_size'], 500)),
|
||||
chunkOverlap: Number(readField(raw, ['chunkOverlap', 'chunk_overlap'], 50)),
|
||||
status: readField(raw, ['status'], 'active'),
|
||||
documents: readField(raw, ['documents'], []).map((doc: AnyRecord) => mapKnowledgeDocument(doc)),
|
||||
});
|
||||
|
||||
@@ -522,12 +527,37 @@ export const fetchKnowledgeBases = async (): Promise<KnowledgeBase[]> => {
|
||||
return list.map((item) => mapKnowledgeBase(item));
|
||||
};
|
||||
|
||||
export const createKnowledgeBase = async (name: string): Promise<KnowledgeBase> => {
|
||||
const payload = { name, description: '', embeddingModel: 'text-embedding-3-small', chunkSize: 500, chunkOverlap: 50 };
|
||||
export const createKnowledgeBase = async (data: {
|
||||
name: string;
|
||||
description?: string;
|
||||
embeddingModel?: string;
|
||||
chunkSize?: number;
|
||||
chunkOverlap?: number;
|
||||
}): Promise<KnowledgeBase> => {
|
||||
const payload = {
|
||||
name: data.name,
|
||||
description: data.description || '',
|
||||
embeddingModel: data.embeddingModel || 'text-embedding-3-small',
|
||||
chunkSize: data.chunkSize ?? 500,
|
||||
chunkOverlap: data.chunkOverlap ?? 50,
|
||||
};
|
||||
const response = await apiRequest<AnyRecord>('/knowledge/bases', { method: 'POST', body: payload });
|
||||
return mapKnowledgeBase(response);
|
||||
};
|
||||
|
||||
export const updateKnowledgeBase = async (kbId: string, data: Partial<KnowledgeBase>): Promise<KnowledgeBase> => {
|
||||
const payload = {
|
||||
name: data.name,
|
||||
description: data.description,
|
||||
embeddingModel: data.embeddingModel,
|
||||
chunkSize: data.chunkSize,
|
||||
chunkOverlap: data.chunkOverlap,
|
||||
status: data.status,
|
||||
};
|
||||
const response = await apiRequest<AnyRecord>(`/knowledge/bases/${kbId}`, { method: 'PUT', body: payload });
|
||||
return mapKnowledgeBase(response);
|
||||
};
|
||||
|
||||
export const deleteKnowledgeBase = async (kbId: string): Promise<void> => {
|
||||
await apiRequest(`/knowledge/bases/${kbId}`, { method: 'DELETE' });
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user