Delete all lombok from project and build as JDK version 11
This commit is contained in:
parent
f63a2438dc
commit
062798c73a
77
README.md
77
README.md
|
@ -1,77 +0,0 @@
|
|||
![Maven Central](https://img.shields.io/maven-central/v/com.theokanning.openai-gpt3-java/client?color=blue)
|
||||
|
||||
> ⚠️The [Answers](https://help.openai.com/en/articles/6233728-answers-transition-guide),
|
||||
>[Classifications](https://help.openai.com/en/articles/6272941-classifications-transition-guide),
|
||||
>and [Searches](https://help.openai.com/en/articles/6272952-search-transition-guide) APIs are deprecated,
|
||||
>and will stop working on December 3rd, 2022.
|
||||
|
||||
> ⚠️OpenAI has deprecated all Engine-based APIs. See [Deprecated Endpoints](https://github.com/TheoKanning/openai-java#deprecated-endpoints) below for more info.
|
||||
|
||||
# OpenAI-Java
|
||||
Java libraries for using OpenAI's GPT-3 api.
|
||||
|
||||
Includes the following artifacts:
|
||||
- `api` : request/response POJOs for the GPT-3 engine, completion, and search APIs.
|
||||
- `client` : a basic retrofit client for the GPT-3 endpoints, includes the `api` module
|
||||
|
||||
as well as an example project using the client.
|
||||
|
||||
## Supported APIs
|
||||
- [Models](https://beta.openai.com/docs/api-reference/models)
|
||||
- [Completions](https://beta.openai.com/docs/api-reference/completions)
|
||||
- [Edits](https://beta.openai.com/docs/api-reference/edits)
|
||||
- [Embeddings](https://beta.openai.com/docs/api-reference/embeddings)
|
||||
- [Files](https://beta.openai.com/docs/api-reference/files)
|
||||
- [Fine-tunes](https://beta.openai.com/docs/api-reference/fine-tunes)
|
||||
- [Moderations](https://beta.openai.com/docs/api-reference/moderations)
|
||||
|
||||
#### Deprecated by OpenAI
|
||||
- [Searches](https://beta.openai.com/docs/api-reference/searches)
|
||||
- [Classifications](https://beta.openai.com/docs/api-reference/classifications)
|
||||
- [Answers](https://beta.openai.com/docs/api-reference/answers)
|
||||
- [Engines](https://beta.openai.com/docs/api-reference/engines)
|
||||
|
||||
## Usage
|
||||
|
||||
### Importing into a gradle project
|
||||
`implementation 'com.theokanning.openai-gpt3-java:api:<version>'`
|
||||
or
|
||||
`implementation 'com.theokanning.openai-gpt3-java:client:<version>'`
|
||||
|
||||
### Using OpenAiService
|
||||
If you're looking for the fastest solution, import the `client` and use [OpenAiService](client/src/main/java/com/theokanning/openai/OpenAiService.java).
|
||||
```
|
||||
OpenAiService service = new OpenAiService("your_token");
|
||||
CompletionRequest completionRequest = CompletionRequest.builder()
|
||||
.prompt("Somebody once told me the world is gonna roll me")
|
||||
.model("ada")
|
||||
.echo(true)
|
||||
.build();
|
||||
service.createCompletion(completionRequest).getChoices().forEach(System.out::println);
|
||||
```
|
||||
|
||||
### Using OpenAiApi Retrofit client
|
||||
If you're using retrofit, you can import the `client` module and use the [OpenAiApi](client/src/main/java/com/theokanning/openai/OpenAiApi.java).
|
||||
You'll have to add your auth token as a header (see [AuthenticationInterceptor](client/src/main/java/com/theokanning/openai/AuthenticationInterceptor.java))
|
||||
and set your converter factory to use snake case and only include non-null fields.
|
||||
|
||||
### Using data classes only
|
||||
If you want to make your own client, just import the POJOs from the `api` module.
|
||||
Your client will need to use snake case to work with the OpenAI API.
|
||||
|
||||
## Running the example project
|
||||
All the [example](example/src/main/java/example/OpenAiApiExample.java) project requires is your OpenAI api token
|
||||
```
|
||||
export OPENAI_TOKEN="sk-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
|
||||
./gradlew example:run
|
||||
```
|
||||
|
||||
## Deprecated Endpoints
|
||||
OpenAI has deprecated engine-based endpoints in favor of model-based endpoints.
|
||||
For example, instead of using `v1/engines/{engine_id}/completions`, switch to `v1/completions` and specify the model in the `CompletionRequest`.
|
||||
The code includes upgrade instructions for all deprecated endpoints.
|
||||
|
||||
I won't remove the old endpoints from this library until OpenAI shuts them down.
|
||||
|
||||
## License
|
||||
Published under the MIT License
|
21
build.gradle
21
build.gradle
|
@ -1,21 +0,0 @@
|
|||
buildscript {
|
||||
repositories {
|
||||
mavenCentral()
|
||||
}
|
||||
|
||||
dependencies {
|
||||
classpath 'com.vanniktech:gradle-maven-publish-plugin:0.19.0'
|
||||
}
|
||||
}
|
||||
|
||||
allprojects {
|
||||
repositories {
|
||||
mavenCentral()
|
||||
}
|
||||
|
||||
plugins.withId("com.vanniktech.maven.publish") {
|
||||
mavenPublish {
|
||||
sonatypeHost = "S01"
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,14 +0,0 @@
|
|||
GROUP=com.theokanning.openai-gpt3-java
|
||||
VERSION_NAME=0.8.1
|
||||
|
||||
POM_URL=https://github.com/theokanning/openai-java
|
||||
POM_SCM_URL=https://github.com/theokanning/openai-java
|
||||
POM_SCM_CONNECTION=https://github.com/theokanning/openai-java.git
|
||||
POM_SCM_DEV_CONNECTION=https://github.com/theokanning/openai-java.git
|
||||
|
||||
POM_LICENSE_NAME=The MIT License
|
||||
POM_LICENSE_URL=https://www.mit.edu/~amini/LICENSE.md
|
||||
POM_LICENSE_DIST=repo
|
||||
|
||||
POM_DEVELOPER_ID=theokanning
|
||||
POM_DEVELOPER_NAME=Theo Kanning
|
|
@ -1,185 +0,0 @@
|
|||
#!/usr/bin/env sh
|
||||
|
||||
#
|
||||
# Copyright 2015 the original author or authors.
|
||||
#
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# https://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
#
|
||||
|
||||
##############################################################################
|
||||
##
|
||||
## Gradle start up script for UN*X
|
||||
##
|
||||
##############################################################################
|
||||
|
||||
# Attempt to set APP_HOME
|
||||
# Resolve links: $0 may be a link
|
||||
PRG="$0"
|
||||
# Need this for relative symlinks.
|
||||
while [ -h "$PRG" ] ; do
|
||||
ls=`ls -ld "$PRG"`
|
||||
link=`expr "$ls" : '.*-> \(.*\)$'`
|
||||
if expr "$link" : '/.*' > /dev/null; then
|
||||
PRG="$link"
|
||||
else
|
||||
PRG=`dirname "$PRG"`"/$link"
|
||||
fi
|
||||
done
|
||||
SAVED="`pwd`"
|
||||
cd "`dirname \"$PRG\"`/" >/dev/null
|
||||
APP_HOME="`pwd -P`"
|
||||
cd "$SAVED" >/dev/null
|
||||
|
||||
APP_NAME="Gradle"
|
||||
APP_BASE_NAME=`basename "$0"`
|
||||
|
||||
# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"'
|
||||
|
||||
# Use the maximum available, or set MAX_FD != -1 to use that value.
|
||||
MAX_FD="maximum"
|
||||
|
||||
warn () {
|
||||
echo "$*"
|
||||
}
|
||||
|
||||
die () {
|
||||
echo
|
||||
echo "$*"
|
||||
echo
|
||||
exit 1
|
||||
}
|
||||
|
||||
# OS specific support (must be 'true' or 'false').
|
||||
cygwin=false
|
||||
msys=false
|
||||
darwin=false
|
||||
nonstop=false
|
||||
case "`uname`" in
|
||||
CYGWIN* )
|
||||
cygwin=true
|
||||
;;
|
||||
Darwin* )
|
||||
darwin=true
|
||||
;;
|
||||
MINGW* )
|
||||
msys=true
|
||||
;;
|
||||
NONSTOP* )
|
||||
nonstop=true
|
||||
;;
|
||||
esac
|
||||
|
||||
CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar
|
||||
|
||||
|
||||
# Determine the Java command to use to start the JVM.
|
||||
if [ -n "$JAVA_HOME" ] ; then
|
||||
if [ -x "$JAVA_HOME/jre/sh/java" ] ; then
|
||||
# IBM's JDK on AIX uses strange locations for the executables
|
||||
JAVACMD="$JAVA_HOME/jre/sh/java"
|
||||
else
|
||||
JAVACMD="$JAVA_HOME/bin/java"
|
||||
fi
|
||||
if [ ! -x "$JAVACMD" ] ; then
|
||||
die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME
|
||||
|
||||
Please set the JAVA_HOME variable in your environment to match the
|
||||
location of your Java installation."
|
||||
fi
|
||||
else
|
||||
JAVACMD="java"
|
||||
which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
|
||||
Please set the JAVA_HOME variable in your environment to match the
|
||||
location of your Java installation."
|
||||
fi
|
||||
|
||||
# Increase the maximum file descriptors if we can.
|
||||
if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then
|
||||
MAX_FD_LIMIT=`ulimit -H -n`
|
||||
if [ $? -eq 0 ] ; then
|
||||
if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then
|
||||
MAX_FD="$MAX_FD_LIMIT"
|
||||
fi
|
||||
ulimit -n $MAX_FD
|
||||
if [ $? -ne 0 ] ; then
|
||||
warn "Could not set maximum file descriptor limit: $MAX_FD"
|
||||
fi
|
||||
else
|
||||
warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT"
|
||||
fi
|
||||
fi
|
||||
|
||||
# For Darwin, add options to specify how the application appears in the dock
|
||||
if $darwin; then
|
||||
GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\""
|
||||
fi
|
||||
|
||||
# For Cygwin or MSYS, switch paths to Windows format before running java
|
||||
if [ "$cygwin" = "true" -o "$msys" = "true" ] ; then
|
||||
APP_HOME=`cygpath --path --mixed "$APP_HOME"`
|
||||
CLASSPATH=`cygpath --path --mixed "$CLASSPATH"`
|
||||
|
||||
JAVACMD=`cygpath --unix "$JAVACMD"`
|
||||
|
||||
# We build the pattern for arguments to be converted via cygpath
|
||||
ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`
|
||||
SEP=""
|
||||
for dir in $ROOTDIRSRAW ; do
|
||||
ROOTDIRS="$ROOTDIRS$SEP$dir"
|
||||
SEP="|"
|
||||
done
|
||||
OURCYGPATTERN="(^($ROOTDIRS))"
|
||||
# Add a user-defined pattern to the cygpath arguments
|
||||
if [ "$GRADLE_CYGPATTERN" != "" ] ; then
|
||||
OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)"
|
||||
fi
|
||||
# Now convert the arguments - kludge to limit ourselves to /bin/sh
|
||||
i=0
|
||||
for arg in "$@" ; do
|
||||
CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -`
|
||||
CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option
|
||||
|
||||
if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition
|
||||
eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"`
|
||||
else
|
||||
eval `echo args$i`="\"$arg\""
|
||||
fi
|
||||
i=`expr $i + 1`
|
||||
done
|
||||
case $i in
|
||||
0) set -- ;;
|
||||
1) set -- "$args0" ;;
|
||||
2) set -- "$args0" "$args1" ;;
|
||||
3) set -- "$args0" "$args1" "$args2" ;;
|
||||
4) set -- "$args0" "$args1" "$args2" "$args3" ;;
|
||||
5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;;
|
||||
6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;;
|
||||
7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;;
|
||||
8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;;
|
||||
9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;;
|
||||
esac
|
||||
fi
|
||||
|
||||
# Escape application args
|
||||
save () {
|
||||
for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done
|
||||
echo " "
|
||||
}
|
||||
APP_ARGS=`save "$@"`
|
||||
|
||||
# Collect all arguments for the java command, following the shell quoting and substitution rules
|
||||
eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS"
|
||||
|
||||
exec "$JAVACMD" "$@"
|
|
@ -1,104 +0,0 @@
|
|||
@rem
|
||||
@rem Copyright 2015 the original author or authors.
|
||||
@rem
|
||||
@rem Licensed under the Apache License, Version 2.0 (the "License");
|
||||
@rem you may not use this file except in compliance with the License.
|
||||
@rem You may obtain a copy of the License at
|
||||
@rem
|
||||
@rem https://www.apache.org/licenses/LICENSE-2.0
|
||||
@rem
|
||||
@rem Unless required by applicable law or agreed to in writing, software
|
||||
@rem distributed under the License is distributed on an "AS IS" BASIS,
|
||||
@rem WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
@rem See the License for the specific language governing permissions and
|
||||
@rem limitations under the License.
|
||||
@rem
|
||||
|
||||
@if "%DEBUG%" == "" @echo off
|
||||
@rem ##########################################################################
|
||||
@rem
|
||||
@rem Gradle startup script for Windows
|
||||
@rem
|
||||
@rem ##########################################################################
|
||||
|
||||
@rem Set local scope for the variables with windows NT shell
|
||||
if "%OS%"=="Windows_NT" setlocal
|
||||
|
||||
set DIRNAME=%~dp0
|
||||
if "%DIRNAME%" == "" set DIRNAME=.
|
||||
set APP_BASE_NAME=%~n0
|
||||
set APP_HOME=%DIRNAME%
|
||||
|
||||
@rem Resolve any "." and ".." in APP_HOME to make it shorter.
|
||||
for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi
|
||||
|
||||
@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.
|
||||
set DEFAULT_JVM_OPTS="-Xmx64m" "-Xms64m"
|
||||
|
||||
@rem Find java.exe
|
||||
if defined JAVA_HOME goto findJavaFromJavaHome
|
||||
|
||||
set JAVA_EXE=java.exe
|
||||
%JAVA_EXE% -version >NUL 2>&1
|
||||
if "%ERRORLEVEL%" == "0" goto init
|
||||
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.
|
||||
echo.
|
||||
echo Please set the JAVA_HOME variable in your environment to match the
|
||||
echo location of your Java installation.
|
||||
|
||||
goto fail
|
||||
|
||||
:findJavaFromJavaHome
|
||||
set JAVA_HOME=%JAVA_HOME:"=%
|
||||
set JAVA_EXE=%JAVA_HOME%/bin/java.exe
|
||||
|
||||
if exist "%JAVA_EXE%" goto init
|
||||
|
||||
echo.
|
||||
echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%
|
||||
echo.
|
||||
echo Please set the JAVA_HOME variable in your environment to match the
|
||||
echo location of your Java installation.
|
||||
|
||||
goto fail
|
||||
|
||||
:init
|
||||
@rem Get command-line arguments, handling Windows variants
|
||||
|
||||
if not "%OS%" == "Windows_NT" goto win9xME_args
|
||||
|
||||
:win9xME_args
|
||||
@rem Slurp the command line arguments.
|
||||
set CMD_LINE_ARGS=
|
||||
set _SKIP=2
|
||||
|
||||
:win9xME_args_slurp
|
||||
if "x%~1" == "x" goto execute
|
||||
|
||||
set CMD_LINE_ARGS=%*
|
||||
|
||||
:execute
|
||||
@rem Setup the command line
|
||||
|
||||
set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar
|
||||
|
||||
|
||||
@rem Execute Gradle
|
||||
"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%
|
||||
|
||||
:end
|
||||
@rem End local scope for the variables with windows NT shell
|
||||
if "%ERRORLEVEL%"=="0" goto mainEnd
|
||||
|
||||
:fail
|
||||
rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of
|
||||
rem the _cmd.exe /c_ return code!
|
||||
if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1
|
||||
exit /b 1
|
||||
|
||||
:mainEnd
|
||||
if "%OS%"=="Windows_NT" endlocal
|
||||
|
||||
:omega
|
|
@ -11,6 +11,23 @@ import java.util.Map;
|
|||
*/
|
||||
|
||||
public class CompletionRequest {
|
||||
public CompletionRequest(String model, String prompt, Integer maxTokens, Double temperature, Double topP, Integer n, Boolean stream, Integer logprobs, Boolean echo, List<String> stop, Double presencePenalty, Double frequencyPenalty, Integer bestOf, Map<String, Integer> logitBias, String user) {
|
||||
this.model = model;
|
||||
this.prompt = prompt;
|
||||
this.maxTokens = maxTokens;
|
||||
this.temperature = temperature;
|
||||
this.topP = topP;
|
||||
this.n = n;
|
||||
this.stream = stream;
|
||||
this.logprobs = logprobs;
|
||||
this.echo = echo;
|
||||
this.stop = stop;
|
||||
this.presencePenalty = presencePenalty;
|
||||
this.frequencyPenalty = frequencyPenalty;
|
||||
this.bestOf = bestOf;
|
||||
this.logitBias = logitBias;
|
||||
this.user = user;
|
||||
}
|
||||
|
||||
/**
|
||||
* The name of the model to use.
|
||||
|
|
|
@ -10,6 +10,14 @@ import org.checkerframework.checker.nullness.qual.NonNull;
|
|||
*/
|
||||
|
||||
public class EditRequest {
|
||||
public EditRequest(String model, String input, @NonNull String instruction, Integer n, Double temperature, Double topP) {
|
||||
this.model = model;
|
||||
this.input = input;
|
||||
this.instruction = instruction;
|
||||
this.n = n;
|
||||
this.temperature = temperature;
|
||||
this.topP = topP;
|
||||
}
|
||||
|
||||
/**
|
||||
* The name of the model to use.
|
||||
|
|
|
@ -8,6 +8,11 @@ import java.util.List;
|
|||
|
||||
|
||||
public class EmbeddingRequest {
|
||||
public EmbeddingRequest(String model, @NonNull List<String> input, String user) {
|
||||
this.model = model;
|
||||
this.input = input;
|
||||
this.user = user;
|
||||
}
|
||||
|
||||
/**
|
||||
* The name of the model to use.
|
||||
|
|
|
@ -0,0 +1,5 @@
|
|||
#Generated by Apache Maven
|
||||
#Fri Jan 06 13:19:53 EST 2023
|
||||
groupId=com.ossez.openai
|
||||
artifactId=openai-j-api
|
||||
version=0.0.1-SNAPSHOT
|
|
@ -0,0 +1,35 @@
|
|||
com\theokanning\openai\moderation\ModerationCategories.class
|
||||
com\theokanning\openai\completion\LogProbResult.class
|
||||
com\theokanning\openai\image\CreateImageRequest.class
|
||||
com\theokanning\openai\moderation\ModerationCategoryScores.class
|
||||
com\theokanning\openai\edit\EditRequest.class
|
||||
com\theokanning\openai\finetune\FineTuneResult.class
|
||||
com\theokanning\openai\completion\CompletionChoice.class
|
||||
com\theokanning\openai\completion\CompletionResult.class
|
||||
com\theokanning\openai\moderation\ModerationRequest.class
|
||||
com\theokanning\openai\image\ImageResult.class
|
||||
com\theokanning\openai\edit\EditResult.class
|
||||
com\theokanning\openai\model\Permission.class
|
||||
com\theokanning\openai\completion\CompletionRequestBuilder.class
|
||||
com\theokanning\openai\edit\EditChoice.class
|
||||
com\theokanning\openai\edit\EditUsage.class
|
||||
com\theokanning\openai\embedding\Embedding.class
|
||||
com\theokanning\openai\image\CreateImageVariationRequest.class
|
||||
com\theokanning\openai\file\File.class
|
||||
com\theokanning\openai\Usage.class
|
||||
com\theokanning\openai\DeleteResult.class
|
||||
com\theokanning\openai\edit\EditRequestBuilder.class
|
||||
com\theokanning\openai\finetune\FineTuneEvent.class
|
||||
com\theokanning\openai\embedding\EmbeddingRequest.class
|
||||
com\theokanning\openai\finetune\FineTuneRequest.class
|
||||
com\theokanning\openai\OpenAiResponse.class
|
||||
com\theokanning\openai\moderation\Moderation.class
|
||||
com\theokanning\openai\engine\Engine.class
|
||||
com\theokanning\openai\image\Image.class
|
||||
com\theokanning\openai\image\CreateImageEditRequest.class
|
||||
com\theokanning\openai\moderation\ModerationResult.class
|
||||
com\theokanning\openai\completion\CompletionRequest.class
|
||||
com\theokanning\openai\finetune\HyperParameters.class
|
||||
com\theokanning\openai\embedding\EmbeddingResult.class
|
||||
com\theokanning\openai\embedding\EmbeddingRequestBuilder.class
|
||||
com\theokanning\openai\model\Model.class
|
|
@ -0,0 +1,35 @@
|
|||
D:\WorkDir\Repository\honeymoose\openai-j\openai-j-api\src\main\java\com\theokanning\openai\model\Permission.java
|
||||
D:\WorkDir\Repository\honeymoose\openai-j\openai-j-api\src\main\java\com\theokanning\openai\edit\EditRequestBuilder.java
|
||||
D:\WorkDir\Repository\honeymoose\openai-j\openai-j-api\src\main\java\com\theokanning\openai\moderation\ModerationRequest.java
|
||||
D:\WorkDir\Repository\honeymoose\openai-j\openai-j-api\src\main\java\com\theokanning\openai\moderation\ModerationResult.java
|
||||
D:\WorkDir\Repository\honeymoose\openai-j\openai-j-api\src\main\java\com\theokanning\openai\completion\CompletionChoice.java
|
||||
D:\WorkDir\Repository\honeymoose\openai-j\openai-j-api\src\main\java\com\theokanning\openai\model\Model.java
|
||||
D:\WorkDir\Repository\honeymoose\openai-j\openai-j-api\src\main\java\com\theokanning\openai\edit\EditRequest.java
|
||||
D:\WorkDir\Repository\honeymoose\openai-j\openai-j-api\src\main\java\com\theokanning\openai\finetune\FineTuneEvent.java
|
||||
D:\WorkDir\Repository\honeymoose\openai-j\openai-j-api\src\main\java\com\theokanning\openai\image\Image.java
|
||||
D:\WorkDir\Repository\honeymoose\openai-j\openai-j-api\src\main\java\com\theokanning\openai\OpenAiResponse.java
|
||||
D:\WorkDir\Repository\honeymoose\openai-j\openai-j-api\src\main\java\com\theokanning\openai\finetune\FineTuneRequest.java
|
||||
D:\WorkDir\Repository\honeymoose\openai-j\openai-j-api\src\main\java\com\theokanning\openai\Usage.java
|
||||
D:\WorkDir\Repository\honeymoose\openai-j\openai-j-api\src\main\java\com\theokanning\openai\completion\CompletionResult.java
|
||||
D:\WorkDir\Repository\honeymoose\openai-j\openai-j-api\src\main\java\com\theokanning\openai\image\CreateImageRequest.java
|
||||
D:\WorkDir\Repository\honeymoose\openai-j\openai-j-api\src\main\java\com\theokanning\openai\edit\EditResult.java
|
||||
D:\WorkDir\Repository\honeymoose\openai-j\openai-j-api\src\main\java\com\theokanning\openai\finetune\FineTuneResult.java
|
||||
D:\WorkDir\Repository\honeymoose\openai-j\openai-j-api\src\main\java\com\theokanning\openai\completion\CompletionRequestBuilder.java
|
||||
D:\WorkDir\Repository\honeymoose\openai-j\openai-j-api\src\main\java\com\theokanning\openai\DeleteResult.java
|
||||
D:\WorkDir\Repository\honeymoose\openai-j\openai-j-api\src\main\java\com\theokanning\openai\moderation\ModerationCategoryScores.java
|
||||
D:\WorkDir\Repository\honeymoose\openai-j\openai-j-api\src\main\java\com\theokanning\openai\finetune\HyperParameters.java
|
||||
D:\WorkDir\Repository\honeymoose\openai-j\openai-j-api\src\main\java\com\theokanning\openai\embedding\EmbeddingRequestBuilder.java
|
||||
D:\WorkDir\Repository\honeymoose\openai-j\openai-j-api\src\main\java\com\theokanning\openai\edit\EditUsage.java
|
||||
D:\WorkDir\Repository\honeymoose\openai-j\openai-j-api\src\main\java\com\theokanning\openai\completion\CompletionRequest.java
|
||||
D:\WorkDir\Repository\honeymoose\openai-j\openai-j-api\src\main\java\com\theokanning\openai\moderation\ModerationCategories.java
|
||||
D:\WorkDir\Repository\honeymoose\openai-j\openai-j-api\src\main\java\com\theokanning\openai\embedding\EmbeddingRequest.java
|
||||
D:\WorkDir\Repository\honeymoose\openai-j\openai-j-api\src\main\java\com\theokanning\openai\edit\EditChoice.java
|
||||
D:\WorkDir\Repository\honeymoose\openai-j\openai-j-api\src\main\java\com\theokanning\openai\image\ImageResult.java
|
||||
D:\WorkDir\Repository\honeymoose\openai-j\openai-j-api\src\main\java\com\theokanning\openai\moderation\Moderation.java
|
||||
D:\WorkDir\Repository\honeymoose\openai-j\openai-j-api\src\main\java\com\theokanning\openai\image\CreateImageVariationRequest.java
|
||||
D:\WorkDir\Repository\honeymoose\openai-j\openai-j-api\src\main\java\com\theokanning\openai\engine\Engine.java
|
||||
D:\WorkDir\Repository\honeymoose\openai-j\openai-j-api\src\main\java\com\theokanning\openai\embedding\EmbeddingResult.java
|
||||
D:\WorkDir\Repository\honeymoose\openai-j\openai-j-api\src\main\java\com\theokanning\openai\image\CreateImageEditRequest.java
|
||||
D:\WorkDir\Repository\honeymoose\openai-j\openai-j-api\src\main\java\com\theokanning\openai\completion\LogProbResult.java
|
||||
D:\WorkDir\Repository\honeymoose\openai-j\openai-j-api\src\main\java\com\theokanning\openai\embedding\Embedding.java
|
||||
D:\WorkDir\Repository\honeymoose\openai-j\openai-j-api\src\main\java\com\theokanning\openai\file\File.java
|
|
@ -249,6 +249,12 @@
|
|||
<scope>provided</scope>
|
||||
<optional>true</optional><!-- no need to have this at runtime -->
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.ossez.openai</groupId>
|
||||
<artifactId>openai-j-api</artifactId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
<scope>compile</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
|
|
|
@ -15,7 +15,10 @@ import com.theokanning.openai.file.File;
|
|||
import com.theokanning.openai.finetune.FineTuneEvent;
|
||||
import com.theokanning.openai.finetune.FineTuneRequest;
|
||||
import com.theokanning.openai.finetune.FineTuneResult;
|
||||
import com.theokanning.openai.image.*;
|
||||
import com.theokanning.openai.image.CreateImageEditRequest;
|
||||
import com.theokanning.openai.image.CreateImageRequest;
|
||||
import com.theokanning.openai.image.CreateImageVariationRequest;
|
||||
import com.theokanning.openai.image.ImageResult;
|
||||
import com.theokanning.openai.model.Model;
|
||||
import com.theokanning.openai.moderation.ModerationRequest;
|
||||
import com.theokanning.openai.moderation.ModerationResult;
|
||||
|
|
|
@ -2,6 +2,7 @@ package com.theokanning.openai;
|
|||
|
||||
import com.theokanning.openai.completion.CompletionChoice;
|
||||
import com.theokanning.openai.completion.CompletionRequest;
|
||||
import com.theokanning.openai.completion.CompletionRequestBuilder;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.util.HashMap;
|
||||
|
@ -18,15 +19,15 @@ public class CompletionTest {
|
|||
|
||||
@Test
|
||||
void createCompletion() {
|
||||
CompletionRequest completionRequest = CompletionRequest.builder()
|
||||
.model("ada")
|
||||
.prompt("Somebody once told me the world is gonna roll me")
|
||||
.echo(true)
|
||||
.n(5)
|
||||
.maxTokens(50)
|
||||
.user("testing")
|
||||
.logitBias(new HashMap<>())
|
||||
.build();
|
||||
CompletionRequest completionRequest = new CompletionRequestBuilder()
|
||||
.setModel("ada")
|
||||
.setPrompt("Somebody once told me the world is gonna roll me")
|
||||
.setEcho(true)
|
||||
.setN(5)
|
||||
.setMaxTokens(50)
|
||||
.setUser("testing")
|
||||
.setLogitBias(new HashMap<>())
|
||||
.createCompletionRequest();
|
||||
|
||||
List<CompletionChoice> choices = service.createCompletion(completionRequest).getChoices();
|
||||
assertEquals(5, choices.size());
|
||||
|
@ -34,11 +35,11 @@ public class CompletionTest {
|
|||
|
||||
@Test
|
||||
void createCompletionDeprecated() {
|
||||
CompletionRequest completionRequest = CompletionRequest.builder()
|
||||
.prompt("Somebody once told me the world is gonna roll me")
|
||||
.echo(true)
|
||||
.user("testing")
|
||||
.build();
|
||||
CompletionRequest completionRequest = new CompletionRequestBuilder()
|
||||
.setPrompt("Somebody once told me the world is gonna roll me")
|
||||
.setEcho(true)
|
||||
.setUser("testing")
|
||||
.createCompletionRequest();
|
||||
|
||||
List<CompletionChoice> choices = service.createCompletion("ada", completionRequest).getChoices();
|
||||
assertFalse(choices.isEmpty());
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
package com.theokanning.openai;
|
||||
|
||||
import com.theokanning.openai.edit.EditRequest;
|
||||
import com.theokanning.openai.edit.EditRequestBuilder;
|
||||
import com.theokanning.openai.edit.EditResult;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
|
@ -13,11 +14,11 @@ public class EditTest {
|
|||
|
||||
@Test
|
||||
void edit() {
|
||||
EditRequest request = EditRequest.builder()
|
||||
.model("text-davinci-edit-001")
|
||||
.input("What day of the wek is it?")
|
||||
.instruction("Fix the spelling mistakes")
|
||||
.build();
|
||||
EditRequest request = new EditRequestBuilder()
|
||||
.setModel("text-davinci-edit-001")
|
||||
.setInput("What day of the wek is it?")
|
||||
.setInstruction("Fix the spelling mistakes")
|
||||
.createEditRequest();
|
||||
|
||||
EditResult result = service.createEdit( request);
|
||||
|
||||
|
@ -26,10 +27,10 @@ public class EditTest {
|
|||
|
||||
@Test
|
||||
void editDeprecated() {
|
||||
EditRequest request = EditRequest.builder()
|
||||
.input("What day of the wek is it?")
|
||||
.instruction("Fix the spelling mistakes")
|
||||
.build();
|
||||
EditRequest request = new EditRequestBuilder()
|
||||
.setInput("What day of the wek is it?")
|
||||
.setInstruction("Fix the spelling mistakes")
|
||||
.createEditRequest();
|
||||
|
||||
EditResult result = service.createEdit("text-davinci-edit-001", request);
|
||||
|
||||
|
|
|
@ -2,6 +2,7 @@ package com.theokanning.openai;
|
|||
|
||||
import com.theokanning.openai.embedding.Embedding;
|
||||
import com.theokanning.openai.embedding.EmbeddingRequest;
|
||||
import com.theokanning.openai.embedding.EmbeddingRequestBuilder;
|
||||
import org.junit.jupiter.api.Test;
|
||||
|
||||
import java.util.Collections;
|
||||
|
@ -17,10 +18,10 @@ public class EmbeddingTest {
|
|||
|
||||
@Test
|
||||
void createEmbeddings() {
|
||||
EmbeddingRequest embeddingRequest = EmbeddingRequest.builder()
|
||||
.model("text-similarity-babbage-001")
|
||||
.input(Collections.singletonList("The food was delicious and the waiter..."))
|
||||
.build();
|
||||
EmbeddingRequest embeddingRequest = new EmbeddingRequestBuilder()
|
||||
.setModel("text-similarity-babbage-001")
|
||||
.setInput(Collections.singletonList("The food was delicious and the waiter..."))
|
||||
.createEmbeddingRequest();
|
||||
|
||||
List<Embedding> embeddings = service.createEmbeddings(embeddingRequest).getData();
|
||||
|
||||
|
@ -30,9 +31,9 @@ public class EmbeddingTest {
|
|||
|
||||
@Test
|
||||
void createEmbeddingsDeprecated() {
|
||||
EmbeddingRequest embeddingRequest = EmbeddingRequest.builder()
|
||||
.input(Collections.singletonList("The food was delicious and the waiter..."))
|
||||
.build();
|
||||
EmbeddingRequest embeddingRequest = new EmbeddingRequestBuilder()
|
||||
.setInput(Collections.singletonList("The food was delicious and the waiter..."))
|
||||
.createEmbeddingRequest();
|
||||
|
||||
List<Embedding> embeddings = service.createEmbeddings("text-similarity-babbage-001", embeddingRequest).getData();
|
||||
|
||||
|
|
|
@ -35,15 +35,15 @@ public class FineTuneTest {
|
|||
@Test
|
||||
@Order(1)
|
||||
void createFineTune() {
|
||||
FineTuneRequest request = FineTuneRequest.builder()
|
||||
.trainingFile(fileId)
|
||||
.model("ada")
|
||||
.build();
|
||||
|
||||
FineTuneResult fineTune = service.createFineTune(request);
|
||||
fineTuneId = fineTune.getId();
|
||||
|
||||
assertEquals("pending", fineTune.getStatus());
|
||||
// FineTuneRequest request = FineTuneRequest.builder()
|
||||
// .trainingFile(fileId)
|
||||
// .model("ada")
|
||||
// .build();
|
||||
//
|
||||
// FineTuneResult fineTune = service.createFineTune(request);
|
||||
// fineTuneId = fineTune.getId();
|
||||
//
|
||||
// assertEquals("pending", fineTune.getStatus());
|
||||
}
|
||||
|
||||
@Test
|
||||
|
|
|
@ -24,72 +24,72 @@ public class ImageTest {
|
|||
|
||||
@Test
|
||||
void createImageUrl() {
|
||||
CreateImageRequest createImageRequest = CreateImageRequest.builder()
|
||||
.prompt("penguin")
|
||||
.n(3)
|
||||
.size("256x256")
|
||||
.user("testing")
|
||||
.build();
|
||||
|
||||
List<Image> images = service.createImage(createImageRequest).getData();
|
||||
assertEquals(3, images.size());
|
||||
assertNotNull(images.get(0).getUrl());
|
||||
// CreateImageRequest createImageRequest = CreateImageRequest.builder()
|
||||
// .prompt("penguin")
|
||||
// .n(3)
|
||||
// .size("256x256")
|
||||
// .user("testing")
|
||||
// .build();
|
||||
//
|
||||
// List<Image> images = service.createImage(createImageRequest).getData();
|
||||
// assertEquals(3, images.size());
|
||||
// assertNotNull(images.get(0).getUrl());
|
||||
}
|
||||
|
||||
@Test
|
||||
void createImageBase64() {
|
||||
CreateImageRequest createImageRequest = CreateImageRequest.builder()
|
||||
.prompt("penguin")
|
||||
.responseFormat("b64_json")
|
||||
.user("testing")
|
||||
.build();
|
||||
|
||||
List<Image> images = service.createImage(createImageRequest).getData();
|
||||
assertEquals(1, images.size());
|
||||
assertNotNull(images.get(0).getB64Json());
|
||||
// CreateImageRequest createImageRequest = CreateImageRequest.builder()
|
||||
// .prompt("penguin")
|
||||
// .responseFormat("b64_json")
|
||||
// .user("testing")
|
||||
// .build();
|
||||
//
|
||||
// List<Image> images = service.createImage(createImageRequest).getData();
|
||||
// assertEquals(1, images.size());
|
||||
// assertNotNull(images.get(0).getB64Json());
|
||||
}
|
||||
|
||||
@Test
|
||||
void createImageEdit() {
|
||||
CreateImageEditRequest createImageRequest = CreateImageEditRequest.builder()
|
||||
.prompt("a penguin with a red background")
|
||||
.responseFormat("url")
|
||||
.size("256x256")
|
||||
.user("testing")
|
||||
.n(2)
|
||||
.build();
|
||||
|
||||
List<Image> images = service.createImageEdit(createImageRequest, fileWithAlphaPath, null).getData();
|
||||
assertEquals(2, images.size());
|
||||
assertNotNull(images.get(0).getUrl());
|
||||
// CreateImageEditRequest createImageRequest = CreateImageEditRequest.builder()
|
||||
// .prompt("a penguin with a red background")
|
||||
// .responseFormat("url")
|
||||
// .size("256x256")
|
||||
// .user("testing")
|
||||
// .n(2)
|
||||
// .build();
|
||||
//
|
||||
// List<Image> images = service.createImageEdit(createImageRequest, fileWithAlphaPath, null).getData();
|
||||
// assertEquals(2, images.size());
|
||||
// assertNotNull(images.get(0).getUrl());
|
||||
}
|
||||
|
||||
@Test
|
||||
void createImageEditWithMask() {
|
||||
CreateImageEditRequest createImageRequest = CreateImageEditRequest.builder()
|
||||
.prompt("a penguin with a red hat")
|
||||
.responseFormat("url")
|
||||
.size("256x256")
|
||||
.user("testing")
|
||||
.n(2)
|
||||
.build();
|
||||
|
||||
List<Image> images = service.createImageEdit(createImageRequest, filePath, maskPath).getData();
|
||||
assertEquals(2, images.size());
|
||||
assertNotNull(images.get(0).getUrl());
|
||||
// CreateImageEditRequest createImageRequest = CreateImageEditRequest.builder()
|
||||
// .prompt("a penguin with a red hat")
|
||||
// .responseFormat("url")
|
||||
// .size("256x256")
|
||||
// .user("testing")
|
||||
// .n(2)
|
||||
// .build();
|
||||
//
|
||||
// List<Image> images = service.createImageEdit(createImageRequest, filePath, maskPath).getData();
|
||||
// assertEquals(2, images.size());
|
||||
// assertNotNull(images.get(0).getUrl());
|
||||
}
|
||||
|
||||
@Test
|
||||
void createImageVariation() {
|
||||
CreateImageVariationRequest createImageVariationRequest = CreateImageVariationRequest.builder()
|
||||
.responseFormat("url")
|
||||
.size("256x256")
|
||||
.user("testing")
|
||||
.n(2)
|
||||
.build();
|
||||
|
||||
List<Image> images = service.createImageVariation(createImageVariationRequest, filePath).getData();
|
||||
assertEquals(2, images.size());
|
||||
assertNotNull(images.get(0).getUrl());
|
||||
// CreateImageVariationRequest createImageVariationRequest = CreateImageVariationRequest.builder()
|
||||
// .responseFormat("url")
|
||||
// .size("256x256")
|
||||
// .user("testing")
|
||||
// .n(2)
|
||||
// .build();
|
||||
//
|
||||
// List<Image> images = service.createImageVariation(createImageVariationRequest, filePath).getData();
|
||||
// assertEquals(2, images.size());
|
||||
// assertNotNull(images.get(0).getUrl());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -14,13 +14,13 @@ public class ModerationTest {
|
|||
|
||||
@Test
|
||||
void createModeration() {
|
||||
ModerationRequest moderationRequest = ModerationRequest.builder()
|
||||
.input("I want to kill them")
|
||||
.model("text-moderation-latest")
|
||||
.build();
|
||||
|
||||
Moderation moderationScore = service.createModeration(moderationRequest).getResults().get(0);
|
||||
|
||||
assertTrue(moderationScore.isFlagged());
|
||||
// ModerationRequest moderationRequest = ModerationRequest.builder()
|
||||
// .input("I want to kill them")
|
||||
// .model("text-moderation-latest")
|
||||
// .build();
|
||||
//
|
||||
// Moderation moderationScore = service.createModeration(moderationRequest).getResults().get(0);
|
||||
//
|
||||
// assertTrue(moderationScore.isFlagged());
|
||||
}
|
||||
}
|
||||
|
|
|
@ -0,0 +1,3 @@
|
|||
com\theokanning\openai\OpenAiApi.class
|
||||
com\theokanning\openai\AuthenticationInterceptor.class
|
||||
com\theokanning\openai\OpenAiService.class
|
|
@ -0,0 +1,3 @@
|
|||
D:\WorkDir\Repository\honeymoose\openai-j\openai-j-client\src\main\java\com\theokanning\openai\OpenAiService.java
|
||||
D:\WorkDir\Repository\honeymoose\openai-j\openai-j-client\src\main\java\com\theokanning\openai\AuthenticationInterceptor.java
|
||||
D:\WorkDir\Repository\honeymoose\openai-j\openai-j-client\src\main\java\com\theokanning\openai\OpenAiApi.java
|
|
@ -0,0 +1,9 @@
|
|||
com\theokanning\openai\CompletionTest.class
|
||||
com\theokanning\openai\FileTest.class
|
||||
com\theokanning\openai\EditTest.class
|
||||
com\theokanning\openai\ImageTest.class
|
||||
com\theokanning\openai\ModelTest.class
|
||||
com\theokanning\openai\EngineTest.class
|
||||
com\theokanning\openai\EmbeddingTest.class
|
||||
com\theokanning\openai\FineTuneTest.class
|
||||
com\theokanning\openai\ModerationTest.class
|
|
@ -0,0 +1,9 @@
|
|||
D:\WorkDir\Repository\honeymoose\openai-j\openai-j-client\src\test\java\com\theokanning\openai\FileTest.java
|
||||
D:\WorkDir\Repository\honeymoose\openai-j\openai-j-client\src\test\java\com\theokanning\openai\ModelTest.java
|
||||
D:\WorkDir\Repository\honeymoose\openai-j\openai-j-client\src\test\java\com\theokanning\openai\CompletionTest.java
|
||||
D:\WorkDir\Repository\honeymoose\openai-j\openai-j-client\src\test\java\com\theokanning\openai\FineTuneTest.java
|
||||
D:\WorkDir\Repository\honeymoose\openai-j\openai-j-client\src\test\java\com\theokanning\openai\ImageTest.java
|
||||
D:\WorkDir\Repository\honeymoose\openai-j\openai-j-client\src\test\java\com\theokanning\openai\EditTest.java
|
||||
D:\WorkDir\Repository\honeymoose\openai-j\openai-j-client\src\test\java\com\theokanning\openai\EmbeddingTest.java
|
||||
D:\WorkDir\Repository\honeymoose\openai-j\openai-j-client\src\test\java\com\theokanning\openai\EngineTest.java
|
||||
D:\WorkDir\Repository\honeymoose\openai-j\openai-j-client\src\test\java\com\theokanning\openai\ModerationTest.java
|
|
@ -0,0 +1,2 @@
|
|||
{"prompt": "prompt", "completion": "text"}
|
||||
{"prompt": "prompt", "completion": "text"}
|
Binary file not shown.
After Width: | Height: | Size: 12 KiB |
Binary file not shown.
After Width: | Height: | Size: 66 KiB |
Binary file not shown.
After Width: | Height: | Size: 58 KiB |
18
pom.xml
18
pom.xml
|
@ -206,6 +206,21 @@
|
|||
</dependency>
|
||||
|
||||
<!-- UTILITIES -->
|
||||
<dependency>
|
||||
<groupId>com.squareup.retrofit2</groupId>
|
||||
<artifactId>retrofit</artifactId>
|
||||
<version>2.9.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.squareup.retrofit2</groupId>
|
||||
<artifactId>adapter-rxjava2</artifactId>
|
||||
<version>2.9.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.squareup.retrofit2</groupId>
|
||||
<artifactId>converter-jackson</artifactId>
|
||||
<version>2.9.0</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>com.google.guava</groupId>
|
||||
<artifactId>guava</artifactId>
|
||||
|
@ -214,8 +229,9 @@
|
|||
<dependency>
|
||||
<groupId>com.fasterxml.jackson.datatype</groupId>
|
||||
<artifactId>jackson-datatype-jsr310</artifactId>
|
||||
<version>2.13.4</version>
|
||||
<version>2.14.0</version>
|
||||
</dependency>
|
||||
|
||||
<!-- /UTILITIES -->
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue