❯ Guillaume Laforge

Gemini-Interactions-Api

Creating Images and Videos in Java With the New Nano Banana and Omni Models

Google just announced the launch of some new image and video models: Nano Banana 2 Lite (the fastest, most cost-efficient Gemini Image model yet) and Gemini Omni Flash for high-quality video and conversational editing. You can read all about the announcement on the Google Blog.

As soon as I saw the news, I couldn’t wait to get my hands dirty. I wanted to see how easy it would be to generate images and videos using the Gemini Interactions API Java SDK.

Read more...

Gemini Interactions API now GA: Exploring the release candidate of my Java SDK

The Google Gemini Interactions API is now generally available (GA). It provides a unified interface for interacting with Gemini models and agents. You can read the official announcement on the Google Blog, and if you are using Python, Philipp Schmid published a helpful developer guide to get started.

For Java developers, the Gemini Interactions API SDK for Java is gearing up for its stable release with the availability of v1.0.0-RC1. Here is a look at what is new in this release candidate.

Read more...

Managed AI Agents with the Gemini Interactions Java SDK

Google recently announced Managed Agents in the Gemini API at Google I/O. This feature allows developers to run autonomous agents that “reason, plan, use tools, and execute code inside isolated cloud sandboxes”.

Rather than requiring developers to manually build, secure, and scale the execution environment (including sandbox containers, network routes, and runtime engines), the Gemini API handles this infrastructure. This is powered by the Antigravity agent running on Gemini 3.5 Flash.

This article shows how to implement these agentic capabilities in Java using the Gemini Interactions SDK.

Read more...

Streaming Gemini 3.1's expressive new TTS model in Java

Google just released Gemini 3.1 Flash Text-to-Speech (TTS), a new expressive TTS model that you can steer with audio tags and scene descriptions.

I wanted to see how it worked with the Gemini Interactions SDK for Java.

Expressive control

The model sounds natural out of the box, but the real benefit is the control you have over expressiveness. By defining “Audio Profiles”, “Scene Details”, and “Director’s Notes” in your prompt, you can control the character’s pacing, tone, and environment.

Read more...

Generating music with Lyria 3 and the Gemini Interactions Java SDK

Generative AI isn’t just about text or images (with Nano Banana) but it’s also great at generating videos (with Veo 3). And now with the recently released Lyria 3 model from DeepMind, you can create some engaging and creative music with lyrics (generated, or your own) or invent a calming instrumental track to loop in the background of your online TikTok or YouTube Shorts.

And of course, if you’re a Java developer like me, you can do all that in Java!

Read more...

Building a Research Assistant with the Interactions API in Java

First of all, dear readers, let me wish you a happy new year! This is my first post on this blog for 2026. I’m looking forward to continuing sharing interesting content with you.

During my holiday break, I wanted to put my recent Java implementation of the Gemini Interactions API to the test. I implemented and released it with the help of Antigravity. My colleague Shubham Saboo and Gargi Gupta wrote a tutorial on how to build an AI research agent with Google Interactions API & Gemini 3. I thought this was a great opportunity to replicate this example in Java using my Interactions API Java SDK.

Read more...

Implementing the Interactions API with Antigravity

Google and DeepMind have announced the Interactions API, a new way to interact with Gemini models and agents.

Here are some useful links to learn more about this new API:

About the Interactions API

The Rationale and Motivation

The Interactions API was introduced to address a shift in AI development, moving from simple, stateless text generation to more complex, multi-turn agentic workflows. It serves as a dedicated interface for systems that require memory, reasoning, and tool use. It provides a unified interface for both simple LLM calls and more complex agent calls.

Read more...