Fix purge extras and mistral vectors

This commit is contained in:
Cohee 2024-02-23 22:37:00 +02:00
parent 9b34ac1bde
commit 737a0bd3ae
2 changed files with 17 additions and 6 deletions

View File

@ -530,10 +530,15 @@ async function queryCollection(collectionId, searchText, topK) {
return results; return results;
} }
/**
* Purges the vector index for a collection.
* @param {string} collectionId Collection ID to purge
* @returns <Promise<boolean>> True if deleted, false if not
*/
async function purgeVectorIndex(collectionId) { async function purgeVectorIndex(collectionId) {
try { try {
if (!settings.enabled_chats) { if (!settings.enabled_chats) {
return; return true;
} }
const response = await fetch('/api/vector/purge', { const response = await fetch('/api/vector/purge', {
@ -549,9 +554,10 @@ async function purgeVectorIndex(collectionId) {
} }
console.log(`Vectors: Purged vector index for collection ${collectionId}`); console.log(`Vectors: Purged vector index for collection ${collectionId}`);
return true;
} catch (error) { } catch (error) {
console.error('Vectors: Failed to purge', error); console.error('Vectors: Failed to purge', error);
return false;
} }
} }
@ -566,8 +572,11 @@ async function onPurgeClick() {
toastr.info('No chat selected', 'Purge aborted'); toastr.info('No chat selected', 'Purge aborted');
return; return;
} }
await purgeVectorIndex(chatId); if (await purgeVectorIndex(chatId)) {
toastr.success('Vector index purged', 'Purge successful'); toastr.success('Vector index purged', 'Purge successful');
} else {
toastr.error('Failed to purge vector index', 'Purge failed');
}
} }
async function onViewStatsClick() { async function onViewStatsClick() {

View File

@ -4,6 +4,9 @@ const express = require('express');
const sanitize = require('sanitize-filename'); const sanitize = require('sanitize-filename');
const { jsonParser } = require('../express-common'); const { jsonParser } = require('../express-common');
// Don't forget to add new sources to the SOURCES array
const SOURCES = ['transformers', 'mistral', 'openai', 'extras', 'palm'];
/** /**
* Gets the vector for the given text from the given source. * Gets the vector for the given text from the given source.
* @param {string} source - The source of the vector * @param {string} source - The source of the vector
@ -261,8 +264,7 @@ router.post('/purge', jsonParser, async (req, res) => {
const collectionId = String(req.body.collectionId); const collectionId = String(req.body.collectionId);
const sources = ['transformers', 'openai', 'palm']; for (const source of SOURCES) {
for (const source of sources) {
const index = await getIndex(collectionId, source, false); const index = await getIndex(collectionId, source, false);
const exists = await index.isIndexCreated(); const exists = await index.isIndexCreated();