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