CtrlK
CommunityDocumentationLog inGet started
Tessl Logo

tessl/maven-org-springframework-ai--spring-ai-starter-model-openai

Spring Boot Starter for OpenAI integration providing auto-configuration for chat completion, embeddings, image generation, audio speech synthesis, audio transcription, and content moderation models. Includes high-level ChatClient API and conversation memory support.

Overview
Eval results
Files

quick-start.mddocs/guides/

Quick Start Guide

Get started with Spring AI OpenAI Starter in 5 minutes.

Prerequisites

  • Java 21 or higher
  • Spring Boot 3.x
  • OpenAI API key

Step 1: Add Dependency

Add to your Maven pom.xml:

<dependency>
    <groupId>org.springframework.ai</groupId>
    <artifactId>spring-ai-starter-model-openai</artifactId>
    <version>1.1.2</version>
</dependency>

Or Gradle build.gradle:

implementation 'org.springframework.ai:spring-ai-starter-model-openai:1.1.2'

Step 2: Configure API Key

Add to application.properties:

spring.ai.openai.api-key=sk-...

Or use environment variable:

export OPENAI_API_KEY="sk-..."

Step 3: Use Chat Model

import org.springframework.ai.openai.OpenAiChatModel;
import org.springframework.ai.chat.model.ChatResponse;
import org.springframework.ai.chat.prompt.Prompt;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class ChatService {

    private final OpenAiChatModel chatModel;

    @Autowired
    public ChatService(OpenAiChatModel chatModel) {
        this.chatModel = chatModel;
    }

    public String chat(String userMessage) {
        ChatResponse response = chatModel.call(new Prompt(userMessage));
        return response.getResult().getOutput().getContent();
    }
}

Step 4: Use ChatClient (High-Level API)

For a simpler API, use ChatClient:

import org.springframework.ai.chat.client.ChatClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class ChatClientService {

    private final ChatClient chatClient;

    @Autowired
    public ChatClientService(ChatClient.Builder chatClientBuilder) {
        this.chatClient = chatClientBuilder
            .defaultSystem("You are a helpful assistant")
            .build();
    }

    public String chat(String userMessage) {
        return chatClient.prompt()
            .user(userMessage)
            .call()
            .content();
    }
}

Common Tasks

Generate Embeddings

@Autowired
private OpenAiEmbeddingModel embeddingModel;

public float[] embedText(String text) {
    return embeddingModel.embed(text);
}

Generate Images

@Autowired
private OpenAiImageModel imageModel;

public String generateImage(String prompt) {
    ImagePrompt imagePrompt = new ImagePrompt(prompt);
    ImageResponse response = imageModel.call(imagePrompt);
    return response.getResult().getOutput().getUrl();
}

Text-to-Speech

@Autowired
private OpenAiAudioSpeechModel speechModel;

public byte[] textToSpeech(String text) {
    SpeechResponse response = speechModel.call(text);
    return response.getResult().getOutput();
}

Speech-to-Text

@Autowired
private OpenAiAudioTranscriptionModel transcriptionModel;

public String transcribe(String audioFilePath) {
    Resource audioFile = new FileSystemResource(audioFilePath);
    TranscriptionResponse response = transcriptionModel.call(audioFile);
    return response.getResult().getOutput();
}

Content Moderation

@Autowired
private OpenAiModerationModel moderationModel;

public boolean isContentSafe(String content) {
    ModerationPrompt prompt = new ModerationPrompt(content);
    ModerationResponse response = moderationModel.call(prompt);
    Moderation moderation = response.getResult().getOutput();
    
    for (ModerationResult result : moderation.getResults()) {
        if (result.isFlagged()) {
            return false;
        }
    }
    return true;
}

Next Steps

  • Configuration Options - Customize model behavior
  • Real-World Scenarios - See practical examples
  • API Reference - Detailed API documentation
  • Return to Overview
tessl i tessl/maven-org-springframework-ai--spring-ai-starter-model-openai@1.1.1

docs

index.md

tile.json