effect-io-ai

Package: @effect/ai
Module: index

index.EmbeddingModel

Re-exports all named exports from the “./EmbeddingModel.js” module as EmbeddingModel.

Example

import { EmbeddingModel } from "@effect/ai"
import { Effect } from "effect"

// Basic embedding usage
const program = Effect.gen(function* () {
  const embedding = yield* EmbeddingModel.EmbeddingModel

  const vector = yield* embedding.embed("Hello world!")
  console.log(vector) // [0.123, -0.456, 0.789, ...]

  return vector
})

Example

import { EmbeddingModel } from "@effect/ai"
import { Effect, Duration } from "effect"

declare const generateVectorFor: (text: string) => Array<number>

// Create embedding service with batching and caching
const embeddingService = EmbeddingModel.make({
  embedMany: (texts) => Effect.succeed(
    texts.map((text, index) => ({
      index,
      embeddings: generateVectorFor(text)
    }))
  ),
  maxBatchSize: 50,
  cache: {
    capacity: 1000,
    timeToLive: Duration.minutes(30)
  }
})

Signature

export * as EmbeddingModel from "./EmbeddingModel.js"

Source

Since v1.0.0