# GenerateContentRequest.Builder


```
public final class GenerateContentRequest.Builder
```

<br />

*** ** * ** ***

Builder for `https://developers.google.com/android/reference/com/google/mlkit/genai/prompt/GenerateContentRequest`.

## Summary

| ### Public constructors |
|---|
| `https://developers.google.com/android/reference/com/google/mlkit/genai/prompt/GenerateContentRequest.Builder#Builder(com.google.mlkit.genai.prompt.Content)(@https://developer.android.com/reference/androidx/annotation/NonNull.html https://developers.google.com/android/reference/com/google/mlkit/genai/prompt/Content content)` |
| `https://developers.google.com/android/reference/com/google/mlkit/genai/prompt/GenerateContentRequest.Builder#Builder(kotlin.collections.List)(@https://developer.android.com/reference/androidx/annotation/NonNull.html https://developer.android.com/reference/java/util/List.html<@https://developer.android.com/reference/androidx/annotation/NonNull.html https://developers.google.com/android/reference/com/google/mlkit/genai/prompt/Content> contents)` |
| `https://developers.google.com/android/reference/com/google/mlkit/genai/prompt/GenerateContentRequest.Builder#Builder(com.google.mlkit.genai.prompt.TextPart)(@https://developer.android.com/reference/androidx/annotation/NonNull.html https://developers.google.com/android/reference/com/google/mlkit/genai/prompt/TextPart text)` |
| `https://developers.google.com/android/reference/com/google/mlkit/genai/prompt/GenerateContentRequest.Builder#Builder(com.google.mlkit.genai.prompt.ImagePart,com.google.mlkit.genai.prompt.TextPart)(@https://developer.android.com/reference/androidx/annotation/NonNull.html https://developers.google.com/android/reference/com/google/mlkit/genai/prompt/ImagePart image, @https://developer.android.com/reference/androidx/annotation/NonNull.html https://developers.google.com/android/reference/com/google/mlkit/genai/prompt/TextPart text)` |
| `https://developers.google.com/android/reference/com/google/mlkit/genai/prompt/GenerateContentRequest.Builder#Builder(com.google.mlkit.genai.prompt.SystemInstruction,com.google.mlkit.genai.prompt.TextPart)( @https://developer.android.com/reference/androidx/annotation/NonNull.html https://developers.google.com/android/reference/com/google/mlkit/genai/prompt/SystemInstruction systemInstruction, @https://developer.android.com/reference/androidx/annotation/NonNull.html https://developers.google.com/android/reference/com/google/mlkit/genai/prompt/TextPart text )` |
| `https://developers.google.com/android/reference/com/google/mlkit/genai/prompt/GenerateContentRequest.Builder#Builder(com.google.mlkit.genai.prompt.SystemInstruction,com.google.mlkit.genai.prompt.ImagePart,com.google.mlkit.genai.prompt.TextPart)( @https://developer.android.com/reference/androidx/annotation/NonNull.html https://developers.google.com/android/reference/com/google/mlkit/genai/prompt/SystemInstruction systemInstruction, @https://developer.android.com/reference/androidx/annotation/NonNull.html https://developers.google.com/android/reference/com/google/mlkit/genai/prompt/ImagePart image, @https://developer.android.com/reference/androidx/annotation/NonNull.html https://developers.google.com/android/reference/com/google/mlkit/genai/prompt/TextPart text )` |

