Skip to content

Commit 8bcca1c

Browse files
committed
📦 NEW: Batch delete documents from memory
1 parent 0d965fa commit 8bcca1c

File tree

1 file changed

+40
-47
lines changed

1 file changed

+40
-47
lines changed

‎packages/baseai/src/deploy/index.ts

Lines changed: 40 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -681,74 +681,67 @@ export async function uploadDocumentsToMemory({
681681
documents: MemoryDocumentI[];
682682
name: string;
683683
account: Account;
684+
}) {
685+
for (const doc of documents) {
686+
try {
687+
p.log.message(`Uploading document: ${doc.name} ....`);
688+
await new Promise(resolve => setTimeout(resolve, 800)); // To avoid rate limiting
689+
const signedUrl = await getSignedUploadUrl({
690+
documentName: doc.name,
691+
memoryName: name,
692+
account
693+
});
694+
695+
const uploadResponse = await uploadDocument(signedUrl, doc.blob);
696+
dlog(`Upload response status: ${uploadResponse.status}`);
697+
698+
p.log.message(`Uploaded document: ${doc.name}`);
699+
} catch (error) {
700+
throw error;
701+
}
702+
}
703+
}
704+
705+
export async function deleteDocumentsFromMemory({
706+
documents,
707+
name,
708+
account
709+
}: {
710+
documents: string[];
711+
name: string;
712+
account: Account;
684713
}) {
685714
const BATCH_SIZE = 5; // Number of concurrent uploads
686715
const RATE_LIMIT_DELAY = 1000; // 1 second delay between requests
687716

688-
// Process documents in batches to avoid rate limiting
717+
p.log.info(`Deleting ${documents.length} documents from memory: ${name}`);
718+
689719
for (let i = 0; i < documents.length; i += BATCH_SIZE) {
690720
const batch = documents.slice(i, i + BATCH_SIZE);
691-
692-
const batchUploadPromises = batch.map(async (doc, index) => {
721+
const batchPromises = batch.map(async (doc, index) => {
693722
try {
694-
// Stagger requests within batch
695723
await new Promise(resolve =>
696724
setTimeout(resolve, index * RATE_LIMIT_DELAY)
697725
);
698726

699-
// p.log.message(`Uploading document: ${doc.name} ....`);
700-
const signedUrl = await getSignedUploadUrl({
701-
documentName: doc.name,
727+
// p.log.message(`Deleting document: ${doc}`);
728+
const deleteResponse = await deleteDocument({
729+
documentName: doc,
702730
memoryName: name,
703731
account
704732
});
705733

706-
const uploadResponse = await uploadDocument(
707-
signedUrl,
708-
doc.blob
709-
);
710-
dlog(`Upload response status: ${uploadResponse.status}`);
711-
712-
p.log.message(`Uploaded document: ${doc.name}`);
734+
dlog(`Delete response status: ${deleteResponse.status}`);
735+
p.log.message(`Deleted document: ${doc}`);
736+
return deleteResponse;
713737
} catch (error: any) {
714738
throw new Error(
715-
`Failed to upload ${doc.name}: ${error.message ?? error}`
739+
`Failed to delete ${doc}: ${error.message ?? error}`
716740
);
717741
}
718742
});
719743

720-
await Promise.all(batchUploadPromises);
721-
}
722-
}
723-
724-
export async function deleteDocumentsFromMemory({
725-
documents,
726-
name,
727-
account
728-
}: {
729-
documents: string[];
730-
name: string;
731-
account: Account;
732-
}) {
733-
p.log.info(`Deleting documents from memory: ${name}`);
734-
735-
for (const doc of documents) {
736-
try {
737-
p.log.message(`Deleting document: ${doc} ....`);
738-
await new Promise(resolve => setTimeout(resolve, 800)); // To avoid rate limiting
739-
740-
const deleteResponse = await deleteDocument({
741-
documentName: doc,
742-
memoryName: name,
743-
account
744-
});
745-
746-
dlog(`Delete response status: ${deleteResponse.status}`);
747-
748-
p.log.message(`Deleted document: ${doc}`);
749-
} catch (error) {
750-
throw error;
751-
}
744+
await Promise.all(batchPromises);
752745
}
753746
p.log.info(`Deleted documents from memory: ${name}`);
754747
}

0 commit comments

Comments
 (0)