flashvayne / chatgpt-spring-boot-starter

a chatgpt starter based on Openai Official Apis.
MIT License
225 stars 55 forks source link
chatgpt image-generation java openai spring-boot starter

Maven central

chatgpt-spring-boot-starter

This starter is based on OpenAi Official Apis. You can use chatgpt in springboot project easily.

Functions:

Usage

1.Add maven dependency.

<dependency>
    <groupId>io.github.flashvayne</groupId>
    <artifactId>chatgpt-spring-boot-starter</artifactId>
    <version>1.0.5</version>
</dependency>

2.Set chatgpt properties in your application.yml

chatgpt:
  api-key: xxxxxxxxxxx   #api-key. It can be generated here https://platform.openai.com/account/api-keys
# some more properties(model,max-tokens...etc.) have default values. Also you can config them here. 

3.Inject bean ChatgptService anywhere you require it, and invoke its methods.

3.1 Chat

3.1.1 Single message
@Autowired
private ChatgptService chatgptService;

public void test(){
    String responseMessage = chatgptService.multiChat(Arrays.asList(new MultiChatMessage("user","how are you?")));
    System.out.print(responseMessage); //\n\nAs an AI language model, I don't have feelings, but I'm functioning well. Thank you for asking. How can I assist you today?
}

public void test2(){
    String responseMessage = chatgptService.sendMessage("how are you");
    System.out.print(responseMessage); //I'm doing well, thank you. How about you?
}
3.1.2 Multi message. You can take a series of messages (including the conversation history) as input , and return a response message as output.
@Autowired
private ChatgptService chatgptService;

public void testMultiChat(){
    List<MultiChatMessage> messages = Arrays.asList(
            new MultiChatMessage("system","You are a helpful assistant."),
            new MultiChatMessage("user","Who won the world series in 2020?"),
            new MultiChatMessage("assistant","The Los Angeles Dodgers won the World Series in 2020."),
            new MultiChatMessage("user","Where was it played?"));
    String responseMessage = chatgptService.multiChat(messages);
    System.out.print(responseMessage); //The 2020 World Series was played at Globe Life Field in Arlington, Texas.
}

3.2 Image generation

@Autowired
private ChatgptService chatgptService;

public void testImage(){
    String imageUrl = chatgptService.imageGenerate("A cute baby sea otter");
    System.out.print(imageUrl); //https://oaidalleapip.......
}

public void testImageList(){
    List<String> images = chatgptService.imageGenerate("A cute baby sea otter", 2, ImageSize.SMALL, ImageFormat.URL);
    System.out.print(images.toString());//["https://oaidalleapipr.....ZwA%3D","https://oaidalleapipr....RE0%3D"]
}

Demo project:

demo-chatgpt-spring-boot-starter

Author Info

Email: flashvayne@gmail.com

Blog: https://vayne.cc

Acknowledgments

Thanks to JetBrains for their support of this project. They provided JetBrains Development Tool lisences for us.

JetBrains Logo (Main) logo