@nyrra/foundry-ai
Version:
Thin Palantir Foundry provider adapters and model catalog for the Vercel AI SDK.
1 lines • 3.29 kB
Source Map (JSON)
{"version":3,"sources":["../../src/providers/anthropic.ts"],"sourcesContent":["import { createAnthropic } from '@ai-sdk/anthropic';\nimport type { wrapLanguageModel } from 'ai';\nimport { NoSuchModelError } from 'ai';\nimport { resolveFoundryConfig } from '../config.js';\nimport { wrapFoundryLanguageModel } from '../middleware.js';\nimport type { AnthropicModelId } from '../models/anthropic-models.js';\nimport { resolveModelTarget } from '../models/catalog.js';\nimport type { FoundryConfig } from '../types.js';\n\ntype FoundryLanguageModel = Parameters<typeof wrapLanguageModel>[0]['model'];\n\nexport interface FoundryAnthropicProvider {\n (modelId: AnthropicModelId): FoundryLanguageModel;\n specificationVersion: 'v3';\n languageModel(modelId: AnthropicModelId): FoundryLanguageModel;\n chat(modelId: AnthropicModelId): FoundryLanguageModel;\n messages(modelId: AnthropicModelId): FoundryLanguageModel;\n embeddingModel(modelId: string): never;\n imageModel(modelId: string): never;\n}\n\nexport function createFoundryAnthropic(config: FoundryConfig): FoundryAnthropicProvider {\n const providerId = 'foundry-anthropic';\n const resolvedConfig = resolveFoundryConfig(config, 'createFoundryAnthropic');\n const baseProvider = createAnthropic({\n authToken: resolvedConfig.token,\n baseURL: `${resolvedConfig.foundryUrl}/api/v2/llm/proxy/anthropic/v1`,\n headers: resolvedConfig.attributionRid\n ? { attribution: resolvedConfig.attributionRid }\n : undefined,\n name: providerId,\n });\n\n const createLanguageModel = (modelId: AnthropicModelId): FoundryLanguageModel => {\n const resolvedModel = resolveModelTarget(modelId);\n\n return wrapFoundryLanguageModel(baseProvider(resolvedModel.rid), {\n modelId,\n providerId,\n });\n };\n\n function provider(modelId: AnthropicModelId): FoundryLanguageModel {\n return createLanguageModel(modelId);\n }\n\n const callableProvider = provider as FoundryAnthropicProvider;\n\n callableProvider.specificationVersion = 'v3';\n callableProvider.languageModel = createLanguageModel;\n callableProvider.chat = createLanguageModel;\n callableProvider.messages = createLanguageModel;\n callableProvider.embeddingModel = (modelId: string) => {\n throw new NoSuchModelError({ modelId, modelType: 'embeddingModel' });\n };\n callableProvider.imageModel = (modelId: string) => {\n throw new NoSuchModelError({ modelId, modelType: 'imageModel' });\n };\n\n return callableProvider;\n}\n"],"mappings":";;;;;;;;;AAAA,SAAS,uBAAuB;AAEhC,SAAS,wBAAwB;AAmB1B,SAAS,uBAAuB,QAAiD;AACtF,QAAM,aAAa;AACnB,QAAM,iBAAiB,qBAAqB,QAAQ,wBAAwB;AAC5E,QAAM,eAAe,gBAAgB;AAAA,IACnC,WAAW,eAAe;AAAA,IAC1B,SAAS,GAAG,eAAe,UAAU;AAAA,IACrC,SAAS,eAAe,iBACpB,EAAE,aAAa,eAAe,eAAe,IAC7C;AAAA,IACJ,MAAM;AAAA,EACR,CAAC;AAED,QAAM,sBAAsB,CAAC,YAAoD;AAC/E,UAAM,gBAAgB,mBAAmB,OAAO;AAEhD,WAAO,yBAAyB,aAAa,cAAc,GAAG,GAAG;AAAA,MAC/D;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EACH;AAEA,WAAS,SAAS,SAAiD;AACjE,WAAO,oBAAoB,OAAO;AAAA,EACpC;AAEA,QAAM,mBAAmB;AAEzB,mBAAiB,uBAAuB;AACxC,mBAAiB,gBAAgB;AACjC,mBAAiB,OAAO;AACxB,mBAAiB,WAAW;AAC5B,mBAAiB,iBAAiB,CAAC,YAAoB;AACrD,UAAM,IAAI,iBAAiB,EAAE,SAAS,WAAW,iBAAiB,CAAC;AAAA,EACrE;AACA,mBAAiB,aAAa,CAAC,YAAoB;AACjD,UAAM,IAAI,iBAAiB,EAAE,SAAS,WAAW,aAAa,CAAC;AAAA,EACjE;AAEA,SAAO;AACT;","names":[]}