|
|
const { Workspace } = require("../../models/workspace"); |
|
|
const { Document } = require("../../models/documents"); |
|
|
const { DocumentVectors } = require("../../models/vectors"); |
|
|
const { EventLogs } = require("../../models/eventLogs"); |
|
|
const { purgeEntireVectorCache } = require("../files"); |
|
|
const { getVectorDbClass } = require("../helpers"); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
async function resetAllVectorStores({ vectorDbKey }) { |
|
|
try { |
|
|
const workspaces = await Workspace.where(); |
|
|
purgeEntireVectorCache(); |
|
|
await DocumentVectors.delete(); |
|
|
await Document.delete(); |
|
|
await EventLogs.logEvent("workspace_vectors_reset", { |
|
|
reason: "System vector configuration changed", |
|
|
}); |
|
|
|
|
|
console.log( |
|
|
"Resetting anythingllm managed vector namespaces for", |
|
|
vectorDbKey |
|
|
); |
|
|
const VectorDb = getVectorDbClass(vectorDbKey); |
|
|
|
|
|
if (vectorDbKey === "pgvector") { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
await VectorDb.reset(); |
|
|
} else { |
|
|
for (const workspace of workspaces) { |
|
|
try { |
|
|
await VectorDb["delete-namespace"]({ namespace: workspace.slug }); |
|
|
} catch (e) { |
|
|
console.error(e.message); |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
return true; |
|
|
} catch (error) { |
|
|
console.error("Failed to reset vector stores:", error); |
|
|
return false; |
|
|
} |
|
|
} |
|
|
|
|
|
module.exports = { resetAllVectorStores }; |
|
|
|