WARNING: THIS SITE IS A MIRROR OF GITHUB.COM / IT CANNOT LOGIN OR REGISTER ACCOUNTS / THE CONTENTS ARE PROVIDED AS-IS / THIS SITE ASSUMES NO RESPONSIBILITY FOR ANY DISPLAYED CONTENT OR LINKS / IF YOU FOUND SOMETHING MAY NOT GOOD FOR EVERYONE, CONTACT ADMIN AT ilovescratch@foxmail.com
Skip to content

Support Google Vertex AI Express Mode #10058

@akarimcheese

Description

@akarimcheese

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

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions