Overview
Integration details
Model features
Setup
To access Google AI models you’ll need to create a Google Account, get a Google AI API key, and install thelangchain-google-genai integration package.
Installation
Credentials
Head to the Google AI Studio to generate a Google AI API key. Once you’ve done this set theGOOGLE_API_KEY environment variable in your environment:
Instantiation
Now we can instantiate our model object and generate responses:ChatGoogleGenerativeAI API Reference for the full set of available model parameters.
Invocation
Message content shapeGemini 3 series models will always return a list of content blocks to capture thought signatures. Use the
.text property to recover string content.Multimodal usage
Gemini models can accept multimodal inputs (text, images, audio, video) and, for some models, generate multimodal outputs.Supported input methods
Image input
Provide image inputs along with text using aHumanMessage with a list content format.
- A Google Cloud Storage URI (
gs://...). Ensure the service account has access.
PDF input
Provide PDF file inputs along with text.Audio input
Provide audio file inputs along with text.Video input
Provide video file inputs along with text.YouTube limitations
- Only public videos are supported (not private or unlisted)
- Free tier: max 8 hours of YouTube video per day
- Feature is currently in preview
File upload
You can upload files to Google’s servers and reference them by URI. This works for PDFs, images, videos, and audio files.Image generation
Certain models (such asgemini-2.5-flash-image) can generate text and images inline.
See more information on the Gemini API docs for details.
Audio generation
Certain models (such asgemini-2.5-flash-preview-tts) can generate audio files.
See more information on the Gemini API docs for details.
Tool calling
You can equip the model with tools to call.Structured output
Force the model to respond with a specific structure. See the Gemini API docs for more info.+=:
Structured output methods
Two methods are supported for structured output:method="function_calling"(default): Uses tool calling to extract structured data.method="json_schema": Uses Gemini’s native structured output.
json_schema method is recommended for better reliability as it constrains the model’s generation process directly rather than relying on post-processing tool calls.
Token usage tracking
Access token usage information from the response metadata.Thinking support
With reasoning models, you have the option to adjust the number of internal thinking tokens used (thinking_budget) or to disable thinking altogether. To see a thinking model’s thoughts, setinclude_thoughts=True to have the model’s reasoning summaries included in the response.
Thought signatures
Thought signatures are encrypted representations of the model’s reasoning processes. They enable Gemini to maintain thought context across multi-turn conversations, since the API is stateless and treats each request independently.Gemini 3 may raise 4xx errors if thought signatures are not passed back with tool call responses. Upgrade to
langchain-google-genai >= 3.1.0 to ensure this is handled correctly.AIMessage responses:
- Text blocks: Stored in
extras.signaturewithin the content block - Tool calls: Stored in
additional_kwargs["__gemini_function_call_thought_signatures__"]
AIMessage back to the model so signatures are preserved. This happens automatically when you append the AIMessage to your messages list:
Built-in tools
Google Gemini supports a variety of built-in tools, which can be bound to the model in the usual way.Google search
See Gemini docs for detail.Code execution
See Gemini docs for detail.Safety settings
Gemini models have default safety settings that can be overridden. If you are receiving lots of'Safety Warnings' from your models, you can try tweaking the safety_settings attribute of the model. For example, to turn off safety blocking for dangerous content, you can construct your LLM as follows:
Context caching
Context caching allows you to store and reuse content (e.g., PDFs, images) for faster processing. Thecached_content parameter accepts a cache name created via the Google Generative AI API.
Single file example
Single file example
This caches a single file and queries it.
Multiple files example
Multiple files example
This caches two files using
Part and queries them together.Response metadata
Access response metadata from the model response.API reference
For detailed documentation of all features and configuration options, head to theChatGoogleGenerativeAI API reference.