-
Notifications
You must be signed in to change notification settings - Fork 3.4k
Labels
ai/providerfeatureNew feature or requestNew feature or requestprovider/google-vertexIssues related to the @ai-sdk/google-vertex providerIssues related to the @ai-sdk/google-vertex provider
Description
Description
Looking ai-sdk's the documentation for Vertex AI and Google's documentation for Vertex AI in Express Mode, it seems like AI SDK does not support providing a single api key in express mode (without having to supply location, project, client email, or private_key). It also doesn't look like the ai-sdk supports constructing the vertex api url in the way that the Vertex AI docs mention (https://aiplatform.googleapis.com/v1/publishers/google/models/{model}:streamGenerateContent?key={API_KEY})
Using nodejs
Sample env variables loaded
GOOGLE_PRIVATE_KEY="<Express mode API Key>"
GOOGLE_VERTEX_LOCATION= "us-central1"
GOOGLE_VERTEX_PROJECT="example-project"
Trying to fit it into the existing parameters (didn't expect either of the below to work, just being exhaustive)
Attempt 1
import { createVertex } from '@ai-sdk/google-vertex';
import { loadConfig } from './something-internal';
import { generateText } from 'ai';
const config = loadConfig(); // object populated from env vars
const vertex = createVertex({
googleAuthOptions: {
credentials: {
client_email: '[email protected]',
private_key: config.googlePrivateKey,
},
},
});
const model = vertex('gemini-2.5-flash');
const response = await generateText({
model,
prompt: 'Hello, world!',
});Error
Error: error:1E08010C:DECODER routines::unsupported
at Sign.sign (node:internal/crypto/sig:128:29)
at Object.sign (/Users/user/dev/app/node_modules/.pnpm/[email protected]/node_modules/jwa/index.js:166:45)
at Object.jwsSign [as sign] (/Users/user/dev/app/node_modules/.pnpm/[email protected]/node_modules/jws/lib/sign-stream.js:32:24)
at GoogleToken._GoogleToken_requestToken (/Users/user/dev/app/node_modules/.pnpm/[email protected]/node_modules/gtoken/build/src/index.js:235:27)
at GoogleToken._GoogleToken_getTokenAsyncInner (/Users/user/dev/app/node_modules/.pnpm/[email protected]/node_modules/gtoken/build/src/index.js:180:97)
at GoogleToken._GoogleToken_getTokenAsync (/Users/user/dev/app/node_modules/.pnpm/[email protected]/node_modules/gtoken/build/src/index.js:160:173)
at GoogleToken.getToken (/Users/user/dev/app/node_modules/.pnpm/[email protected]/node_modules/gtoken/build/src/index.js:110:102)
at JWT.refreshTokenNoCache (/Users/user/dev/app/node_modules/.pnpm/[email protected]/node_modules/google-auth-library/build/src/auth/jwtclient.js:173:36)
at JWT.refreshToken (/Users/user/dev/app/node_modules/.pnpm/[email protected]/node_modules/google-auth-library/build/src/auth/oauth2client.js:187:24)
at JWT.refreshAccessTokenAsync (/Users/auser/dev/app/node_modules/.pnpm/[email protected]/node_modules/google-auth-library/build/src/auth/oauth2client.js:247:30) {
opensslErrorStack: [ 'error:1E08010C:DECODER routines::unsupported' ],
library: 'DECODER routines',
reason: 'unsupported',
code: 'ERR_OSSL_UNSUPPORTED'
}
Attempt 2
import { vertex } from '@ai-sdk/google-vertex';
import { generateText } from 'ai';
const model = vertex('gemini-2.5-flash');
const response = await generateText({
model,
prompt: 'Hello, world!',
});Error
Error: Could not load the default credentials. Browse to https://cloud.google.com/docs/authentication/getting-started for more information.
at GoogleAuth.getApplicationDefaultAsync (/Users/user/dev/app/node_modules/.pnpm/[email protected]/node_modules/google-auth-library/build/src/auth/googleauth.js:287:15)
at process.processTicksAndRejections (node:internal/process/task_queues:105:5)
at async GoogleAuth._GoogleAuth_determineClient (/Users/user/dev/app/node_modules/.pnpm/[email protected]/node_modules/google-auth-library/build/src/auth/googleauth.js:834:32)
at async GoogleAuth.getClient (/Usersuser/dev/app/node_modules/.pnpm/[email protected]/node_modules/google-auth-library/build/src/auth/googleauth.js:698:20)
at async generateAuthToken (/Users/user/dev/app/node_modules/.pnpm/@[email protected][email protected]/node_modules/@ai-sdk/google-vertex/dist/index.js:48:18)
at async headers (/Users/user/dev/app/node_modules/.pnpm/@[email protected][email protected]/node_modules/@ai-sdk/google-vertex/dist/index.js:402:32)
at async getHeaders (/Users/user/dev/app/node_modules/.pnpm/@[email protected][email protected]/node_modules/@ai-sdk/google-vertex/dist/index.js:351:31)
at async GoogleGenerativeAILanguageModel.doGenerate (/Users/user/dev/app/node_modules/.pnpm/@[email protected][email protected]/node_modules/@ai-sdk/google/dist/internal/index.js:701:7)
at async fn (/Users/user/dev/app/node_modules/.pnpm/[email protected][email protected]/node_modules/ai/dist/index.js:2348:34)
at async /Users/user/dev/app/node_modules/.pnpm/[email protected][email protected]/node_modules/ai/dist/index.js:1631:22
}
AI SDK Version
- @ai-sdk/google-vertex: 3.0.58
- ai: 5.0.87
Code of Conduct
- I agree to follow this project's Code of Conduct
raymondhechen
Metadata
Metadata
Assignees
Labels
ai/providerfeatureNew feature or requestNew feature or requestprovider/google-vertexIssues related to the @ai-sdk/google-vertex providerIssues related to the @ai-sdk/google-vertex provider