fix: default to Gemini API if GEMINI_API_KEY is set and when GOOGLE_GENAI_USE_VERTEXAI is set to True (#566)

This commit is contained in:
sasha-gitg 2025-05-27 10:00:07 -07:00 committed by GitHub
parent b3f52e215a
commit 3511e84dc3
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 13 additions and 0 deletions

View File

@ -132,6 +132,7 @@ export async function loadCliConfig(settings: Settings): Promise<Config> {
const userAgent = await createUserAgent();
const apiKeyForServer = geminiApiKey || googleApiKey || '';
const useVertexAI = hasGeminiApiKey ? false : undefined;
return createServerConfig(
apiKeyForServer,
@ -149,6 +150,8 @@ export async function loadCliConfig(settings: Settings): Promise<Config> {
userAgent,
memoryContent,
fileCount,
undefined, // alwaysSkipModificationConfirmation - not set by CLI args directly
useVertexAI,
);
}

View File

@ -56,6 +56,7 @@ export class Config {
private userMemory: string = '', // Made mutable for refresh
private geminiMdFileCount: number = 0,
private alwaysSkipModificationConfirmation: boolean = false,
private readonly vertexai?: boolean,
) {
// toolRegistry still needs initialization based on the instance
this.toolRegistry = createToolRegistry(this);
@ -139,6 +140,10 @@ export class Config {
setAlwaysSkipModificationConfirmation(skip: boolean): void {
this.alwaysSkipModificationConfirmation = skip;
}
getVertexAI(): boolean | undefined {
return this.vertexai;
}
}
function findEnvFile(startDir: string): string | null {
@ -186,6 +191,7 @@ export function createServerConfig(
userMemory?: string,
geminiMdFileCount?: number,
alwaysSkipModificationConfirmation?: boolean,
vertexai?: boolean,
): Config {
return new Config(
apiKey,
@ -204,6 +210,7 @@ export function createServerConfig(
userMemory ?? '',
geminiMdFileCount ?? 0,
alwaysSkipModificationConfirmation ?? false,
vertexai,
);
}

View File

@ -36,8 +36,11 @@ export class GeminiClient {
constructor(private config: Config) {
const userAgent = config.getUserAgent();
const apiKeyFromConfig = config.getApiKey();
const vertexaiFlag = config.getVertexAI();
this.client = new GoogleGenAI({
apiKey: apiKeyFromConfig === '' ? undefined : apiKeyFromConfig,
vertexai: vertexaiFlag,
httpOptions: {
headers: {
'User-Agent': userAgent,