UNPKG

@nyrra/foundry-ai

Version:

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

57 lines (56 loc) 1.99 kB
import { wrapFoundryLanguageModel } from "../chunk-UQ5CCQR6.mjs"; import { resolveFoundryConfig, resolveModelTarget } from "../chunk-B22YKL5X.mjs"; // src/providers/google.ts import { createGoogleGenerativeAI } from "@ai-sdk/google"; import { NoSuchModelError } from "ai"; function createFoundryGoogle(config) { const providerId = "foundry-google"; const resolvedConfig = resolveFoundryConfig(config, "createFoundryGoogle"); const baseProvider = createGoogleGenerativeAI({ apiKey: resolvedConfig.token, baseURL: `${resolvedConfig.foundryUrl}/api/v2/llm/proxy/google/v1`, fetch: createGoogleProxyFetch(resolvedConfig.token), headers: resolvedConfig.attributionRid ? { attribution: resolvedConfig.attributionRid } : void 0, name: providerId }); const createLanguageModel = (modelId) => { const resolvedModel = resolveModelTarget(modelId); return wrapFoundryLanguageModel(baseProvider.chat(resolvedModel.rid), { modelId, providerId }); }; function provider(modelId) { return createLanguageModel(modelId); } const callableProvider = provider; callableProvider.specificationVersion = "v3"; callableProvider.languageModel = createLanguageModel; callableProvider.chat = createLanguageModel; callableProvider.generativeAI = createLanguageModel; callableProvider.embeddingModel = (modelId) => { throw new NoSuchModelError({ modelId, modelType: "embeddingModel" }); }; callableProvider.imageModel = (modelId) => { throw new NoSuchModelError({ modelId, modelType: "imageModel" }); }; return callableProvider; } function createGoogleProxyFetch(token) { return async (input, init) => { const request = new Request(input, init); const headers = new Headers(request.headers); headers.delete("x-goog-api-key"); headers.set("Authorization", `Bearer ${token}`); return fetch(new Request(request, { headers })); }; } export { createFoundryGoogle }; //# sourceMappingURL=google.mjs.map