@nyrra/foundry-ai
Version:
Thin Palantir Foundry provider adapters and model catalog for the Vercel AI SDK.
57 lines (56 loc) • 1.99 kB
JavaScript
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