Problem statement : develop spring boot API which connect's to Open AI and will give top 5
personalities of any sports. Other than sports,
if you give another details should display warning message.
We have different AI Chat models as mentioned below
OpenAI Chat Completion (streaming and function-calling support)
Microsoft Azure Open AI Chat Completion (streaming and function-calling support)
Hugging Face Chat Completion (no streaming support)
Google Vertex AI PaLM2 Chat Completion (no streaming support)
Google Vertex AI Gemini Chat Completion (streaming, multi-modality & function-calling support)
MistralAI Chat Completion (streaming and function-calling support)
This is post will explain you about , how we can use Open AI model to build simple spring boot application
Step 1 : Signup : https://platform.openai.com/signup
generate key - https://platform.openai.com/account/api-keys
Step 2 : spring boot intializr : https://start.spring.io/
dependencies : OpenAI and other related dependencies
Provide group artifact and other required details
import project to IntelliJ
Step3 : Write Controller
package com.personal.openai;
import org.springframework.ai.chat.messages.Message;
import org.springframework.ai.chat.messages.SystemMessage;
import org.springframework.ai.chat.messages.UserMessage;
import org.springframework.ai.openai.OpenAiChatModel;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class OpenAIController {
@Autowired
private OpenAiChatModel openAiChatModel;
@GetMapping("/sports")
public String getSportPersonaDetails(@RequestParam String name){
var systemMessage = new SystemMessage("Your primary function is to provide details about sports," +
" if anything else asks simply say that i can provide only sports details");
String promptMessage = String.format(" Could you please provide detailed information" +
" on the top 5 sports persons currently in %s ?",name);
Message message = new UserMessage(promptMessage);
return openAiChatModel.call(message,systemMessage);
}
}
Step 4: update the properties/yaml
spring.application.name=openai
spring.ai.openai.api-key=sk-proj-NNcDe2HRc1UUjcbIRkRsT3Blbk
spring.ai.openai.chat.enabled=true
spring.ai.openai.chat.options.model=gpt-3.5-turbo
spring.ai.openai.chat.options.temperature=0.7
Step 5 : Run the code and start the server
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.2.5</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.personal</groupId>
<artifactId>openai</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>openai</name>
<description>Demo project for Spring Boot ai</description>
<url/>
<licenses>
<license/>
</licenses>
<developers>
<developer/>
</developers>
<scm>
<connection/>
<developerConnection/>
<tag/>
<url/>
</scm>
<properties>
<java.version>17</java.version>
<spring-ai.version>1.0.0-M1</spring-ai.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-openai-spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.ai</groupId>
<artifactId>spring-ai-bom</artifactId>
<version>${spring-ai.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>spring-milestones</id>
<name>Spring Milestones</name>
<url>https://repo.spring.io/milestone</url>
<snapshots>
<enabled>false</enabled>
</snapshots>
</repository>
</repositories>
</project>
Step 6: Output : http://localhost:8080/sports?name=cricket
http://localhost:8080/sports?name=tollywood
Very Good And Useful information Thank For Sharing if you want to join - Graphics Designing course in delhi visit Vcare Technical Institute.
ReplyDeleteVery Good And Useful information Thank For Sharing if you want to join - Graphics Designing course in east delhi visit Vcare Technical Institute.
ReplyDeleteIn the digital era, a captivating website is paramount for any educational institution's success. At Vcare Technical Institute, we understand the significance of a dynamic online presence. Our website designing philosophy revolves around simplicity, functionality, and innovation.
ReplyDeleteWe specialize in creating responsive, user-friendly websites that engage and inform visitors. Through intuitive interfaces and cutting-edge technologies, we ensure seamless navigation and accessibility for all users.
With Vcare Technical Institute's expertise in website designing, we elevate your institution's digital presence, attracting prospective students and stakeholders alike. Join us in shaping the future of education through exceptional web design solutions.
Visit our website-https://vcaretechnicalinstitute.com/
Contact us- 8319004365
Very Good And Useful information Thank For Sharing if you want to join - Data Science Course in Laxmi nagar visit Vcare Technical Institute.
ReplyDeleteVery Good And Useful information Thank For Sharing if you want to join - Payment Gateway services in east delhi visit Vcare Technical Institute.
ReplyDeleteThis comment has been removed by the author.
ReplyDelete