Interface EmbeddingProvider

All Known Implementing Classes:
HashEmbeddingProvider, OllamaEmbeddingProvider

public interface EmbeddingProvider
Provides embeddings for text to enable semantic similarity search.

EmbeddingProvider converts text into vector embeddings that can be compared using cosine similarity or other distance metrics.

Implementations

  • Method Details

    • embed

      float[] embed(String text)
      Generates an embedding vector for the given text.
      Parameters:
      text - The text to embed
      Returns:
      A float array representing the embedding vector
    • embedBatch

      default List<float[]> embedBatch(List<String> texts)
      Generates embeddings for multiple texts in batch.
      Parameters:
      texts - The texts to embed
      Returns:
      List of embedding vectors
    • embed

      default float[] embed(String text, EmbeddingTask task)
      Generates an embedding for text conditioned on task.

      Instruction-tuned models (e.g. nomic-embed-text) embed the same text differently per task; supplying the right task is what separates related from unrelated text. The default ignores task — correct for providers whose model has no task convention (hash-based, OpenAI text-embedding-3).

      See Also:
    • embedBatch

      default List<float[]> embedBatch(List<String> texts, EmbeddingTask task)
      Batch counterpart of embed(String, EmbeddingTask). The default ignores task; task-aware providers override this.
    • getDimension

      int getDimension()
      Returns the dimension of the embedding vectors.
    • getModelName

      String getModelName()
      Returns the name of the embedding model.
    • cosineSimilarity

      static double cosineSimilarity(float[] a, float[] b)
      Calculates cosine similarity between two embeddings.
      Parameters:
      a - First embedding
      b - Second embedding
      Returns:
      Similarity score between -1 and 1 (1 = identical)