<dependency>
<groupId>io.github.kezhenxu94</groupId>
<artifactId>chatgpt-java-sdk</artifactId>
<version>${chatgpt-java.version}</version>
</dependency>
implementation 'io.github.kezhenxu94:chatgpt-java-sdk:${chatgpt-java.version}'
public class ChatGPTTest {
public static void main(String[] args) throws IOException, InterruptedException {
final var chatGPT = ChatGPT
.builder()
.dataPath(Files.createTempDirectory("chatgpt")) // Persist the chat history to a data path
.build();
// Start a new conversation
final var conversation = chatGPT.newConversation();
System.out.println(conversation.ask("What's your name?").content());
// Output: I'm an AI language model developed by OpenAI, and I don't have a name. What can I help you with today?
System.out.println(conversation.ask("What did I ask you?").content());
// Output: You asked for my name.
conversation.save(); // Save the history manually, conversations are saved on shutdown by default.
final var conversation2 = chatGPT.newConversation("You are a software engineer.");
System.out.println(conversation2.ask("What's your job?").content());
System.out.println(conversation2.ask("What's your day to day work?").content());
// Load a conversation by the ID
final var conversation3 = chatGPT.loadConversation(conversation.id());
conversation3.ask("What did I ask you?");
// Should print the same as the first conversation
}
}
A demo usage of ChatGPT Java SDK is the ChatGPT CLI, built with Spring Shell and Graalvm.
Who on earth would want to use CLI to interact with ChatGPT? Developers!
An API key from OpenAI platform is required before using the CLI, head to OpenAI Account to create one.
export CHATGPT_API_KEY=<your-api-key>
Head to Releases to download the CLI according to your os.
sudo install chatgpt-cli.macos /usr/local/bin/chatgpt
docker run -it --rm -e CHATGPT_API_KEY kezhenxu94/chatgpt-cli
chatgpt-cli
by default runs in interactive mode and the questions in one session is a conversation, so ChatGPT
remembers
your previous questions inside a single conversation, you can use ask
command to ask ChatGPT any question:
chatgpt
> ask --question 'What is your name?'
Or you can omit --question
and simply:
chatgpt
> ask "What is your name?"
> ask "What did I ask you?"
# should reply something like "You asked for my name."
But don't forget to quote the question if it contains spaces.
If you want to ask ChatGPT a one-shot question, you can pass the ask
command and the question directly, so ChatGPT
will
exit after it replies your questions:
chatgpt ask "What is your name?"
Add your OpenAI API key as a secret to your repository.
Go to https://github.com/<owner>/<repo>/settings/secrets/actions
, create "New repository secret" with the
name OPENAI_KEY
and your API key as the value.
- name: Setup ChatGPT
uses: kezhenxu94/chatgpt-java/chatgpt-cli@v0.11.0
- name: Answer the question
env:
CHATGPT_API_KEY: ${{ secrets.OPENAI_KEY }}
run: |
chatgpt ask "What is your name?"