From 02fb50ad19784e4ff176de6d417fd57705e958c3 Mon Sep 17 00:00:00 2001 From: namankhurpia Date: Sun, 14 Jan 2024 19:44:38 -0500 Subject: [PATCH 1/2] adding multi threaded multi key documentation --- README.md | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 73 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index d465f4a..3b2ce44 100644 --- a/README.md +++ b/README.md @@ -32,6 +32,10 @@ This Java library (community-maintained Library) provides a convenient way to in - [Multithreaded Async Chat Completion API](#multithreaded-async-chat-completion-api) - [Multithreaded Async Moderation API](#multithreaded-async-moderation-api) +### Multi-Asynchronous-MultiKey + +- [EMMC EasyOpenAI Multithreaded MultiKey ChatCompletionAPI](#EMMC EasyOpenAI Multithreaded MultiKey ChatCompletionAPI) + # Contributing Guidelines Please refer [CONTRIBUTING.md](https://github.com/namankhurpia/Easy-open-ai/blob/main/CONTRIBUTING.md) @@ -62,7 +66,7 @@ ChatCompletionRequest request = ChatCompletionRequest.builder() .messages(messages) .build(); -ChatCompletionResponse response = new EasyopenaiService(new DAOImpl()).chatCompletion(keys.get(0),request); +ChatCompletionResponse response = new EasyopenaiService(new DAOImpl()).chatCompletion("OPENAI_KEY",request); ``` @@ -389,6 +393,74 @@ For multi-threading and concurrent calls with the Moderation API, follow these s Click [here](#multi-async-moderation-api) to jump to the code example. +## EMMC EasyOpenAI Multithreaded MultiKey ChatCompletionAPI + +This allows you to make multiple Chat completion calls with multiple keys. All API calls are executed parallely but the response is actively collected and sent back when all the threads are finished. + +CompletableFuture class has been used for implementation. Kindly refer EasyopenaiConcurrentService.java file to see the source. + +Example Usgage- + +```java +public static void CallMultipleChatCompletionAPI_multikey_Test() +{ + //this function read multiple keys from keys.txt file + ArrayList keyList = readKeys(); + + EasyopenaiConcurrentService concurrentCalls = new EasyopenaiConcurrentService(); + + ChatCompletionRequestList list = new ChatCompletionRequestList(new ArrayList()); + + //First thread for + ChatCompletionRequest requestchat = new ChatCompletionRequest(); + requestchat.setModel("gpt-3.5-turbo"); + Message message = new Message(); + message.setRole("user"); + message.setContent("what is the capital of India?"); + List messages = new ArrayList<>(); + messages.add(message); + requestchat.setMessages(messages); + list.add(requestchat); + + + ChatCompletionRequest requestchat2 = new ChatCompletionRequest(); + requestchat2.setModel("gpt-3.5-turbo"); + Message message2 = new Message(); + message2.setRole("user"); + message2.setContent("what is the capital of combodia?"); + List messages2 = new ArrayList<>(); + messages2.add(message2); + requestchat2.setMessages(messages2); + list.add(requestchat2); + + + ChatCompletionRequest requestchat3 = new ChatCompletionRequest(); + requestchat3.setModel("gpt-3.5-turbo"); + Message message3 = new Message(); + message3.setRole("user"); + message3.setContent("what is the capital of new zealand?"); + List messages3 = new ArrayList<>(); + messages3.add(message3); + requestchat3.setMessages(messages3); + list.add(requestchat3); + + + ChatCompletionRequest requestchat4 = new ChatCompletionRequest(); + requestchat4.setModel("gpt-3.5-turbo"); + Message message4 = new Message(); + message4.setRole("user"); + message4.setContent("what is the capital of hawaii? and what is 2+2?"); + List messages4 = new ArrayList<>(); + messages4.add(message4); + requestchat4.setMessages(messages4); + list.add(requestchat4); + + + + ChatCompletionResponseList responseList = concurrentCalls.CallMultipleChatCompletionAPI(keyList, list); + System.out.println("response is"+responseList); +} +``` # Dependencies From 444bee361caa66c697febabf3fc0145ceb670d20 Mon Sep 17 00:00:00 2001 From: namankhurpia Date: Sun, 14 Jan 2024 20:18:22 -0500 Subject: [PATCH 2/2] updating version 1.0.8 --- README.md | 2 +- pom.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 3b2ce44..c19bada 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ This repository contains the community-maintained library for OpenAI's API in ja [![Maven Central](https://maven-badges.herokuapp.com/maven-central/io.github.namankhurpia/easyopenai/badge.svg)](https://maven-badges.herokuapp.com/maven-central/io.github.namankhurpia/easyopenai) -[![Your Custom Badge](https://img.shields.io/badge/Easyopenai-1.0.7-brightgreen)](https://central.sonatype.com/artifact/io.github.namankhurpia/easyopenai) +[![Your Custom Badge](https://img.shields.io/badge/Easyopenai-1.0.8-brightgreen)](https://central.sonatype.com/artifact/io.github.namankhurpia/easyopenai) ## Overview diff --git a/pom.xml b/pom.xml index a8ed3a8..05f94bc 100644 --- a/pom.xml +++ b/pom.xml @@ -6,7 +6,7 @@ io.github.namankhurpia easyopenai - 1.0.7 + 1.0.8