package dev.danvega.flash;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.core.ParameterizedTypeReference;
import org.springframework.http.HttpHeaders;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.client.RestClient;
import java.util.List;
@RestController
public class GeminiModelController {
private static final Logger log = LoggerFactory.getLogger(GeminiModelController.class);
@Value("${spring.ai.openai.api-key}")
private String GEMINI_API_KEY;
private final RestClient restClient;
public GeminiModelController(RestClient.Builder builder) {
log.info("GeminiModelController...");
this.restClient = builder
.baseUrl("https://generativelanguage.googleapis.com")
.build();
}
/*
curl https://generativelanguage.googleapis.com/v1beta/openai/models \ ✔ 10s base
-H "Authorization: Bearer GEMINI_API_KEY"
*/
@GetMapping("/models")
public List<GeminiModel> models() {
ResponseEntity<ModelListResponse> response = restClient.get()
.uri("/v1beta/openai/models")
.header("Authorization","Bearer " + GEMINI_API_KEY)
.retrieve()
.toEntity(ModelListResponse.class);
return response.getBody().data();
}
}
Created
March 22, 2025 20:53
-
-
Save johnidm/65ccc1ae67291a1b627195fa3d10268f to your computer and use it in GitHub Desktop.
Example Spring Web - LLM raw request
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment