UNPKG

@nyrra/foundry-ai

Version:

Thin Palantir Foundry provider adapters and model catalog for the Vercel AI SDK.

64 lines (55 loc) 1.65 kB
import type { AnthropicModelId, GoogleModelId, OpenAIModelId } from '@nyrra/foundry-ai'; import { loadFoundryConfig } from '@nyrra/foundry-ai'; import { createFoundryAnthropic } from '@nyrra/foundry-ai/anthropic'; import { createFoundryGoogle } from '@nyrra/foundry-ai/google'; import { createFoundryOpenAI } from '@nyrra/foundry-ai/openai'; import type { LanguageModel } from 'ai'; import { DEFAULT_ANTHROPIC_MODEL, DEFAULT_GOOGLE_MODEL, DEFAULT_OPENAI_MODEL, type ProviderName, requireEnv, resolveCliModelId, resolveCliProvider, } from './config.js'; export { requireEnv }; export function createLanguageModel( provider = resolveCliProvider(), overrides?: { anthropicModel?: AnthropicModelId; googleModel?: GoogleModelId; openaiModel?: OpenAIModelId; }, ): { model: LanguageModel; modelId: string; provider: ProviderName; } { const config = loadFoundryConfig(); if (provider === 'openai') { const openai = createFoundryOpenAI(config); const modelId = resolveCliModelId() ?? overrides?.openaiModel ?? DEFAULT_OPENAI_MODEL; return { provider, modelId, model: openai(modelId), }; } if (provider === 'google') { const google = createFoundryGoogle(config); const modelId = resolveCliModelId() ?? overrides?.googleModel ?? DEFAULT_GOOGLE_MODEL; return { provider, modelId, model: google(modelId), }; } const anthropic = createFoundryAnthropic(config); const modelId = resolveCliModelId() ?? overrides?.anthropicModel ?? DEFAULT_ANTHROPIC_MODEL; return { provider, modelId, model: anthropic(modelId), }; }