mirror of
				https://github.com/zadam/trilium.git
				synced 2025-11-04 13:39:01 +01:00 
			
		
		
		
	allow specifying openai embedding models too
This commit is contained in:
		
							parent
							
								
									6d146c2f49
								
							
						
					
					
						commit
						d95fd0b049
					
				@ -160,6 +160,16 @@ export default class AiSettingsWidget extends OptionsWidget {
 | 
			
		||||
                            <input class="openai-base-url form-control" type="text">
 | 
			
		||||
                            <div class="form-text">${t("ai_llm.openai_url_description")}</div>
 | 
			
		||||
                        </div>
 | 
			
		||||
 | 
			
		||||
                        <div class="form-group">
 | 
			
		||||
                            <label>${t("ai_llm.embedding_model")}</label>
 | 
			
		||||
                            <select class="openai-embedding-model form-control">
 | 
			
		||||
                                <option value="text-embedding-3-small">text-embedding-3-small (recommended)</option>
 | 
			
		||||
                                <option value="text-embedding-3-large">text-embedding-3-large</option>
 | 
			
		||||
                                <option value="text-embedding-ada-002">text-embedding-ada-002 (legacy)</option>
 | 
			
		||||
                            </select>
 | 
			
		||||
                            <div class="form-text">${t("ai_llm.openai_embedding_model_description")}</div>
 | 
			
		||||
                        </div>
 | 
			
		||||
                    </div>
 | 
			
		||||
                </div>
 | 
			
		||||
                <div class="tab-pane fade" id="nav-anthropic" role="tabpanel" aria-labelledby="nav-anthropic-tab">
 | 
			
		||||
@ -374,6 +384,11 @@ export default class AiSettingsWidget extends OptionsWidget {
 | 
			
		||||
            await this.updateOption('openaiDefaultModel', $openaiDefaultModel.val() as string);
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
        const $openaiEmbeddingModel = this.$widget.find('.openai-embedding-model');
 | 
			
		||||
        $openaiEmbeddingModel.on('change', async () => {
 | 
			
		||||
            await this.updateOption('openaiEmbeddingModel', $openaiEmbeddingModel.val() as string);
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
        const $openaiBaseUrl = this.$widget.find('.openai-base-url');
 | 
			
		||||
        $openaiBaseUrl.on('change', async () => {
 | 
			
		||||
            await this.updateOption('openaiBaseUrl', $openaiBaseUrl.val() as string);
 | 
			
		||||
@ -575,11 +590,12 @@ export default class AiSettingsWidget extends OptionsWidget {
 | 
			
		||||
        this.setCheckboxState(this.$widget.find('.ollama-enabled'), options.ollamaEnabled || 'false');
 | 
			
		||||
 | 
			
		||||
        this.$widget.find('.ai-provider-precedence').val(options.aiProviderPrecedence || 'openai,anthropic,ollama');
 | 
			
		||||
        this.$widget.find('.ai-temperature').val(options.aiTemperature || '0.7');
 | 
			
		||||
        this.$widget.find('.ai-system-prompt').val(options.aiSystemPrompt || '');
 | 
			
		||||
        this.$widget.find('.ai-temperature').val(options.aiTemperature || '0.7');
 | 
			
		||||
 | 
			
		||||
        this.$widget.find('.openai-api-key').val(options.openaiApiKey || '');
 | 
			
		||||
        this.$widget.find('.openai-default-model').val(options.openaiDefaultModel || 'gpt-4o');
 | 
			
		||||
        this.$widget.find('.openai-embedding-model').val(options.openaiEmbeddingModel || 'text-embedding-3-small');
 | 
			
		||||
        this.$widget.find('.openai-base-url').val(options.openaiBaseUrl || 'https://api.openai.com/v1');
 | 
			
		||||
 | 
			
		||||
        this.$widget.find('.anthropic-api-key').val(options.anthropicApiKey || '');
 | 
			
		||||
 | 
			
		||||
@ -83,6 +83,7 @@ const ALLOWED_OPTIONS = new Set([
 | 
			
		||||
    "aiEnabled",
 | 
			
		||||
    "openaiApiKey",
 | 
			
		||||
    "openaiDefaultModel",
 | 
			
		||||
    "openaiEmbeddingModel",
 | 
			
		||||
    "openaiBaseUrl",
 | 
			
		||||
    "anthropicApiKey",
 | 
			
		||||
    "anthropicDefaultModel",
 | 
			
		||||
 | 
			
		||||
@ -224,7 +224,7 @@ export async function initializeDefaultProviders() {
 | 
			
		||||
        // Register OpenAI provider if API key is configured
 | 
			
		||||
        const openaiApiKey = await options.getOption('openaiApiKey');
 | 
			
		||||
        if (openaiApiKey) {
 | 
			
		||||
            const openaiModel = await options.getOption('openaiDefaultModel') || 'text-embedding-3-small';
 | 
			
		||||
            const openaiModel = await options.getOption('openaiEmbeddingModel') || 'text-embedding-3-small';
 | 
			
		||||
            const openaiBaseUrl = await options.getOption('openaiBaseUrl') || 'https://api.openai.com/v1';
 | 
			
		||||
 | 
			
		||||
            registerEmbeddingProvider(new OpenAIEmbeddingProvider({
 | 
			
		||||
 | 
			
		||||
@ -172,6 +172,7 @@ const defaultOptions: DefaultOption[] = [
 | 
			
		||||
    { name: "aiEnabled", value: "false", isSynced: true },
 | 
			
		||||
    { name: "openaiApiKey", value: "", isSynced: false },
 | 
			
		||||
    { name: "openaiDefaultModel", value: "gpt-4o", isSynced: true },
 | 
			
		||||
    { name: "openaiEmbeddingModel", value: "text-embedding-3-small", isSynced: true },
 | 
			
		||||
    { name: "openaiBaseUrl", value: "https://api.openai.com/v1", isSynced: true },
 | 
			
		||||
    { name: "anthropicApiKey", value: "", isSynced: false },
 | 
			
		||||
    { name: "anthropicDefaultModel", value: "claude-3-opus-20240229", isSynced: true },
 | 
			
		||||
 | 
			
		||||
@ -48,8 +48,12 @@ export interface OptionDefinitions extends KeyboardShortcutsOptions<KeyboardActi
 | 
			
		||||
 | 
			
		||||
    // AI/LLM integration options
 | 
			
		||||
    aiEnabled: boolean;
 | 
			
		||||
    aiProvider: string;
 | 
			
		||||
    aiSystemPrompt: string;
 | 
			
		||||
    aiTemperature: string;
 | 
			
		||||
    openaiApiKey: string;
 | 
			
		||||
    openaiDefaultModel: string;
 | 
			
		||||
    openaiEmbeddingModel: string;
 | 
			
		||||
    openaiBaseUrl: string;
 | 
			
		||||
    anthropicApiKey: string;
 | 
			
		||||
    anthropicDefaultModel: string;
 | 
			
		||||
@ -58,9 +62,8 @@ export interface OptionDefinitions extends KeyboardShortcutsOptions<KeyboardActi
 | 
			
		||||
    ollamaBaseUrl: string;
 | 
			
		||||
    ollamaDefaultModel: string;
 | 
			
		||||
    ollamaEmbeddingModel: string;
 | 
			
		||||
    codeOpenAiModel: string;
 | 
			
		||||
    aiProviderPrecedence: string;
 | 
			
		||||
    aiTemperature: string;
 | 
			
		||||
    aiSystemPrompt: string;
 | 
			
		||||
 | 
			
		||||
    // Embedding-related options
 | 
			
		||||
    embeddingAutoUpdateEnabled: boolean;
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user