001package org.nasdanika.ai; 002 003import java.awt.image.BufferedImage; 004import java.util.List; 005 006public interface ImageFloatVectorEmbeddingModel extends EmbeddingModel<BufferedImage, List<List<Float>>>, ImageEmbeddingGenerator<List<List<Float>>>, FloatVectorEmbeddingGenerator<BufferedImage> { 007 008 /** 009 * Creates ImageFloatVectorEmbeddingModel requirement. 010 * String attributes match any value if null. 011 */ 012 static Requirement createRequirement( 013 String provider, 014 String model, 015 String version) { 016 017 return new Requirement( 018 String.class, 019 List.class, 020 ImageFloatVectorEmbeddingModel.class::isAssignableFrom, 021 em -> { 022 ImageFloatVectorEmbeddingModel tfvem = (ImageFloatVectorEmbeddingModel) em; 023 if (model != null && !model.equals(tfvem.getName())) { 024 return false; 025 } 026 if (provider != null && !provider.equals(tfvem.getProvider())) { 027 return false; 028 } 029 return version == null || version.equals(tfvem.getVersion()); 030 }); 031 } 032 033}