package at.procon.dip.embedding.model;

import at.procon.dip.domain.document.DistanceMetric;

public record EmbeddingModelDescriptor(
        String modelKey,
        String providerConfigKey,
        String providerModelKey,
        int dimensions,
        DistanceMetric distanceMetric,
        boolean supportsQueryEmbeddingMode,
        boolean supportsBatch,
        Integer maxInputChars,
        boolean active,
        EmbeddingPrefixMode prefixMode,
        String queryPrefix,
        String documentPrefix
) {
    public EmbeddingModelDescriptor(String modelKey,
                                    String providerConfigKey,
                                    String providerModelKey,
                                    int dimensions,
                                    DistanceMetric distanceMetric,
                                    boolean supportsQueryEmbeddingMode,
                                    boolean supportsBatch,
                                    Integer maxInputChars,
                                    boolean active) {
        this(
                modelKey,
                providerConfigKey,
                providerModelKey,
                dimensions,
                distanceMetric,
                supportsQueryEmbeddingMode,
                supportsBatch,
                maxInputChars,
                active,
                EmbeddingPrefixMode.OFF,
                "query: ",
                "passage: "
        );
    }
}
