Skip to content

v2: Embedding function registry #109

@oss-amikos

Description

@oss-amikos

Context

The Go client has an embedding function registry that allows registering and looking up embedding functions by name. This enables auto-wiring embedding functions from server-side collection configuration. The Java client has no registry.

Missing API

public final class EmbeddingFunctionRegistry {
    public static EmbeddingFunctionRegistry instance();

    // Registration
    void registerDense(String name, EmbeddingFunctionFactory factory);
    void registerSparse(String name, SparseEmbeddingFunctionFactory factory);
    void registerMultimodal(String name, MultimodalEmbeddingFunctionFactory factory);

    // Lookup
    EmbeddingFunction buildDense(String name, Map<String, Object> config);
    boolean hasDense(String name);
    List<String> listDense();

    // Same for sparse and multimodal...
}

Use case

When getCollection() is called, the server returns the embedding function name and config in the collection metadata. The registry can automatically create the correct EmbeddingFunction instance, so the user doesn't need to pass it explicitly.

Reference

  • Go client: RegisterDense, RegisterSparse, RegisterMultimodal, BuildDense, BuildSparse, BuildMultimodal, HasDense, ListDense, etc.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestv2v2 API support

    Type

    No type

    Projects

    No projects

    Milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions