Skip to content

Commit e40dfa7

Browse files
committed
make sure ChatUser values are lowercase
1 parent 5ce7e33 commit e40dfa7

File tree

4 files changed

+10
-20
lines changed

4 files changed

+10
-20
lines changed

src/main/kotlin/com/cjcrafter/openai/chat/ChatBot.kt

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,6 @@
11
package com.cjcrafter.openai.chat
22

3-
import com.google.gson.Gson
4-
import com.google.gson.GsonBuilder
5-
import com.google.gson.JsonObject
6-
import com.google.gson.JsonParser
3+
import com.google.gson.*
74
import okhttp3.MediaType
85
import okhttp3.MediaType.Companion.toMediaType
96
import okhttp3.OkHttpClient
@@ -25,7 +22,9 @@ class ChatBot(private val apiKey: String) {
2522
.connectTimeout(30, TimeUnit.SECONDS)
2623
.readTimeout(30, TimeUnit.SECONDS).build()
2724
private val mediaType: MediaType = "application/json; charset=utf-8".toMediaType()
28-
private val gson: Gson = GsonBuilder().create()
25+
private val gson: Gson = GsonBuilder()
26+
.registerTypeAdapter(ChatUser::class.java, JsonSerializer<ChatUser> { src, _, context -> context!!.serialize(src!!.name.lowercase())!! })
27+
.create()
2928

3029
/**
3130
* Blocks the current thread until OpenAI responds to https request. The
@@ -43,7 +42,7 @@ class ChatBot(private val apiKey: String) {
4342
val json = gson.toJson(request)
4443
val body: RequestBody = json.toRequestBody(mediaType)
4544
val httpRequest: Request = Request.Builder()
46-
.url("https://api.openai.com/v11/chat/completions")
45+
.url("https://api.openai.com/v1/chat/completions")
4746
.addHeader("Content-Type", "application/json")
4847
.addHeader("Authorization", "Bearer $apiKey")
4948
.post(body).build()

src/main/kotlin/com/cjcrafter/openai/chat/ChatUser.kt

Lines changed: 1 addition & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,5 @@ enum class ChatUser {
3131
/**
3232
* [ASSISTANT] is the AI that generates responses.
3333
*/
34-
ASSISTANT;
35-
36-
/**
37-
* OpenAI's API expects the user to be lowercase.
38-
*/
39-
override fun toString(): String {
40-
return name.lowercase()
41-
}
34+
ASSISTANT
4235
}

src/test/java/JavaTest.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
import com.cjcrafter.openai.chat.*;
22
import io.github.cdimascio.dotenv.Dotenv;
3-
import okhttp3.MediaType;
43

54
import java.io.IOException;
65
import java.util.ArrayList;
@@ -19,18 +18,17 @@ public static void main(String[] args) throws IOException {
1918
ChatRequest request = new ChatRequest("gpt-3.5-turbo", messages);
2019
ChatBot bot = new ChatBot(key);
2120

22-
MediaType.
2321
while (true) {
2422
System.out.println("Enter text below:\n\n");
2523
String input = scan.nextLine();
2624

2725
// Generate a response, and print it to the user.
2826
messages.add(new ChatMessage(ChatUser.USER, input));
2927
ChatResponse response = bot.generateResponse(request);
30-
System.out.println("\n" + response.getChoices().get(0).getMessage().getContent());
28+
System.out.println("\n" + response.get(0).getMessage().getContent());
3129

3230
// Save the generated message to the bot's conversational memory
33-
messages.add(response.getChoices().get(0).getMessage());
31+
messages.add(response.get(0).getMessage());
3432
}
3533
}
3634
}

src/test/kotlin/KotlinTest.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,9 @@ fun main(args: Array<String>) {
2222
// Generate a response, and print it to the user.
2323
messages.add(input.toUserMessage())
2424
val response = bot.generateResponse(request)
25-
println("\n${response.choices[0].message.content}\n")
25+
println("\n${response[0].message.content}\n")
2626

2727
// Save the generated message to the bot's conversational memory
28-
messages.add(response.choices[0].message)
28+
messages.add(response[0].message)
2929
}
3030
}

0 commit comments

Comments
 (0)