mirror of
https://github.com/Mintplex-Labs/anything-llm.git
synced 2025-03-19 00:22:22 +00:00
* wip remove all docs clear vector db on embedder/vector db change * purge all cached docs and remove docs from workspaces on vectordb/embedder change * lint * remove unneeded console log * remove reset vector stores endpoint and move to server side updateENV with postUpdate check * reset embed module * remove unused import * simplify deletion process rescoped document deletion to be more general for speed, everything needs to be reset anyway fixed issue where unembedded docs not in any workspaces, but cached, were not removed * add back missing readme file update warning text modals --------- Co-authored-by: timothycarambat <rambat1010@gmail.com>
79 lines
2 KiB
JavaScript
79 lines
2 KiB
JavaScript
const prisma = require("../utils/prisma");
|
|
const { Document } = require("./documents");
|
|
|
|
const DocumentVectors = {
|
|
bulkInsert: async function (vectorRecords = []) {
|
|
if (vectorRecords.length === 0) return;
|
|
|
|
try {
|
|
const inserts = [];
|
|
vectorRecords.forEach((record) => {
|
|
inserts.push(
|
|
prisma.document_vectors.create({
|
|
data: {
|
|
docId: record.docId,
|
|
vectorId: record.vectorId,
|
|
},
|
|
})
|
|
);
|
|
});
|
|
await prisma.$transaction(inserts);
|
|
return { documentsInserted: inserts.length };
|
|
} catch (error) {
|
|
console.error("Bulk insert failed", error);
|
|
return { documentsInserted: 0 };
|
|
}
|
|
},
|
|
|
|
where: async function (clause = {}, limit) {
|
|
try {
|
|
const results = await prisma.document_vectors.findMany({
|
|
where: clause,
|
|
take: limit || undefined,
|
|
});
|
|
return results;
|
|
} catch (error) {
|
|
console.error("Where query failed", error);
|
|
return [];
|
|
}
|
|
},
|
|
|
|
deleteForWorkspace: async function (workspaceId) {
|
|
const documents = await Document.forWorkspace(workspaceId);
|
|
const docIds = [...new Set(documents.map((doc) => doc.docId))];
|
|
|
|
try {
|
|
await prisma.document_vectors.deleteMany({
|
|
where: { docId: { in: docIds } },
|
|
});
|
|
return true;
|
|
} catch (error) {
|
|
console.error("Delete for workspace failed", error);
|
|
return false;
|
|
}
|
|
},
|
|
|
|
deleteIds: async function (ids = []) {
|
|
try {
|
|
await prisma.document_vectors.deleteMany({
|
|
where: { id: { in: ids } },
|
|
});
|
|
return true;
|
|
} catch (error) {
|
|
console.error("Delete IDs failed", error);
|
|
return false;
|
|
}
|
|
},
|
|
|
|
delete: async function (clause = {}) {
|
|
try {
|
|
await prisma.document_vectors.deleteMany({ where: clause });
|
|
return true;
|
|
} catch (error) {
|
|
console.error("Delete failed", error);
|
|
return false;
|
|
}
|
|
},
|
|
};
|
|
|
|
module.exports = { DocumentVectors };
|