You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
1.3 KiB
Java
33 lines
1.3 KiB
Java
package at.procon.dip.embedding.registry;
|
|
|
|
import at.procon.dip.embedding.config.EmbeddingProperties;
|
|
import at.procon.dip.embedding.model.ResolvedEmbeddingProviderConfig;
|
|
import java.util.Map;
|
|
import lombok.RequiredArgsConstructor;
|
|
import org.springframework.stereotype.Component;
|
|
|
|
@Component
|
|
@RequiredArgsConstructor
|
|
public class EmbeddingProviderConfigResolver {
|
|
|
|
private final EmbeddingProperties properties;
|
|
|
|
public ResolvedEmbeddingProviderConfig resolve(String providerConfigKey) {
|
|
EmbeddingProperties.ProviderProperties provider = properties.getProviders().get(providerConfigKey);
|
|
if (provider == null) {
|
|
throw new IllegalArgumentException("Unknown embedding provider config key: " + providerConfigKey);
|
|
}
|
|
|
|
return ResolvedEmbeddingProviderConfig.builder()
|
|
.key(providerConfigKey)
|
|
.providerType(provider.getType())
|
|
.baseUrl(provider.getBaseUrl())
|
|
.apiKey(provider.getApiKey())
|
|
.connectTimeout(provider.getConnectTimeout())
|
|
.readTimeout(provider.getReadTimeout())
|
|
.headers(provider.getHeaders() == null ? Map.of() : Map.copyOf(provider.getHeaders()))
|
|
.dimensions(provider.getDimensions())
|
|
.build();
|
|
}
|
|
}
|