Fix Google Gemini model integration with LiteLLM

This commit is contained in:
Steve White 2025-02-28 11:53:09 -06:00
parent c687216393
commit 6ff455358c
3 changed files with 17 additions and 2 deletions

View File

@ -84,7 +84,7 @@ models:
gemini-2.0-flash-lite:
provider: "google"
model_name: "google/gemini-2.0-flash-lite-001"
model_name: "gemini-2.0-flash-lite-001"
temperature: 0.5
max_tokens: 2048
top_p: 1.0

View File

@ -101,7 +101,7 @@ class LLMInterface:
}
elif provider == 'google':
# Special handling for Google Gemini models
params['model'] = self.model_config.get('model_name', self.model_name)
params['model'] = f"google/{self.model_config.get('model_name', self.model_name)}"
# Google Gemini uses a different API base
params['api_base'] = self.model_config.get('endpoint', 'https://generativelanguage.googleapis.com/v1')
else:

View File

@ -95,6 +95,11 @@ class ReportSynthesizer:
'HTTP-Referer': 'https://sim-search.app', # Replace with your actual app URL
'X-Title': 'Intelligent Research System' # Replace with your actual app name
}
elif provider == 'google':
# Special handling for Google Gemini models
params['model'] = f"google/{self.model_config.get('model_name', self.model_name)}"
# Google Gemini uses a different API base
params['api_base'] = self.model_config.get('endpoint', 'https://generativelanguage.googleapis.com/v1')
else:
# Standard provider (OpenAI, Anthropic, etc.)
params['model'] = self.model_name
@ -118,6 +123,9 @@ class ReportSynthesizer:
params['messages'] = messages
params['stream'] = stream
logger.info(f"Generating completion with model: {params.get('model')}")
logger.info(f"Provider: {self.model_config.get('provider')}")
response = completion(**params)
if stream:
@ -132,6 +140,13 @@ class ReportSynthesizer:
return content
except Exception as e:
logger.error(f"Error generating completion: {e}")
logger.error(f"Model params: {params}")
# More detailed error for debugging
if hasattr(e, '__dict__'):
for key, value in e.__dict__.items():
logger.error(f"Error detail - {key}: {value}")
return f"Error: {str(e)}"
def _process_thinking_tags(self, content: str) -> str: