Skip to main content
Learn how to use Guardrails with Google’s Gemini models.

Prerequisites

Set your Gemini API key:
export GEMINI_API_KEY="your-api-key"
Or in Python:
import os
os.environ['GEMINI_API_KEY'] = "your-api-key"

Basic usage

from guardrails import Guard
import os

os.environ['GEMINI_API_KEY'] = "your-api-key"

guard = Guard()

result = guard(
    messages=[{"role": "user", "content": "How many moons does Jupiter have?"}],
    model="gemini/gemini-pro"
)

print(result.validated_output)

Streaming

Stream responses from Gemini with real-time validation:
from guardrails import Guard
import os

os.environ['GEMINI_API_KEY'] = "your-api-key"

guard = Guard()

stream_chunk_generator = guard(
    messages=[{"role": "user", "content": "How many moons does Jupiter have?"}],
    model="gemini/gemini-pro",
    stream=True
)

for chunk in stream_chunk_generator:
    print(chunk.validated_output)

Using validators

Add validators to ensure output quality:
from guardrails import Guard
from guardrails.hub import ProfanityFree
import os

os.environ['GEMINI_API_KEY'] = "your-api-key"

guard = Guard().use(ProfanityFree())

result = guard(
    messages=[{"role": "user", "content": "Tell me a story"}],
    model="gemini/gemini-pro",
)

print(result.validated_output)

Supported models

Guardrails supports all Google Gemini models including:
  • gemini/gemini-pro
  • gemini/gemini-pro-vision
  • gemini/gemini-ultra
When using Gemini models with Guardrails, prefix the model name with gemini/.

Structured data with Gemini

Generate structured data using Gemini:
from pydantic import BaseModel
from typing import List
from guardrails import Guard
import os

os.environ['GEMINI_API_KEY'] = "your-api-key"

class Book(BaseModel):
    title: str
    author: str
    year: int

guard = Guard.for_pydantic(Book)

result = guard(
    messages=[{"role": "user", "content": "Generate information about a famous book"}],
    model="gemini/gemini-pro",
)

print(result.validated_output)

Error handling

Guardrails automatically handles common Gemini errors with retries and exponential backoff:
from guardrails import Guard
import os

os.environ['GEMINI_API_KEY'] = "your-api-key"

guard = Guard()

try:
    result = guard(
        messages=[{"role": "user", "content": "Your prompt"}],
        model="gemini/gemini-pro",
    )
except Exception as e:
    print(f"Error: {e}")

Getting your API key

To get a Gemini API key:
  1. Visit Google AI Studio
  2. Sign in with your Google account
  3. Create a new API key
  4. Copy the key and set it as your GEMINI_API_KEY environment variable