diff --git a/README-zh.md b/README-zh.md index 4774555..0328362 100644 --- a/README-zh.md +++ b/README-zh.md @@ -21,14 +21,14 @@ OpenAi4J是一个非官方的Java库,旨在帮助java开发者与OpenAI的GPT ## 导入依赖 ### Gradle -`implementation 'io.github.lambdua::0.22.91'` +`implementation 'io.github.lambdua::0.22.92'` ### Maven ```xml io.github.lambdua service - 0.22.91 + 0.22.92 ``` @@ -61,7 +61,7 @@ static void simpleChat() { io.github.lambdua api - 0.22.91 + 0.22.92 ``` diff --git a/README.md b/README.md index 8ba019b..2ad7007 100644 --- a/README.md +++ b/README.md @@ -25,14 +25,14 @@ applications effortlessly. ## Import ### Gradle -`implementation 'io.github.lambdua::0.22.91'` +`implementation 'io.github.lambdua::0.22.92'` ### Maven ```xml io.github.lambdua service - 0.22.91 + 0.22.92 ``` @@ -67,7 +67,7 @@ To utilize pojos, import the api module: io.github.lambdua api - 0.22.91 + 0.22.92 ``` diff --git a/api/pom.xml b/api/pom.xml index 71913e5..2a7a610 100644 --- a/api/pom.xml +++ b/api/pom.xml @@ -6,7 +6,7 @@ io.github.lambdua openai-java - 0.22.91 + 0.22.92 jar api diff --git a/api/src/main/java/com/theokanning/openai/CompletionTokensDetails.java b/api/src/main/java/com/theokanning/openai/CompletionTokensDetails.java new file mode 100644 index 0000000..b626a79 --- /dev/null +++ b/api/src/main/java/com/theokanning/openai/CompletionTokensDetails.java @@ -0,0 +1,23 @@ +package com.theokanning.openai; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +/** + * Breakdown of tokens used in a completion. + */ +@Data +public class CompletionTokensDetails { + + @JsonProperty("reasoning_tokens") + long reasoningTokens; + + @JsonProperty("audio_tokens") + long audioTokens; + + @JsonProperty("accepted_prediction_tokens") + long acceptedPredictionTokens; + + @JsonProperty("rejected_prediction_tokens") + long rejectedPredictionTokens; +} diff --git a/api/src/main/java/com/theokanning/openai/PromptTokensDetails.java b/api/src/main/java/com/theokanning/openai/PromptTokensDetails.java new file mode 100644 index 0000000..a61bd4c --- /dev/null +++ b/api/src/main/java/com/theokanning/openai/PromptTokensDetails.java @@ -0,0 +1,22 @@ +package com.theokanning.openai; + +import com.fasterxml.jackson.annotation.JsonProperty; +import lombok.Data; + +/** + * Breakdown of tokens used in the prompt. + */ +@Data +public class PromptTokensDetails { + /** + * Cached tokens present in the prompt. + */ + @JsonProperty("cached_tokens") + long cachedTokens; + + /** + * Audio input tokens present in the prompt. + */ + @JsonProperty("audio_tokens") + long audioTokens; +} diff --git a/api/src/main/java/com/theokanning/openai/Usage.java b/api/src/main/java/com/theokanning/openai/Usage.java index 1e7eaa5..c2647de 100644 --- a/api/src/main/java/com/theokanning/openai/Usage.java +++ b/api/src/main/java/com/theokanning/openai/Usage.java @@ -25,4 +25,16 @@ public class Usage { */ @JsonProperty("total_tokens") long totalTokens; + + /** + * Breakdown of tokens used in the prompt. + */ + @JsonProperty("prompt_tokens_details") + PromptTokensDetails promptTokensDetails; + + /** + * Breakdown of tokens used in a completion. + */ + @JsonProperty("completion_tokens_details") + CompletionTokensDetails completionTokensDetails; } diff --git a/api/src/test/resources/fixtures/ChatCompletionResult.json b/api/src/test/resources/fixtures/ChatCompletionResult.json index c9757b7..db2bf85 100644 --- a/api/src/test/resources/fixtures/ChatCompletionResult.json +++ b/api/src/test/resources/fixtures/ChatCompletionResult.json @@ -315,6 +315,14 @@ "usage": { "prompt_tokens": 9, "completion_tokens": 12, - "total_tokens": 21 + "total_tokens": 21, + "prompt_tokens_details": { + "cached_tokens": 0 + }, + "completion_tokens_details": { + "reasoning_tokens": 0, + "accepted_prediction_tokens": 0, + "rejected_prediction_tokens": 0 + } } } diff --git a/client/pom.xml b/client/pom.xml index f5e3519..86b448b 100644 --- a/client/pom.xml +++ b/client/pom.xml @@ -6,7 +6,7 @@ io.github.lambdua openai-java - 0.22.91 + 0.22.92 jar diff --git a/example/pom.xml b/example/pom.xml index 07ffae8..135176c 100644 --- a/example/pom.xml +++ b/example/pom.xml @@ -6,7 +6,7 @@ io.github.lambdua example - 0.22.91 + 0.22.92 example @@ -17,7 +17,7 @@ io.github.lambdua service - 0.22.91 + 0.22.92 diff --git a/pom.xml b/pom.xml index 9fcd3f4..abf3e05 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ io.github.lambdua openai-java - 0.22.91 + 0.22.92 pom openai java 版本 https://github.com/Lambdua/openai-java diff --git a/service/pom.xml b/service/pom.xml index fcce0af..7abb611 100644 --- a/service/pom.xml +++ b/service/pom.xml @@ -6,7 +6,7 @@ io.github.lambdua openai-java - 0.22.91 + 0.22.92 jar diff --git a/service/src/test/java/com/theokanning/openai/service/ChatCompletionTest.java b/service/src/test/java/com/theokanning/openai/service/ChatCompletionTest.java index e4cf84d..f91d9f2 100644 --- a/service/src/test/java/com/theokanning/openai/service/ChatCompletionTest.java +++ b/service/src/test/java/com/theokanning/openai/service/ChatCompletionTest.java @@ -43,8 +43,11 @@ void createChatCompletion() { .logitBias(new HashMap<>()) .build(); - List choices = service.createChatCompletion(chatCompletionRequest).getChoices(); - assertEquals(5, choices.size()); + ChatCompletionResult chatCompletionResult = service.createChatCompletion(chatCompletionRequest); + assertEquals(5, chatCompletionResult.getChoices().size()); + assertNotNull(chatCompletionResult.getUsage()); + assertNotNull(chatCompletionResult.getUsage().getPromptTokensDetails()); + assertNotNull(chatCompletionResult.getUsage().getCompletionTokensDetails()); } @Test