Skip to content

ddobrin/gemini-workshop-for-spring-ai-java-developers

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

57 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Gemini in Java with Google GenAI SDK and Spring AI

Gemini workshop for Java developers, using the Spring AI orchestration framework

Note

These snippets are geared towards Java developers, allowing them to discover capabilities and patterns supported by Gemini using the Spring AI framework.

Library support

  • Released
    • Spring AI 1.1.1
    • Google GenAI SDK 1.28.0
  • Milestone
    • upcoming Spring AI 2.0.0

Prerequisites

The code snippets have been tested on the following environment:

  • Java 21/25
  • Maven >= 3.9.6

In order to run these code snippets, you need to have a Google Cloud account and project ready.

Before running the examples, you'll need to set up environment variables, for either Google credentials or or an API Key from Google AI Studio:

Credentials: 
  Google creds set:
    export GOOGLE_CLOUD_PROJECT=<your-project-id>
    export GOOGLE_CLOUD_LOCATION=<your region>, ex: us-central1
    export USE_VERTEX_AI=true

  Google API Key:
    export GOOGLE_API_KEY=...
    export USE_VERTEX_AI=false

Model:     
  export GEMINI_MODEL=<model>, ex: gemini-3-pro-preview, gemini-2.5-flash

Important

Please update the project ID and location to match your project and select the model of your choice

Create the Maven wrapper:

mvn wrapper:wrapper

Complete list

The snippets in this workshop are grouped by various capabilities and patterns. You will find, in order:

  • Chat
    • Simple Q&A with Gemini
    • Conversation with Gemini with chat history
    • Simple Q&A via streaming
  • Multimodality
    • Analyzing & extracting image data using Multimodality
    • Transcribing audio data using Multimodality
    • Transcribing video data using Multimodality
  • Capabilities
    • Structure prompts with prompt templates
    • Extracting structured data from unstructured text
    • Grounding responses with Web Search
    • Function Calling with Spring AI (multiple functions, JSON Schema, Async, Streaming)
  • Document utilities
    • Document Readers and Splitters
  • Embeddings
    • Generating Text Embeddings with Vertex AI
    • Generating Multimodal Embeddings with Vertex AI
  • Token Management
    • Compute Tokens
    • Count Tokens
    • Count Tokens with Configs
  • File Search Store
    • File Search Store (Sync)
    • File Search Store (Async)
  • AI use-cases and patterns
    • Retrieval-augmented generation(RAG)
    • Text classification with Few-shot prompting
    • Sentiment analysis with few-shot prompting
    • Summarization Patterns with Gemini: Stuffing, Map-Reduce Patterns
  • Local environments
    • Running Open-models with Ollama and Testcontainers

Build

Tip

Note the profile complete used for the build

Build the samples in a single JAR, then run them individually for the respective use-case:

./mvnw clean package -Pcomplete

Run

Tip

List of samples, by use-case. Each sample can be run independently


This is not an official Google product.

About

Gemini workshop for Java developers, using the Spring AI orchestration framework

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published