diff --git a/shared/src/main/kotlin/io/askimo/core/providers/OpenAiCompatibleChatModelFactory.kt b/shared/src/main/kotlin/io/askimo/core/providers/OpenAiCompatibleChatModelFactory.kt index 75bb9517..06a2fecc 100644 --- a/shared/src/main/kotlin/io/askimo/core/providers/OpenAiCompatibleChatModelFactory.kt +++ b/shared/src/main/kotlin/io/askimo/core/providers/OpenAiCompatibleChatModelFactory.kt @@ -284,6 +284,10 @@ abstract class OpenAiCompatibleChatModelFactory : ChatModelFactory override fun createEmbeddingModel(settings: T): EmbeddingModel { val baseUrl = settings.baseUrl.removeSuffix("/") val modelName = settings.embeddingModel.ifBlank { AppConfig.models[getProvider()].embeddingModel } + check(modelName.isNotBlank()) { + "No embedding model is configured for ${getProvider().name}. " + + "Go to Settings > AI Provider and select an embedding model under the provider configuration card." + } checkEmbeddingAvailability(baseUrl, modelName) return customizeEmbeddingBuilder( settings, diff --git a/shared/src/main/kotlin/io/askimo/core/providers/openaicompatible/OpenAiCompatibleModelFactory.kt b/shared/src/main/kotlin/io/askimo/core/providers/openaicompatible/OpenAiCompatibleModelFactory.kt index 550b8131..7d8cd4d6 100644 --- a/shared/src/main/kotlin/io/askimo/core/providers/openaicompatible/OpenAiCompatibleModelFactory.kt +++ b/shared/src/main/kotlin/io/askimo/core/providers/openaicompatible/OpenAiCompatibleModelFactory.kt @@ -34,11 +34,18 @@ class OpenAiCompatibleModelFactory : OpenAiCompatibleChatModelFactory AI Provider and select an embedding model under the provider configuration card." + } + return OpenAiEmbeddingModelBuilder() + .baseUrl(settings.baseUrl) + .apiKey(resolveApiKey(settings)) + .modelName(modelName) + .build() + } override fun getEmbeddingTokenLimit(settings: OpenAiCompatibleSettings): Int { val modelName = AppConfig.models[ModelProvider.OPENAI_COMPATIBLE].embeddingModel.lowercase()