Skip to content

Commit

Permalink
clean up gen new conversation
Browse files Browse the repository at this point in the history
  • Loading branch information
liej6799 committed Feb 22, 2023
1 parent 2c866c0 commit a190a74
Show file tree
Hide file tree
Showing 2 changed files with 59 additions and 49 deletions.
55 changes: 55 additions & 0 deletions src/main/java/com/github/plexpt/chatgpt/client/ChatGPTService.java
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,10 @@
import com.fasterxml.jackson.databind.DeserializationFeature;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.PropertyNamingStrategy;
import com.github.plexpt.chatgpt.api.conversation.Content;
import com.github.plexpt.chatgpt.api.conversation.ConversationRequest;
import com.github.plexpt.chatgpt.api.conversation.ConversationResponse;
import com.github.plexpt.chatgpt.api.conversation.Message;
import com.github.plexpt.chatgpt.api.conversations.ConversationsResponse;
import com.github.plexpt.chatgpt.api.model.ModelResponse;
import okhttp3.ConnectionPool;
Expand All @@ -18,9 +20,14 @@
import retrofit2.http.Body;

import javax.net.ssl.*;
import java.io.IOException;
import java.security.KeyManagementException;
import java.security.NoSuchAlgorithmException;
import java.time.Duration;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.TimeUnit;

import static java.time.Duration.ofSeconds;
Expand Down Expand Up @@ -88,4 +95,52 @@ public ResponseBody getConversation(ConversationRequest request) {
return conversationApi.getConversation(request).blockingGet();
}

public List<ConversationResponse> getNewConversation(String inputMessage) {
ArrayList<ConversationResponse> finalResult = new ArrayList<>();
ArrayList<String> parts = new ArrayList<>();
ArrayList<Message> messages = new ArrayList<>();
try {
parts.add(inputMessage);

Content content = Content.builder()
.content_type("text")
.parts(parts).build();

Message message = Message.builder()
.id(java.util.UUID.randomUUID().toString())
.role("user")
.content(content)
.build();

messages.add(message);

ConversationRequest conversationRequest = ConversationRequest.builder()
.action("next")
.messages(messages)
.conversation_id(null)
.parent_message_id(java.util.UUID.randomUUID().toString())
.model("text-davinci-002-render-sha")
.build();

ResponseBody result = getConversation(conversationRequest);
String body = result.string();

for (String s : body.split("\n")) {
if ((s == null) || "".equals(s)) {
continue;
}
if (s.contains("data: [DONE]")) {
continue;
}

String part = s.substring(5);

finalResult.add( new ObjectMapper().readValue(part, ConversationResponse.class));
}

return finalResult;
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
53 changes: 4 additions & 49 deletions src/test/java/com/github/chatgpt/OpenAIAuthTest.java
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
package com.github.chatgpt;

import java.io.IOException;
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.alibaba.fastjson2.JSON;
Expand Down Expand Up @@ -50,55 +52,8 @@ public void getConversations() {

@Test
public void getConversation() {
ArrayList<String> parts = new ArrayList<>();
ArrayList<Message> messages = new ArrayList<>();

parts.add("Generate a poem about yourself");

Content content = Content.builder()
.content_type("text")
.parts(parts).build();

Message message = Message.builder()
.id(java.util.UUID.randomUUID().toString())
.role("user")
.content(content)
.build();

messages.add(message);

ConversationRequest conversationRequest = ConversationRequest.builder()
.action("next")
.messages(messages)
.conversation_id(null)
.parent_message_id(java.util.UUID.randomUUID().toString())
.model("text-davinci-002-render-sha")
.build();

ResponseBody result = chatGPTService.getConversation(conversationRequest);

try {
String body = result.string();

Map<String, Object> chatData = new HashMap<>();
for (String s : body.split("\n")) {
if ((s == null) || "".equals(s)) {
continue;
}
if (s.contains("data: [DONE]")) {
continue;
}

String part = s.substring(5);
ConversationResponse emp = new ObjectMapper().readValue(part, ConversationResponse.class);
System.out.println(emp.getMessage().getContent().getParts());
}


} catch (IOException e) {
throw new RuntimeException(e);
}
List<ConversationResponse> result = chatGPTService.getNewConversation("Generate a short poem about yourself.");
System.out.println(result.get(result.size() - 1).getMessage().getContent().getParts().get(0).toString());
}


}

0 comments on commit a190a74

Please sign in to comment.