Fix Google Gemini model integration with correct provider format and API key handling

This commit is contained in:
Steve White 2025-02-28 11:57:12 -06:00
parent 6ff455358c
commit 82f081f731
3 changed files with 12 additions and 6 deletions

View File

@ -74,9 +74,9 @@ class Config:
if provider.lower() == 'openrouter': if provider.lower() == 'openrouter':
env_var_name = "OPENROUTER_API_KEY" env_var_name = "OPENROUTER_API_KEY"
# Special case for Google which might use GOOGLE_API_KEY # Special case for Google which might use GEMINI_API_KEY
if provider.lower() == 'google': if provider.lower() == 'google':
env_var_name = "GOOGLE_API_KEY" env_var_name = "GEMINI_API_KEY"
api_key = os.environ.get(env_var_name) api_key = os.environ.get(env_var_name)

View File

@ -46,7 +46,10 @@ class LLMInterface:
api_key = self.config.get_api_key(provider) api_key = self.config.get_api_key(provider)
# Set environment variable for the provider # Set environment variable for the provider
os.environ[f"{provider.upper()}_API_KEY"] = api_key if provider.lower() == 'google':
os.environ["GEMINI_API_KEY"] = api_key
else:
os.environ[f"{provider.upper()}_API_KEY"] = api_key
print(f"LLM interface initialized with model: {self.model_name} (provider: {provider})") print(f"LLM interface initialized with model: {self.model_name} (provider: {provider})")
except ValueError as e: except ValueError as e:
@ -101,7 +104,7 @@ class LLMInterface:
} }
elif provider == 'google': elif provider == 'google':
# Special handling for Google Gemini models # Special handling for Google Gemini models
params['model'] = f"google/{self.model_config.get('model_name', self.model_name)}" params['model'] = f"gemini/{self.model_config.get('model_name', self.model_name)}"
# Google Gemini uses a different API base # Google Gemini uses a different API base
params['api_base'] = self.model_config.get('endpoint', 'https://generativelanguage.googleapis.com/v1') params['api_base'] = self.model_config.get('endpoint', 'https://generativelanguage.googleapis.com/v1')
else: else:

View File

@ -60,7 +60,10 @@ class ReportSynthesizer:
api_key = self.config.get_api_key(provider) api_key = self.config.get_api_key(provider)
# Set environment variable for the provider # Set environment variable for the provider
os.environ[f"{provider.upper()}_API_KEY"] = api_key if provider.lower() == 'google':
os.environ["GEMINI_API_KEY"] = api_key
else:
os.environ[f"{provider.upper()}_API_KEY"] = api_key
logger.info(f"Report synthesizer initialized with model: {self.model_name} (provider: {provider})") logger.info(f"Report synthesizer initialized with model: {self.model_name} (provider: {provider})")
except ValueError as e: except ValueError as e:
@ -97,7 +100,7 @@ class ReportSynthesizer:
} }
elif provider == 'google': elif provider == 'google':
# Special handling for Google Gemini models # Special handling for Google Gemini models
params['model'] = f"google/{self.model_config.get('model_name', self.model_name)}" params['model'] = f"gemini/{self.model_config.get('model_name', self.model_name)}"
# Google Gemini uses a different API base # Google Gemini uses a different API base
params['api_base'] = self.model_config.get('endpoint', 'https://generativelanguage.googleapis.com/v1') params['api_base'] = self.model_config.get('endpoint', 'https://generativelanguage.googleapis.com/v1')
else: else: