effect-io-ai

Package: @effect/ai
Module: Model

Model.make

Creates a Model from a provider name and a Layer that constructs AI services.

Example

import { Model, LanguageModel } from "@effect/ai"
import { Effect, Layer } from "effect"

declare const bedrockLayer: Layer.Layer<LanguageModel.LanguageModel>

// Model automatically provides ProviderName service
const checkProviderAndGenerate = Effect.gen(function* () {
  const provider = yield* Model.ProviderName

  console.log(`Generating with: ${provider}`)

  return yield* LanguageModel.generateText({
    prompt: `Hello from ${provider}!`
  })
})

const program = checkProviderAndGenerate.pipe(
  Effect.provide(Model.make("amazon-bedrock", bedrockLayer))
)
// Will log: "Generating with: amazon-bedrock"

Signature

declare const make: <const Provider extends string, Provides, Requires>(provider: Provider, layer: Layer.Layer<Provides, never, Requires>) => Model<Provider, Provides, Requires>

Source

Since v1.0.0