googleapis / googleapis/google-cloud-java

Add built-in support for exposing the response schema as a structured object map

Abierto
#11,628 2 comentarios 0 reacciones 0 asignados Ver en GitHub
priority: p3 type: feature request
Lenguaje dominante
Java
Estrellas
2.1k
Forks
1.2k
Merge medio
1 d 23 h
PR fusionados (30 d)
154

Descripción

**Is your feature request related to a problem? Please describe.**
Currently, when using the Java Vertex AI SDK’s `generateContent()` (e.g. via `ContentMaker`), we only get back a raw JSON string. Client code must separately construct a JSON Schema, attach it in `GenerationConfig`, then manually parse the returned JSON—either via Jackson’s `ObjectMapper` or via Protobuf’s `JsonFormat`. This boilerplate is brittle, error-prone, and hides what fields the model will actually return.

**Describe the solution you’d like**

1. Expose the active response schema programmatically. For example:

```java
Schema schema = model.getResponseSchema();
```

or as metadata on `GenerateContentResponse`.
2. Provide a one-step parser that binds the response into a POJO, Map, or Protobuf message, e.g.

```java
MyResult result = response.getTypedContent(MyResult.class);
```

under the hood handling all JSON Schema validation and mapping.

**Describe alternatives you’ve considered**

* Continuing to manually wire up JSON Schema definitions + `GenerationConfig`.
* Writing custom helper utilities in each codebase to wrap `ObjectMapper` or `JsonFormat`.
* Using generic `Map` parsing and then casting fields at runtime.

**Additional context**

* Sample desired usage:

```java
Schema schema = model.getResponseSchema();
MyResponse resp = model.generateContent(prompt, config)
.getTypedContent(MyResponse.class);
```
* This would eliminate repetitive boilerplate, reduce parsing errors, and let developers discover response fields at compile time.

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.