Thursday, June 20, 2024

Getting started Spring AI with OpenAI Chat Model

 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

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

              
This how we can work on any Models. 



















        

6 comments:

  1. Very Good And Useful information Thank For Sharing if you want to join - Graphics Designing course in delhi visit Vcare Technical Institute.

    ReplyDelete
  2. Very Good And Useful information Thank For Sharing if you want to join - Graphics Designing course in east delhi visit Vcare Technical Institute.

    ReplyDelete
  3. In 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.
    We 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

    ReplyDelete
  4. Very Good And Useful information Thank For Sharing if you want to join - Data Science Course in Laxmi nagar visit Vcare Technical Institute.

    ReplyDelete
  5. Very Good And Useful information Thank For Sharing if you want to join - Payment Gateway services in east delhi visit Vcare Technical Institute.

    ReplyDelete
  6. This comment has been removed by the author.

    ReplyDelete

AddToAny

Contact Form

Name

Email *

Message *