2025-03-08 22:04:31 +00:00
|
|
|
import log from "../../log.js";
|
|
|
|
|
import options from "../../options.js";
|
2025-03-12 00:02:02 +00:00
|
|
|
import { initEmbeddings } from "./index.js";
|
2025-03-08 22:04:31 +00:00
|
|
|
import providerManager from "./providers.js";
|
2025-03-16 18:21:43 +00:00
|
|
|
import sqlInit from "../../sql_init.js";
|
2025-03-08 22:04:31 +00:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Initialize the embedding system
|
|
|
|
|
*/
|
|
|
|
|
export async function initializeEmbeddings() {
|
|
|
|
|
try {
|
|
|
|
|
log.info("Initializing embedding system...");
|
|
|
|
|
|
2025-03-16 18:21:43 +00:00
|
|
|
// Check if the database is initialized before proceeding
|
|
|
|
|
if (!sqlInit.isDbInitialized()) {
|
|
|
|
|
log.info("Skipping embedding system initialization as database is not initialized yet.");
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
2025-03-08 22:04:31 +00:00
|
|
|
// Initialize default embedding providers
|
|
|
|
|
await providerManager.initializeDefaultProviders();
|
|
|
|
|
|
|
|
|
|
// Start the embedding system if AI is enabled
|
|
|
|
|
if (await options.getOptionBool('aiEnabled')) {
|
2025-03-12 00:02:02 +00:00
|
|
|
await initEmbeddings();
|
2025-03-08 22:04:31 +00:00
|
|
|
log.info("Embedding system initialized successfully.");
|
|
|
|
|
} else {
|
|
|
|
|
log.info("Embedding system disabled (AI features are turned off).");
|
|
|
|
|
}
|
|
|
|
|
} catch (error: any) {
|
|
|
|
|
log.error(`Error initializing embedding system: ${error.message || error}`);
|
|
|
|
|
}
|
|
|
|
|
}
|