Light Dark

Types

CreateEmbeddingRequest

CreateEmbeddingRequest type {
    input: Any,
    model: Str,
    encoding_format: EncodingFormat?,
    dimensions: Int?,
    user: Str?
}

CreateEmbeddingResponse

CreateEmbeddingResponse type {
    object: Str,
    data: Vec,
    model: Str,
    usage: EmbeddingUsage
}

Embedding

Embedding type {
    object: Str,
    embedding: Vec,
    index: Int
}

EmbeddingUsage

EmbeddingUsage type {
    prompt_tokens: Int,
    total_tokens: Int
}

EncodingFormat

Functions

cosine-similarity

fn (a: Vec, b: Vec): Dec

Calculate cosine similarity between two embedding vectors. Returns a value between -1 and 1, where 1 means identical.

Example

vec1 embed("embedding-beta-v1", "Hello world")
vec2 embed("embedding-beta-v1", "Hi there")
similarity cosine-similarity(vec1, vec2)
// 0.89

create

fn (request: CreateEmbeddingRequest): CreateEmbeddingResponse | HttpError

Create embeddings for text input(s).

Example - Single text

response create({
    model: "embedding-beta-v1",
    input: "The quick brown fox jumps over the lazy dog"
})

embedding response.data[0].embedding
// [0.0123, -0.0456, ...]

Example - Multiple texts

response create({
    model: "embedding-beta-v1",
    input: ["Hello world", "Goodbye world"]
})

// response.data[0].embedding - embedding for "Hello world"
// response.data[1].embedding - embedding for "Goodbye world"

embed

fn (model: Str, text: Str): Vec | HttpError

Simple embedding - get the embedding vector for a single text.

Example

vector embed("embedding-beta-v1", "Hello world")
// [0.0123, -0.0456, ...]

embed-batch

fn (model: Str, texts: Vec): Vec> | HttpError

Batch embedding - get embedding vectors for multiple texts.

Example

vectors embed-batch("embedding-beta-v1", ["Hello", "World"])
// [[0.0123, ...], [0.0456, ...]]