mirror of
https://github.com/TriliumNext/Notes.git
synced 2025-09-23 04:35:02 +08:00
feat(llm): remove LLM deprecated functions
This commit is contained in:
parent
3a4bb47cc1
commit
c26b74495c
@ -408,7 +408,7 @@ async function reprocessAllNotes(req: Request, res: Response) {
|
||||
try {
|
||||
// Wrap the operation in cls.init to ensure proper context
|
||||
cls.init(async () => {
|
||||
await vectorStore.reprocessAllNotes();
|
||||
await indexService.reprocessAllNotes();
|
||||
log.info("Embedding reprocessing completed successfully");
|
||||
});
|
||||
} catch (error: any) {
|
||||
|
@ -512,7 +512,7 @@ export class AIServiceManager implements IAIServiceManager {
|
||||
if (!contextNotes || contextNotes.length === 0) {
|
||||
try {
|
||||
// Get the default LLM service for context enhancement
|
||||
const provider = this.getPreferredProvider();
|
||||
const provider = this.getSelectedProvider();
|
||||
const llmService = await this.getService(provider);
|
||||
|
||||
// Find relevant notes
|
||||
@ -596,9 +596,9 @@ export class AIServiceManager implements IAIServiceManager {
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the preferred provider based on configuration (sync version for compatibility)
|
||||
* Get the selected provider based on configuration (sync version for compatibility)
|
||||
*/
|
||||
getPreferredProvider(): string {
|
||||
getSelectedProvider(): string {
|
||||
this.ensureInitialized();
|
||||
|
||||
// Return the first available provider in the order
|
||||
@ -803,8 +803,8 @@ export default {
|
||||
async getService(provider?: string): Promise<AIService> {
|
||||
return getInstance().getService(provider);
|
||||
},
|
||||
getPreferredProvider(): string {
|
||||
return getInstance().getPreferredProvider();
|
||||
getSelectedProvider(): string {
|
||||
return getInstance().getSelectedProvider();
|
||||
},
|
||||
isProviderAvailable(provider: string): boolean {
|
||||
return getInstance().isProviderAvailable(provider);
|
||||
|
@ -14,7 +14,7 @@ import type { LLMStreamMessage } from "../interfaces/chat_ws_messages.js";
|
||||
import chatStorageService from '../chat_storage_service.js';
|
||||
import {
|
||||
isAIEnabled,
|
||||
getFirstValidModelConfig,
|
||||
getSelectedModelConfig,
|
||||
} from '../config/configuration_helpers.js';
|
||||
|
||||
/**
|
||||
@ -419,7 +419,7 @@ class RestChatService {
|
||||
*/
|
||||
async getPreferredModel(): Promise<string | undefined> {
|
||||
try {
|
||||
const validConfig = await getFirstValidModelConfig();
|
||||
const validConfig = await getSelectedModelConfig();
|
||||
if (!validConfig) {
|
||||
log.error('No valid AI model configuration found');
|
||||
return undefined;
|
||||
|
@ -150,47 +150,3 @@ export async function getSelectedModelConfig(): Promise<{ model: string; provide
|
||||
return await getValidModelConfig(selectedProvider);
|
||||
}
|
||||
|
||||
// Legacy support functions - these maintain backwards compatibility but now use single provider logic
|
||||
/**
|
||||
* @deprecated Use getSelectedProvider() instead
|
||||
*/
|
||||
export async function getProviderPrecedence(): Promise<ProviderType[]> {
|
||||
const selected = await getSelectedProvider();
|
||||
return selected ? [selected] : [];
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Use getSelectedProvider() instead
|
||||
*/
|
||||
export async function getPreferredProvider(): Promise<ProviderType | null> {
|
||||
return await getSelectedProvider();
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Use getSelectedEmbeddingProvider() instead
|
||||
*/
|
||||
export async function getEmbeddingProviderPrecedence(): Promise<string[]> {
|
||||
const selected = await getSelectedEmbeddingProvider();
|
||||
return selected ? [selected] : [];
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Use getSelectedEmbeddingProvider() instead
|
||||
*/
|
||||
export async function getPreferredEmbeddingProvider(): Promise<string | null> {
|
||||
return await getSelectedEmbeddingProvider();
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Use getAvailableSelectedProvider() instead
|
||||
*/
|
||||
export async function getFirstAvailableProvider(): Promise<ProviderType | null> {
|
||||
return await getAvailableSelectedProvider();
|
||||
}
|
||||
|
||||
/**
|
||||
* @deprecated Use getSelectedModelConfig() instead
|
||||
*/
|
||||
export async function getFirstValidModelConfig(): Promise<{ model: string; provider: ProviderType } | null> {
|
||||
return await getSelectedModelConfig();
|
||||
}
|
@ -1,6 +1,6 @@
|
||||
import log from '../../../log.js';
|
||||
import { getEmbeddingProvider, getEnabledEmbeddingProviders } from '../../providers/providers.js';
|
||||
import { getSelectedEmbeddingProvider } from '../../config/configuration_helpers.js';
|
||||
import { getSelectedEmbeddingProvider as getSelectedEmbeddingProviderName } from '../../config/configuration_helpers.js';
|
||||
|
||||
/**
|
||||
* Manages embedding providers for context services
|
||||
@ -12,10 +12,10 @@ export class ProviderManager {
|
||||
*
|
||||
* @returns The selected embedding provider or null if none available
|
||||
*/
|
||||
async getPreferredEmbeddingProvider(): Promise<any> {
|
||||
async getSelectedEmbeddingProvider(): Promise<any> {
|
||||
try {
|
||||
// Get the selected embedding provider
|
||||
const selectedProvider = await getSelectedEmbeddingProvider();
|
||||
const selectedProvider = await getSelectedEmbeddingProviderName();
|
||||
|
||||
if (selectedProvider) {
|
||||
const provider = await getEmbeddingProvider(selectedProvider);
|
||||
@ -51,7 +51,7 @@ export class ProviderManager {
|
||||
async generateQueryEmbedding(query: string): Promise<Float32Array | null> {
|
||||
try {
|
||||
// Get the preferred embedding provider
|
||||
const provider = await this.getPreferredEmbeddingProvider();
|
||||
const provider = await this.getSelectedEmbeddingProvider();
|
||||
if (!provider) {
|
||||
log.error('No embedding provider available');
|
||||
return null;
|
||||
|
@ -58,7 +58,7 @@ export class ContextService {
|
||||
this.initPromise = (async () => {
|
||||
try {
|
||||
// Initialize provider
|
||||
const provider = await providerManager.getPreferredEmbeddingProvider();
|
||||
const provider = await providerManager.getSelectedEmbeddingProvider();
|
||||
if (!provider) {
|
||||
throw new Error(`No embedding provider available. Could not initialize context service.`);
|
||||
}
|
||||
@ -224,7 +224,7 @@ export class ContextService {
|
||||
log.info(`Final combined results: ${relevantNotes.length} relevant notes`);
|
||||
|
||||
// Step 4: Build context from the notes
|
||||
const provider = await providerManager.getPreferredEmbeddingProvider();
|
||||
const provider = await providerManager.getSelectedEmbeddingProvider();
|
||||
const providerId = provider?.name || 'default';
|
||||
|
||||
const context = await contextFormatter.buildContextFromNotes(
|
||||
|
@ -79,7 +79,7 @@ export class VectorSearchService {
|
||||
}
|
||||
|
||||
// Get provider information
|
||||
const provider = await providerManager.getPreferredEmbeddingProvider();
|
||||
const provider = await providerManager.getSelectedEmbeddingProvider();
|
||||
if (!provider) {
|
||||
log.error('No embedding provider available');
|
||||
return [];
|
||||
@ -280,7 +280,7 @@ export class VectorSearchService {
|
||||
}
|
||||
|
||||
// Get provider information
|
||||
const provider = await providerManager.getPreferredEmbeddingProvider();
|
||||
const provider = await providerManager.getSelectedEmbeddingProvider();
|
||||
if (!provider) {
|
||||
log.error('No embedding provider available');
|
||||
return [];
|
||||
|
@ -64,8 +64,6 @@ export const {
|
||||
|
||||
export const {
|
||||
getEmbeddingStats,
|
||||
reprocessAllNotes,
|
||||
queueNotesForMissingEmbeddings,
|
||||
cleanupEmbeddings
|
||||
} = stats;
|
||||
|
||||
@ -107,8 +105,6 @@ export default {
|
||||
|
||||
// Stats and maintenance
|
||||
getEmbeddingStats: stats.getEmbeddingStats,
|
||||
reprocessAllNotes: stats.reprocessAllNotes,
|
||||
queueNotesForMissingEmbeddings: stats.queueNotesForMissingEmbeddings,
|
||||
cleanupEmbeddings: stats.cleanupEmbeddings,
|
||||
|
||||
// Index operations
|
||||
|
@ -1,14 +1,5 @@
|
||||
import sql from "../../../services/sql.js";
|
||||
import log from "../../../services/log.js";
|
||||
import indexService from '../index_service.js';
|
||||
|
||||
/**
|
||||
* Reprocess all notes to update embeddings
|
||||
* @deprecated Use indexService.reprocessAllNotes() directly instead
|
||||
*/
|
||||
export async function reprocessAllNotes() {
|
||||
return indexService.reprocessAllNotes();
|
||||
}
|
||||
|
||||
/**
|
||||
* Get current embedding statistics
|
||||
@ -64,14 +55,6 @@ export async function getEmbeddingStats() {
|
||||
};
|
||||
}
|
||||
|
||||
/**
|
||||
* Queue notes that don't have embeddings for current provider settings
|
||||
* @deprecated Use indexService.queueNotesForMissingEmbeddings() directly instead
|
||||
*/
|
||||
export async function queueNotesForMissingEmbeddings() {
|
||||
return indexService.queueNotesForMissingEmbeddings();
|
||||
}
|
||||
|
||||
/**
|
||||
* Cleanup function to remove stale or unused embeddings
|
||||
*/
|
||||
|
@ -11,7 +11,7 @@ import { SEARCH_CONSTANTS } from '../constants/search_constants.js';
|
||||
import type { NoteEmbeddingContext } from "./embeddings_interface.js";
|
||||
import becca from "../../../becca/becca.js";
|
||||
import { isNoteExcludedFromAIById } from "../utils/ai_exclusion_utils.js";
|
||||
import { getEmbeddingProviderPrecedence } from '../config/configuration_helpers.js';
|
||||
import { getSelectedEmbeddingProvider } from '../config/configuration_helpers.js';
|
||||
|
||||
interface Similarity {
|
||||
noteId: string;
|
||||
@ -277,9 +277,10 @@ export async function findSimilarNotes(
|
||||
log.info('No embeddings found for specified provider, trying fallback providers...');
|
||||
|
||||
// Use the new configuration system - no string parsing!
|
||||
const preferredProviders = await getEmbeddingProviderPrecedence();
|
||||
const selectedProvider = await getSelectedEmbeddingProvider();
|
||||
const preferredProviders = selectedProvider ? [selectedProvider] : [];
|
||||
|
||||
log.info(`Using provider precedence: ${preferredProviders.join(', ')}`);
|
||||
log.info(`Using selected provider: ${selectedProvider || 'none'}`);
|
||||
|
||||
// Try providers in precedence order
|
||||
for (const provider of preferredProviders) {
|
||||
|
@ -266,7 +266,7 @@ export class IndexService {
|
||||
this.indexRebuildTotal = totalNotes;
|
||||
|
||||
log.info("No embeddings found, starting full embedding generation first");
|
||||
await vectorStore.reprocessAllNotes();
|
||||
await this.reprocessAllNotes();
|
||||
log.info("Full embedding generation initiated");
|
||||
} else {
|
||||
// For index rebuild, use the number of embeddings as the total
|
||||
@ -293,7 +293,7 @@ export class IndexService {
|
||||
// Only start indexing if we're below 90% completion or if embeddings exist but need optimization
|
||||
if (stats.percentComplete < 90) {
|
||||
log.info("Embedding coverage below 90%, starting full embedding generation");
|
||||
await vectorStore.reprocessAllNotes();
|
||||
await this.reprocessAllNotes();
|
||||
log.info("Full embedding generation initiated");
|
||||
} else {
|
||||
log.info(`Embedding coverage at ${stats.percentComplete}%, starting index optimization`);
|
||||
|
@ -30,7 +30,7 @@ export interface AIServiceManagerConfig {
|
||||
export interface IAIServiceManager {
|
||||
getService(provider?: string): Promise<AIService>;
|
||||
getAvailableProviders(): string[];
|
||||
getPreferredProvider(): string;
|
||||
getSelectedProvider(): string;
|
||||
isProviderAvailable(provider: string): boolean;
|
||||
getProviderMetadata(provider: string): ProviderMetadata | null;
|
||||
getAIEnabled(): boolean;
|
||||
|
@ -50,7 +50,7 @@ export class SemanticContextExtractionStage extends BasePipelineStage<SemanticCo
|
||||
}
|
||||
|
||||
// Step 2: Format search results into a context string
|
||||
const provider = await providerManager.getPreferredEmbeddingProvider();
|
||||
const provider = await providerManager.getSelectedEmbeddingProvider();
|
||||
const providerId = provider?.name || 'default';
|
||||
|
||||
const context = await contextFormatter.buildContextFromNotes(
|
||||
|
@ -328,17 +328,6 @@ export async function getEmbeddingProviderConfigs() {
|
||||
return await sql.getRows("SELECT * FROM embedding_providers ORDER BY priority DESC");
|
||||
}
|
||||
|
||||
/**
|
||||
* Initialize the default embedding providers
|
||||
* @deprecated - Use on-demand provider creation instead
|
||||
*/
|
||||
export async function initializeDefaultProviders() {
|
||||
// This function is now deprecated in favor of on-demand provider creation
|
||||
// The createProvidersFromCurrentOptions() function should be used instead
|
||||
log.info('initializeDefaultProviders called - using on-demand provider creation instead');
|
||||
return await createProvidersFromCurrentOptions();
|
||||
}
|
||||
|
||||
export default {
|
||||
registerEmbeddingProvider,
|
||||
unregisterEmbeddingProvider,
|
||||
@ -350,8 +339,7 @@ export default {
|
||||
createEmbeddingProviderConfig,
|
||||
updateEmbeddingProviderConfig,
|
||||
deleteEmbeddingProviderConfig,
|
||||
getEmbeddingProviderConfigs,
|
||||
initializeDefaultProviders
|
||||
getEmbeddingProviderConfigs
|
||||
};
|
||||
|
||||
/**
|
||||
|
Loading…
x
Reference in New Issue
Block a user