| ### Public methods |
|---|---|
| `final @https://developer.android.com/reference/androidx/annotation/NonNull.html https://developers.google.com/android/reference/com/google/mlkit/genai/prompt/GenerateContentRequest` | `https://developers.google.com/android/reference/com/google/mlkit/genai/prompt/GenerateContentRequest.Builder#build()()` |
| `final https://developer.android.com/reference/java/lang/String.html` | `https://developers.google.com/android/reference/com/google/mlkit/genai/prompt/GenerateContentRequest.Builder#getCachedContextName()()` |
| `final https://developer.android.com/reference/java/lang/Integer.html` | `https://developers.google.com/android/reference/com/google/mlkit/genai/prompt/GenerateContentRequest.Builder#getCandidateCount()()` |
| `final https://developer.android.com/reference/java/util/List.html<@https://developer.android.com/reference/androidx/annotation/NonNull.html https://developers.google.com/android/reference/com/google/mlkit/genai/schema/tools/FunctionDeclaration>` | `https://developers.google.com/android/reference/com/google/mlkit/genai/prompt/GenerateContentRequest.Builder#getDynamicTools()()` Tool declarations built at runtime (both app-defined dynamic tools and AppFunction tools). |
| `final boolean` | `https://developers.google.com/android/reference/com/google/mlkit/genai/prompt/GenerateContentRequest.Builder#getEnableThinking()()` |
| `final https://developer.android.com/reference/java/lang/Integer.html` | `https://developers.google.com/android/reference/com/google/mlkit/genai/prompt/GenerateContentRequest.Builder#getMaxOutputTokens()()` |
| `final https://developers.google.com/android/reference/com/google/mlkit/genai/prompt/PromptPrefix` | `https://developers.google.com/android/reference/com/google/mlkit/genai/prompt/GenerateContentRequest.Builder#getPromptPrefix()()` |
| `final https://developer.android.com/reference/java/lang/Integer.html` | `https://developers.google.com/android/reference/com/google/mlkit/genai/prompt/GenerateContentRequest.Builder#getSeed()()` |
| `final https://developer.android.com/reference/java/lang/String.html` | `https://developers.google.com/android/reference/com/google/mlkit/genai/prompt/GenerateContentRequest.Builder#getSessionId()()` An optional identifier for tracking multi-turn conversational sessions across generation requests in telemetry and caching. |
| `final https://developers.google.com/android/reference/com/google/mlkit/genai/prompt/SystemInstruction` | `https://developers.google.com/android/reference/com/google/mlkit/genai/prompt/GenerateContentRequest.Builder#getSystemInstruction()()` |
| `final https://developer.android.com/reference/java/lang/Float.html` | `https://developers.google.com/android/reference/com/google/mlkit/genai/prompt/GenerateContentRequest.Builder#getTemperature()()` |
| `final https://developer.android.com/reference/java/lang/Integer.html` | `https://developers.google.com/android/reference/com/google/mlkit/genai/prompt/GenerateContentRequest.Builder#getTopK()()` |
| `final void` | `https://developers.google.com/android/reference/com/google/mlkit/genai/prompt/GenerateContentRequest.Builder#setCachedContextName(kotlin.String)(https://developer.android.com/reference/java/lang/String.html cachedContextName)` |
| `final void` | `https://developers.google.com/android/reference/com/google/mlkit/genai/prompt/GenerateContentRequest.Builder#setCandidateCount(kotlin.Int)(https://developer.android.com/reference/java/lang/Integer.html candidateCount)` |
| `final void` | `https://developers.google.com/android/reference/com/google/mlkit/genai/prompt/GenerateContentRequest.Builder#setDynamicTools(kotlin.collections.List)(https://developer.android.com/reference/java/util/List.html<@https://developer.android.com/reference/androidx/annotation/NonNull.html https://developers.google.com/android/reference/com/google/mlkit/genai/schema/tools/FunctionDeclaration> dynamicTools)` Tool declarations built at runtime (both app-defined dynamic tools and AppFunction tools). |
| `final void` | `https://developers.google.com/android/reference/com/google/mlkit/genai/prompt/GenerateContentRequest.Builder#setEnableThinking(kotlin.Boolean)(boolean enableThinking)` |
| `final void` | `https://developers.google.com/android/reference/com/google/mlkit/genai/prompt/GenerateContentRequest.Builder#setMaxOutputTokens(kotlin.Int)(https://developer.android.com/reference/java/lang/Integer.html maxOutputTokens)` |
| `final void` | `https://developers.google.com/android/reference/com/google/mlkit/genai/prompt/GenerateContentRequest.Builder#setPromptPrefix(com.google.mlkit.genai.prompt.PromptPrefix)(https://developers.google.com/android/reference/com/google/mlkit/genai/prompt/PromptPrefix promptPrefix)` |
| `final void` | `https://developers.google.com/android/reference/com/google/mlkit/genai/prompt/GenerateContentRequest.Builder#setSeed(kotlin.Int)(https://developer.android.com/reference/java/lang/Integer.html seed)` |
| `final void` | `https://developers.google.com/android/reference/com/google/mlkit/genai/prompt/GenerateContentRequest.Builder#setSessionId(kotlin.String)(https://developer.android.com/reference/java/lang/String.html sessionId)` An optional identifier for tracking multi-turn conversational sessions across generation requests in telemetry and caching. |
| `final void` | `https://developers.google.com/android/reference/com/google/mlkit/genai/prompt/GenerateContentRequest.Builder#setSystemInstruction(com.google.mlkit.genai.prompt.SystemInstruction)(https://developers.google.com/android/reference/com/google/mlkit/genai/prompt/SystemInstruction systemInstruction)` |
| `final void` | `https://developers.google.com/android/reference/com/google/mlkit/genai/prompt/GenerateContentRequest.Builder#setTemperature(kotlin.Float)(https://developer.android.com/reference/java/lang/Float.html temperature)` |
| `final @https://developer.android.com/reference/androidx/annotation/NonNull.html https://developers.google.com/android/reference/com/google/mlkit/genai/prompt/GenerateContentRequest.Builder` | `@https://errorprone.info/api/latest/com/google/errorprone/annotations/CanIgnoreReturnValue.html https://developers.google.com/android/reference/com/google/mlkit/genai/prompt/GenerateContentRequest.Builder#setTools(kotlin.collections.List)(@https://developer.android.com/reference/androidx/annotation/NonNull.html https://developer.android.com/reference/java/util/List.html<@https://developer.android.com/reference/androidx/annotation/NonNull.html https://developers.google.com/android/reference/com/google/mlkit/genai/schema/tools/FunctionDeclaration> tools)` Sets the list of tools, i.e. `https://developers.google.com/android/reference/com/google/mlkit/genai/prompt/GenerateContentRequest.Builder#dynamicTools()`. |
| `final void` | `https://developers.google.com/android/reference/com/google/mlkit/genai/prompt/GenerateContentRequest.Builder#setTopK(kotlin.Int)(https://developer.android.com/reference/java/lang/Integer.html topK)` |

