@nyrra/foundry-ai
Version:
Thin Palantir Foundry provider adapters and model catalog for the Vercel AI SDK.
47 lines (46 loc) • 1.61 kB
JavaScript
import {
wrapFoundryLanguageModel
} from "../chunk-UQ5CCQR6.mjs";
import {
resolveFoundryConfig,
resolveModelTarget
} from "../chunk-B22YKL5X.mjs";
// src/providers/anthropic.ts
import { createAnthropic } from "@ai-sdk/anthropic";
import { NoSuchModelError } from "ai";
function createFoundryAnthropic(config) {
const providerId = "foundry-anthropic";
const resolvedConfig = resolveFoundryConfig(config, "createFoundryAnthropic");
const baseProvider = createAnthropic({
authToken: resolvedConfig.token,
baseURL: `${resolvedConfig.foundryUrl}/api/v2/llm/proxy/anthropic/v1`,
headers: resolvedConfig.attributionRid ? { attribution: resolvedConfig.attributionRid } : void 0,
name: providerId
});
const createLanguageModel = (modelId) => {
const resolvedModel = resolveModelTarget(modelId);
return wrapFoundryLanguageModel(baseProvider(resolvedModel.rid), {
modelId,
providerId
});
};
function provider(modelId) {
return createLanguageModel(modelId);
}
const callableProvider = provider;
callableProvider.specificationVersion = "v3";
callableProvider.languageModel = createLanguageModel;
callableProvider.chat = createLanguageModel;
callableProvider.messages = createLanguageModel;
callableProvider.embeddingModel = (modelId) => {
throw new NoSuchModelError({ modelId, modelType: "embeddingModel" });
};
callableProvider.imageModel = (modelId) => {
throw new NoSuchModelError({ modelId, modelType: "imageModel" });
};
return callableProvider;
}
export {
createFoundryAnthropic
};
//# sourceMappingURL=anthropic.mjs.map