Spring Boot Integration with Google Bard — Web API to access the Google AI chat box

Larry Deng
2 min readMar 30, 2023

--

I have created a Java library for Google Bard that can help us make a simple call to ask questions and get answers. Now I integrated the Java library into the Spring Boot application. So that we can make it publicly available to others.

Add Dependencies

Add the pkslow google-bard to the Spring Boot project:

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.pkslow</groupId>
<artifactId>google-bard</artifactId>
<version>0.0.3</version>
</dependency>
</dependencies>

Create a bean of GoogleBardClient

We need to create a bean of GoogleBardClient before you can use it to ask the questions:

@Configuration
public class GoogleBardConfig {

@Bean
public GoogleBardClient googleBardClient(@Value("${ai.google-bard.token}") String token) {
return new GoogleBardClient(token);
}
}

BardController

Inject the GoogleBardClient bean in the Controller, and get the question from request param.

@RestController
@RequestMapping("/google-bard")
public class BardController {
private final GoogleBardClient client;

public BardController(GoogleBardClient client) {
this.client = client;
}


@GetMapping("/ask")
public BardAnswer ask(@RequestParam("q") String question) {
Answer answer = client.ask(question);
if (answer.status() == AnswerStatus.OK) {
return new BardAnswer(answer.chosenAnswer(), answer.draftAnswers());
}

if (answer.status() == AnswerStatus.NO_ANSWER) {
return new BardAnswer("No Answer", null);
}

throw new RuntimeException("Can't access to Google Bard");

}
}

After we asked and got the answers, we will return the related DTO object.

properties

Set the token from browser:

server.port=8088
ai.google-bard.token=UgiXYPjpaIYuE9K_3BSqCWnT2W**********************

How to get the token?

Go to https://bard.google.com/

  • F12 for console
  • Copy the values
  • Session: Go to Application → Cookies → __Secure-1PSID. Copy the value of that cookie.

Test with Postman

Question 1: How to be a good father?

Queston 2: what is pkslow.com?

Log:

Code

The code is on GitHub.

--

--