Google Provider

Use Google Gemini models with PraisonAI TypeScript

Diagram

Input

Agent

Output

Google Provider

Use Google’s Gemini models including Gemini 2.0 Flash and Gemini 1.5 Pro.

Environment Variables

bash
export GOOGLE_GENERATIVE_AI_API_KEY=AIza...
# or
export GOOGLE_API_KEY=AIza...
VariableRequiredDescription
GOOGLE_GENERATIVE_AI_API_KEYYesGoogle AI Studio API key
GOOGLE_API_KEYAltAlternative env var name

Supported Modalities

ModalitySupported
Text/Chat✅
Embeddings✅
Image✅
Audio✅
Speech✅
Tools✅

Quick Start

  1. Simple Usage
    typescript
    import { Agent } from 'praisonai';
    
    const agent = new Agent({
      name: 'Gemini',
      instructions: 'You are a helpful assistant.',
      llm: 'google/gemini-2.0-flash'
    });
    
    const response = await agent.chat('Hello!');
    console.log(response);
  2. With Configuration

    Adjust provider credentials and model settings for production — see the sections above.

Available Models

ModelDescriptionContext
gemini-2.0-flashLatest fast model1M
gemini-1.5-proMost capable2M
gemini-1.5-flashFast, efficient1M
gemini-1.5-flash-8bLightweight1M

Advanced Configuration

typescript
import { Agent } from 'praisonai';

const agent = new Agent({
  name: 'GeminiPro',
  instructions: 'You are an expert analyst.',
  llm: 'google/gemini-1.5-pro',
  llmConfig: {
    temperature: 0.7,
    maxTokens: 8192,
  }
});

With Tools

typescript
import { Agent } from 'praisonai';

const weatherTool = {
  name: 'get_weather',
  description: 'Get current weather',
  parameters: {
    type: 'object',
    properties: {
      location: { type: 'string', description: 'City name' }
    },
    required: ['location']
  },
  execute: async ({ location }) => {
    return `Weather in ${location}: Sunny, 72°F`;
  }
};

const agent = new Agent({
  name: 'WeatherGemini',
  instructions: 'Help with weather queries.',
  llm: 'google/gemini-2.0-flash',
  tools: [weatherTool]
});

Vision (Image Input)

typescript
import { Agent } from 'praisonai';

const agent = new Agent({
  name: 'VisionGemini',
  instructions: 'Analyze images.',
  llm: 'google/gemini-1.5-pro'
});

const response = await agent.chat({
  content: 'Describe this image',
  images: ['https://example.com/image.jpg']
});

Streaming

typescript
import { Agent } from 'praisonai';

const agent = new Agent({
  name: 'StreamGemini',
  instructions: 'You are helpful.',
  llm: 'google/gemini-2.0-flash'
});

for await (const chunk of agent.stream('Tell me a story')) {
  process.stdout.write(chunk);
}

Troubleshooting

Invalid API Key

Error: Google Generative AI API key is missing

Solution: Set the correct environment variable:

bash
export GOOGLE_GENERATIVE_AI_API_KEY=AIza...

Rate Limits

Error: Resource exhausted

Solution: Implement retry logic or upgrade your Google AI plan.

Related