Skip to content

Embeddings & Similarity

Generate vector embeddings from text and compute similarity between them. Embeddings are auto-configured from environment variables (JINA_API_KEY, VOYAGE_API_KEY, or COHERE_API_KEY).

Generating Embeddings

llm/embed

Generate an embedding for a string or a list of strings. Returns a bytevector containing densely-packed f64 values in little-endian format. This representation is 2× more memory efficient and 4× faster for similarity computations compared to a list of floats.

scheme
;; Single embedding (returns a bytevector)
(define v1 (llm/embed "hello world"))

;; Batch embeddings
(llm/embed ["cat" "dog" "fish"])       ; => list of bytevectors

Embedding Accessors

embedding/length

Returns the number of dimensions (f64 elements) in an embedding bytevector.

scheme
(define v (llm/embed "hello"))
(embedding/length v)                   ; => 1024 (depends on provider)

embedding/ref

Access a specific dimension by index.

scheme
(define v (llm/embed "hello"))
(embedding/ref v 0)                    ; => 0.0123 (first dimension)

embedding/->list

Convert an embedding bytevector to a list of floats (useful for interop).

scheme
(define v (llm/embed "hello"))
(embedding/->list v)                   ; => (0.0123 -0.0456 ...)

embedding/list->embedding

Convert a list of numbers to an embedding bytevector.

scheme
(define v (embedding/list->embedding '(0.1 0.2 0.3)))
(embedding/length v)                   ; => 3

Computing Similarity

llm/similarity

Compute cosine similarity between two embedding vectors. Returns a value between -1.0 and 1.0. Accepts both bytevectors (fast path) and lists of floats (backward compatible).

scheme
(define v1 (llm/embed "hello world"))
(define v2 (llm/embed "hi there"))
(llm/similarity v1 v2)                 ; => 0.87 (cosine similarity)

;; Also works with plain lists
(llm/similarity '(0.1 0.2 0.3) '(0.4 0.5 0.6))

Supported Embedding Providers

ProviderEnv Variable
JinaJINA_API_KEY
VoyageVOYAGE_API_KEY
CohereCOHERE_API_KEY
OpenAIOPENAI_API_KEY

See Provider Management for the full provider capability table.