mirror of
https://github.com/TriliumNext/Notes.git
synced 2025-11-01 21:41:45 +08:00
clean up unused options
This commit is contained in:
parent
afe1de5ed3
commit
49076e3cf6
@ -757,9 +757,6 @@ export default class LlmChatPanel extends BasicWidget {
|
||||
return;
|
||||
}
|
||||
|
||||
// Get the default embedding provider
|
||||
const defaultProvider = options.get('embeddingsDefaultProvider') || 'openai';
|
||||
|
||||
// Get provider precedence
|
||||
const precedenceStr = options.get('aiProviderPrecedence') || 'openai,anthropic,ollama';
|
||||
let precedenceList: string[] = [];
|
||||
@ -800,8 +797,6 @@ export default class LlmChatPanel extends BasicWidget {
|
||||
enabledProviders.push('local');
|
||||
|
||||
// Perform validation checks
|
||||
const defaultInPrecedence = precedenceList.includes(defaultProvider);
|
||||
const defaultIsEnabled = enabledProviders.includes(defaultProvider);
|
||||
const allPrecedenceEnabled = precedenceList.every((p: string) => enabledProviders.includes(p));
|
||||
|
||||
// Get embedding queue status
|
||||
@ -820,19 +815,11 @@ export default class LlmChatPanel extends BasicWidget {
|
||||
const hasEmbeddingsInQueue = queuedNotes > 0;
|
||||
|
||||
// Show warning if there are issues
|
||||
if (!defaultInPrecedence || !defaultIsEnabled || !allPrecedenceEnabled || hasEmbeddingsInQueue) {
|
||||
if (!allPrecedenceEnabled || hasEmbeddingsInQueue) {
|
||||
let message = '<i class="bx bx-error-circle me-2"></i><strong>AI Provider Configuration Issues</strong>';
|
||||
|
||||
message += '<ul class="mb-1 ps-4">';
|
||||
|
||||
if (!defaultInPrecedence) {
|
||||
message += `<li>The default embedding provider "${defaultProvider}" is not in your provider precedence list.</li>`;
|
||||
}
|
||||
|
||||
if (!defaultIsEnabled) {
|
||||
message += `<li>The default embedding provider "${defaultProvider}" is not enabled.</li>`;
|
||||
}
|
||||
|
||||
if (!allPrecedenceEnabled) {
|
||||
const disabledProviders = precedenceList.filter((p: string) => !enabledProviders.includes(p));
|
||||
message += `<li>The following providers in your precedence list are not enabled: ${disabledProviders.join(', ')}.</li>`;
|
||||
|
||||
@ -132,9 +132,8 @@ export default class AiSettingsWidget extends OptionsWidget {
|
||||
this.setupChangeHandler('.enable-automatic-indexing', 'enableAutomaticIndexing', false, true);
|
||||
this.setupChangeHandler('.embedding-similarity-threshold', 'embeddingSimilarityThreshold');
|
||||
this.setupChangeHandler('.max-notes-per-llm-query', 'maxNotesPerLlmQuery');
|
||||
this.setupChangeHandler('.embedding-default-provider', 'embeddingsDefaultProvider', true);
|
||||
this.setupChangeHandler('.embedding-dimension-strategy', 'embeddingDimensionStrategy');
|
||||
this.setupChangeHandler('.embedding-provider-precedence', 'embeddingProviderPrecedence', true);
|
||||
this.setupChangeHandler('.embedding-dimension-strategy', 'embeddingDimensionStrategy');
|
||||
|
||||
// No sortable behavior needed anymore
|
||||
|
||||
@ -504,4 +503,4 @@ export default class AiSettingsWidget extends OptionsWidget {
|
||||
this.indexRebuildRefreshInterval = null;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -83,36 +83,32 @@ const ALLOWED_OPTIONS = new Set<OptionNames>([
|
||||
|
||||
// AI/LLM integration options
|
||||
"aiEnabled",
|
||||
"aiTemperature",
|
||||
"aiSystemPrompt",
|
||||
"aiProviderPrecedence",
|
||||
"openaiApiKey",
|
||||
"openaiBaseUrl",
|
||||
"openaiDefaultModel",
|
||||
"openaiEmbeddingModel",
|
||||
"openaiBaseUrl",
|
||||
"anthropicApiKey",
|
||||
"anthropicDefaultModel",
|
||||
"voyageEmbeddingModel",
|
||||
"voyageApiKey",
|
||||
"anthropicBaseUrl",
|
||||
"ollamaEnabled",
|
||||
"anthropicDefaultModel",
|
||||
"voyageApiKey",
|
||||
"voyageEmbeddingModel",
|
||||
"ollamaBaseUrl",
|
||||
"ollamaDefaultModel",
|
||||
"ollamaEmbeddingModel",
|
||||
"aiProviderPrecedence",
|
||||
"aiTemperature",
|
||||
"aiSystemPrompt",
|
||||
|
||||
// Embedding options
|
||||
"embeddingAutoUpdateEnabled",
|
||||
"embeddingBatchSize",
|
||||
"embeddingUpdateInterval",
|
||||
"embeddingDefaultDimension",
|
||||
"embeddingsDefaultProvider",
|
||||
"embeddingDimensionStrategy",
|
||||
"embeddingProviderPrecedence",
|
||||
"embeddingSimilarityThreshold",
|
||||
"maxNotesPerLlmQuery",
|
||||
"embeddingBatchSize",
|
||||
"embeddingUpdateInterval",
|
||||
"enableAutomaticIndexing",
|
||||
"embeddingGenerationLocation",
|
||||
"embeddingDimensionStrategy",
|
||||
"splitEditorOrientation",
|
||||
"maxNotesPerLlmQuery",
|
||||
|
||||
// Embedding options
|
||||
"embeddingDefaultDimension",
|
||||
"mfaEnabled",
|
||||
"mfaMethod"
|
||||
]);
|
||||
|
||||
@ -115,9 +115,6 @@ export class AIServiceManager implements IAIServiceManager {
|
||||
return null;
|
||||
}
|
||||
|
||||
// Get default embedding provider
|
||||
const defaultProviderName = await options.getOption('embeddingsDefaultProvider') || 'openai';
|
||||
|
||||
// Parse provider precedence list (similar to updateProviderOrder)
|
||||
let precedenceList: string[] = [];
|
||||
const precedenceOption = await options.getOption('aiProviderPrecedence');
|
||||
@ -138,28 +135,14 @@ export class AIServiceManager implements IAIServiceManager {
|
||||
const enabledProviders = await getEnabledEmbeddingProviders();
|
||||
const enabledProviderNames = enabledProviders.map(p => p.name);
|
||||
|
||||
// Check if default provider is in precedence list
|
||||
const defaultInPrecedence = precedenceList.includes(defaultProviderName);
|
||||
|
||||
// Check if default provider is enabled
|
||||
const defaultIsEnabled = enabledProviderNames.includes(defaultProviderName);
|
||||
|
||||
// Check if all providers in precedence list are enabled
|
||||
const allPrecedenceEnabled = precedenceList.every(p =>
|
||||
enabledProviderNames.includes(p) || p === 'local');
|
||||
|
||||
// Return warning message if there are issues
|
||||
if (!defaultInPrecedence || !defaultIsEnabled || !allPrecedenceEnabled) {
|
||||
if (!allPrecedenceEnabled) {
|
||||
let message = 'There are issues with your AI provider configuration:';
|
||||
|
||||
if (!defaultInPrecedence) {
|
||||
message += `\n• The default embedding provider "${defaultProviderName}" is not in your provider precedence list.`;
|
||||
}
|
||||
|
||||
if (!defaultIsEnabled) {
|
||||
message += `\n• The default embedding provider "${defaultProviderName}" is not enabled.`;
|
||||
}
|
||||
|
||||
if (!allPrecedenceEnabled) {
|
||||
const disabledProviders = precedenceList.filter(p =>
|
||||
!enabledProviderNames.includes(p) && p !== 'local');
|
||||
@ -354,7 +337,21 @@ export class AIServiceManager implements IAIServiceManager {
|
||||
return;
|
||||
}
|
||||
|
||||
const preferredProvider = options.getOption('embeddingsDefaultProvider') || 'openai';
|
||||
// Get provider precedence list
|
||||
const precedenceOption = await options.getOption('embeddingProviderPrecedence');
|
||||
let precedenceList: string[] = [];
|
||||
|
||||
if (precedenceOption) {
|
||||
if (precedenceOption.startsWith('[') && precedenceOption.endsWith(']')) {
|
||||
precedenceList = JSON.parse(precedenceOption);
|
||||
} else if (typeof precedenceOption === 'string') {
|
||||
if (precedenceOption.includes(',')) {
|
||||
precedenceList = precedenceOption.split(',').map(p => p.trim());
|
||||
} else {
|
||||
precedenceList = [precedenceOption];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Check if we have enabled providers
|
||||
const enabledProviders = await getEnabledEmbeddingProviders();
|
||||
@ -364,13 +361,6 @@ export class AIServiceManager implements IAIServiceManager {
|
||||
return;
|
||||
}
|
||||
|
||||
// Validate that preferred provider is enabled
|
||||
const isPreferredEnabled = enabledProviders.some(p => p.name === preferredProvider);
|
||||
|
||||
if (!isPreferredEnabled) {
|
||||
log.info(`Preferred provider "${preferredProvider}" is not enabled. Using first available.`);
|
||||
}
|
||||
|
||||
// Initialize embedding providers
|
||||
log.info('Embedding providers initialized successfully');
|
||||
} catch (error: any) {
|
||||
|
||||
@ -20,44 +20,32 @@ export class ProviderManager {
|
||||
*/
|
||||
async getPreferredEmbeddingProvider(): Promise<any> {
|
||||
try {
|
||||
// First try user's configured default provider
|
||||
const providerId = await options.getOption('embeddingsDefaultProvider');
|
||||
if (providerId) {
|
||||
// Try to get providers based on precedence list
|
||||
const precedenceOption = await options.getOption('embeddingProviderPrecedence');
|
||||
let precedenceList: string[] = [];
|
||||
|
||||
if (precedenceOption) {
|
||||
if (precedenceOption.startsWith('[') && precedenceOption.endsWith(']')) {
|
||||
precedenceList = JSON.parse(precedenceOption);
|
||||
} else if (typeof precedenceOption === 'string') {
|
||||
if (precedenceOption.includes(',')) {
|
||||
precedenceList = precedenceOption.split(',').map(p => p.trim());
|
||||
} else {
|
||||
precedenceList = [precedenceOption];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Try each provider in the precedence list
|
||||
for (const providerId of precedenceList) {
|
||||
const provider = await getEmbeddingProvider(providerId);
|
||||
if (provider) {
|
||||
log.info(`Using configured embedding provider: ${providerId}`);
|
||||
log.info(`Using embedding provider from precedence list: ${providerId}`);
|
||||
return provider;
|
||||
}
|
||||
}
|
||||
|
||||
// Then try OpenAI
|
||||
const openaiKey = await options.getOption('openaiApiKey');
|
||||
if (openaiKey) {
|
||||
const provider = await getEmbeddingProvider('openai');
|
||||
if (provider) {
|
||||
log.info('Using OpenAI embeddings provider');
|
||||
return provider;
|
||||
}
|
||||
}
|
||||
|
||||
// Try Anthropic
|
||||
const anthropicKey = await options.getOption('anthropicApiKey');
|
||||
if (anthropicKey) {
|
||||
const provider = await getEmbeddingProvider('anthropic');
|
||||
if (provider) {
|
||||
log.info('Using Anthropic embeddings provider');
|
||||
return provider;
|
||||
}
|
||||
}
|
||||
|
||||
// Try Ollama
|
||||
const provider = await getEmbeddingProvider('ollama');
|
||||
if (provider) {
|
||||
log.info('Using Ollama embeddings provider');
|
||||
return provider;
|
||||
}
|
||||
|
||||
// If no preferred providers, get any enabled provider
|
||||
// If no provider from precedence list is available, try any enabled provider
|
||||
const providers = await getEnabledEmbeddingProviders();
|
||||
if (providers.length > 0) {
|
||||
log.info(`Using available embedding provider: ${providers[0].name}`);
|
||||
|
||||
@ -197,12 +197,11 @@ const defaultOptions: DefaultOption[] = [
|
||||
{ name: "aiTemperature", value: "0.7", isSynced: true },
|
||||
{ name: "aiSystemPrompt", value: "", isSynced: true },
|
||||
{ name: "aiProviderPrecedence", value: "openai,anthropic,ollama", isSynced: true },
|
||||
{ name: "embeddingsDefaultProvider", value: "openai", isSynced: true },
|
||||
{ name: "embeddingProviderPrecedence", value: "openai,voyage,ollama", isSynced: true },
|
||||
{ name: "embeddingDimensionStrategy", value: "native", isSynced: true },
|
||||
{ name: "embeddingDimensionStrategy", value: "auto", isSynced: true },
|
||||
{ name: "embeddingProviderPrecedence", value: "openai,voyage,ollama,local", isSynced: true },
|
||||
{ name: "embeddingSimilarityThreshold", value: "0.75", isSynced: true },
|
||||
{ name: "enableAutomaticIndexing", value: "true", isSynced: true },
|
||||
{ name: "embeddingSimilarityThreshold", value: "0.65", isSynced: true },
|
||||
{ name: "maxNotesPerLlmQuery", value: "10", isSynced: true },
|
||||
{ name: "maxNotesPerLlmQuery", value: "3", isSynced: true },
|
||||
{ name: "embeddingBatchSize", value: "10", isSynced: true },
|
||||
{ name: "embeddingUpdateInterval", value: "5000", isSynced: true },
|
||||
{ name: "embeddingDefaultDimension", value: "1536", isSynced: true },
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user