Package: @effect/ai
Module: Model
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>
Since v1.0.0