## Public constructors

### Builder

```
public Builder(@NonNull Content content)
```

### Builder

```
public Builder(@NonNull List<@NonNull Content> contents)
```

### Builder

```
public Builder(@NonNull TextPart text)
```

### Builder

```
public Builder(@NonNull ImagePart image, @NonNull TextPart text)
```

### Builder

```
public Builder(
    @NonNull SystemInstruction systemInstruction,
    @NonNull TextPart text
)
```

### Builder

```
public Builder(
    @NonNull SystemInstruction systemInstruction,
    @NonNull ImagePart image,
    @NonNull TextPart text
)
```

## Public methods

### build

```
public final @NonNull GenerateContentRequest build()
```

### getCachedContextName

```
public final String getCachedContextName()
```

### getCandidateCount

```
public final Integer getCandidateCount()
```

### getDynamicTools

```
public final List<@NonNull FunctionDeclaration> getDynamicTools()
```

Tool declarations built at runtime (both app-defined dynamic tools and AppFunction tools). See `https://developers.google.com/android/reference/com/google/mlkit/genai/prompt/GenerateContentRequest.Builder#setTools(kotlin.collections.List)`.

### getEnableThinking

```
public final boolean getEnableThinking()
```

### getMaxOutputTokens

```
public final Integer getMaxOutputTokens()
```

### getPromptPrefix

```
public final PromptPrefix getPromptPrefix()
```

### getSeed

```
public final Integer getSeed()
```

### getSessionId

```
public final String getSessionId()
```

An optional identifier for tracking multi-turn conversational sessions across generation requests in telemetry and caching.

When provided, the session ID must be non-blank, at most 128 characters, and contain only alphanumeric characters, underscores (`_`), hyphens (`-`), or dots (`.`), and cannot be `.` or `..`.

| Throws |
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-illegal-argument-exception/index.html` | if the provided session ID does not meet these criteria. |

### getSystemInstruction

```
public final SystemInstruction getSystemInstruction()
```

### getTemperature

```
public final Float getTemperature()
```

### getTopK

```
public final Integer getTopK()
```

### setCachedContextName

```
public final void setCachedContextName(String cachedContextName)
```

### setCandidateCount

```
public final void setCandidateCount(Integer candidateCount)
```

### setDynamicTools

```
public final void setDynamicTools(List<@NonNull FunctionDeclaration> dynamicTools)
```

Tool declarations built at runtime (both app-defined dynamic tools and AppFunction tools). See `https://developers.google.com/android/reference/com/google/mlkit/genai/prompt/GenerateContentRequest.Builder#setTools(kotlin.collections.List)`.

### setEnableThinking

```
public final void setEnableThinking(boolean enableThinking)
```

### setMaxOutputTokens

```
public final void setMaxOutputTokens(Integer maxOutputTokens)
```

### setPromptPrefix

```
public final void setPromptPrefix(PromptPrefix promptPrefix)
```

### setSeed

```
public final void setSeed(Integer seed)
```

### setSessionId

```
public final void setSessionId(String sessionId)
```

An optional identifier for tracking multi-turn conversational sessions across generation requests in telemetry and caching.

When provided, the session ID must be non-blank, at most 128 characters, and contain only alphanumeric characters, underscores (`_`), hyphens (`-`), or dots (`.`), and cannot be `.` or `..`.

| Throws |
|---|---|
| `https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-illegal-argument-exception/index.html` | if the provided session ID does not meet these criteria. |

### setSystemInstruction

```
public final void setSystemInstruction(SystemInstruction systemInstruction)
```

### setTemperature

```
public final void setTemperature(Float temperature)
```

### setTools

```
@CanIgnoreReturnValue
public final @NonNull GenerateContentRequest.Builder setTools(@NonNull List<@NonNull FunctionDeclaration> tools)
```

Sets the list of tools, i.e. `https://developers.google.com/android/reference/com/google/mlkit/genai/prompt/GenerateContentRequest.Builder#dynamicTools()`.

This list can include both functions implemented directly by this app and AppFunction tools discovered via `AppFunctionTools.getAppFunctions`.

| Parameters |
|---|---|
| `@https://developer.android.com/reference/androidx/annotation/NonNull.html https://developer.android.com/reference/java/util/List.html<@https://developer.android.com/reference/androidx/annotation/NonNull.html https://developers.google.com/android/reference/com/google/mlkit/genai/schema/tools/FunctionDeclaration> tools` | declarations of runtime tools in the form of `https://developers.google.com/android/reference/com/google/mlkit/genai/schema/tools/FunctionDeclaration`s. |

### setTopK

```
public final void setTopK(Integer topK)
```