import { OpenAiClient, OpenAiLanguageModel } from "@effect/ai-openai";
import { AiLanguageModel } from "@effect/ai";
import { NodeHttpClient } from "@effect/platform-node";
import { Config, Effect, Layer } from "effect";
const generateDadJoke = Effect.gen(function* () {
const response = yield* AiLanguageModel.generateText({
prompt: "Generate a dad joke",
});
console.log(response.text);
return response;
});
const Gpt4o = OpenAiLanguageModel.model("deepseek-r1");
const main = generateDadJoke.pipe(Effect.provide(Gpt4o));
const OpenAi = OpenAiClient.layerConfig({
apiKey: Config.redacted("OPENAI_API_KEY"),
apiUrl: Config.string("OPENAI_API_URL"),
});
const OpenAiWithHttp = Layer.provide(OpenAi, NodeHttpClient.layerUndici);
main.pipe(Effect.provide(OpenAiWithHttp), Effect.runPromise);
import { OpenAiClient, OpenAiLanguageModel } from "@effect/ai-openai";
import { AiLanguageModel } from "@effect/ai";
import { NodeHttpClient } from "@effect/platform-node";
import { Config, Effect, Layer } from "effect";
const generateDadJoke = Effect.gen(function* () {
const response = yield* AiLanguageModel.generateText({
prompt: "Generate a dad joke",
});
console.log(response.text);
return response;
});
const Gpt4o = OpenAiLanguageModel.model("deepseek-r1");
const main = generateDadJoke.pipe(Effect.provide(Gpt4o));
const OpenAi = OpenAiClient.layerConfig({
apiKey: Config.redacted("OPENAI_API_KEY"),
apiUrl: Config.string("OPENAI_API_URL"),
});
const OpenAiWithHttp = Layer.provide(OpenAi, NodeHttpClient.layerUndici);
main.pipe(Effect.provide(OpenAiWithHttp), Effect.runPromise);