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:
- Visit Google AI Studio
- Sign in with your Google account
- Create a new API key
- Copy the key and set it as your
GEMINI_API_KEY environment variable