Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 5d74cfd

Browse filesBrowse files
committed
Add Completion api
Might add a builder or something to make setting specific parameters easier
1 parent 13336e6 commit 5d74cfd
Copy full SHA for 5d74cfd

File tree

Expand file treeCollapse file tree

6 files changed

+69
-2
lines changed
Filter options
Expand file treeCollapse file tree

6 files changed

+69
-2
lines changed
+10-2Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,26 @@
11
package example;
22

33
import openai.OpenAiService;
4+
import openai.completion.CompletionRequest;
45
import openai.engine.Engine;
56

67
class OpenAiApiExample {
78
public static void main(String... args) {
89
String token = System.getenv("OPENAI_TOKEN");
910
OpenAiService service = new OpenAiService(token);
1011

11-
System.out.println("Getting available engines");
12+
System.out.println("Getting available engines...");
1213
service.getEngines().forEach(System.out::println);
1314

14-
System.out.println("Getting ada engine");
15+
System.out.println("Getting ada engine...");
1516
Engine ada = service.getEngine("ada");
1617
System.out.println(ada);
18+
19+
System.out.println("Creating completion...");
20+
CompletionRequest completionRequest = new CompletionRequest();
21+
completionRequest.setPrompt("Somebody once told me the world is gonna roll me");
22+
completionRequest.setEcho(true);
23+
service.createCompletion("ada", completionRequest).getChoices().forEach(System.out::println);
24+
1725
}
1826
}

‎openai/src/main/java/openai/OpenAiApi.java

Copy file name to clipboardExpand all lines: openai/src/main/java/openai/OpenAiApi.java
+7Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,12 @@
11
package openai;
22

33
import io.reactivex.Single;
4+
import openai.completion.CompletionRequest;
5+
import openai.completion.CompletionResult;
46
import openai.engine.Engine;
7+
import retrofit2.http.Body;
58
import retrofit2.http.GET;
9+
import retrofit2.http.POST;
610
import retrofit2.http.Path;
711

812
public interface OpenAiApi {
@@ -12,4 +16,7 @@ public interface OpenAiApi {
1216

1317
@GET("/v1/engines/{engine_id}")
1418
Single<Engine> getEngine(@Path("engine_id") String engineId);
19+
20+
@POST("/v1/engines/{engine_id}/completions")
21+
Single<CompletionResult> createCompletion(@Path("engine_id") String engineId, @Body CompletionRequest request);
1522
}

‎openai/src/main/java/openai/OpenAiService.java

Copy file name to clipboardExpand all lines: openai/src/main/java/openai/OpenAiService.java
+6Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@
66
import com.fasterxml.jackson.databind.PropertyNamingStrategy;
77
import okhttp3.ConnectionPool;
88
import okhttp3.OkHttpClient;
9+
import openai.completion.CompletionRequest;
10+
import openai.completion.CompletionResult;
911
import openai.engine.Engine;
1012
import retrofit2.Retrofit;
1113
import retrofit2.adapter.rxjava2.RxJava2CallAdapterFactory;
@@ -46,4 +48,8 @@ public List<Engine> getEngines() {
4648
public Engine getEngine(String engineId) {
4749
return api.getEngine(engineId).blockingGet();
4850
}
51+
52+
public CompletionResult createCompletion(String engineId, CompletionRequest request) {
53+
return api.createCompletion(engineId, request).blockingGet();
54+
}
4955
}
+11Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package openai.completion;
2+
3+
import lombok.Data;
4+
5+
@Data
6+
public class CompletionChoice {
7+
String text;
8+
Integer index;
9+
// todo add logprobs
10+
String finish_reason;
11+
}
+21Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package openai.completion;
2+
3+
import lombok.Data;
4+
5+
import java.util.List;
6+
7+
@Data
8+
public class CompletionRequest {
9+
String prompt;
10+
Integer maxTokens;
11+
Double temperature;
12+
Double topP;
13+
Integer n;
14+
Boolean stream;
15+
Integer logprobs;
16+
Boolean echo;
17+
List<String> stop; //todo test this
18+
Double presencePenalty;
19+
Double frequencyPenalty;
20+
Integer bestOf;
21+
}
+14Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
package openai.completion;
2+
3+
import lombok.Data;
4+
5+
import java.util.List;
6+
7+
@Data
8+
public class CompletionResult {
9+
String id;
10+
String object;
11+
long created;
12+
String model;
13+
List<CompletionChoice> choices;
14+
}

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.