OpenAI
Documentation
Maven Dependency
<dependency>
<groupId>dev.langchain4j</groupId>
<artifactId>langchain4j-open-ai</artifactId>
<version>0.30.0</version>
</dependency>
API Key
To use OpenAI models, you will need an API key. You can create one here.
note
If you don't have your own OpenAI API key, don't worry.
You can temporarily use demo
key, which we provide for free for demonstration purposes:
String apiKey = "demo";
Be aware that when using the demo
key, all requests to the OpenAI API go through our proxy,
which injects the real key before forwarding your request to the OpenAI API.
We do not collect or use your data in any way.
The demo
key has a quota and should only be used for demonstration purposes.
OpenAiChatModel
OpenAiChatModel model = OpenAiChatModel.withApiKey(System.getenv("OPENAI_API_KEY"));
String answer = model.generate("Say 'Hello World'");
System.out.println(answer);
Customizing
OpenAiChatModel model = OpenAiChatModel.builder()
.baseUrl(...)
.apiKey(...)
.organizationId(...)
.modelName(...)
.temperature(...)
.topP(...)
.stop(...)
.maxTokens(...)
.presencePenalty(...)
.frequencyPenalty(...)
.logitBias(...)
.responseFormat(...)
.seed(...)
.user(...)
.timeout(...)
.maxRetries(...)
.proxy(...)
.logRequests(...)
.logResponses(...)
.tokenizer(...)
.customHeaders(...)
.build();
See the description of some of the parameters above here.
OpenAiStreamingChatModel
OpenAiStreamingChatModel model = OpenAiStreamingChatModel.withApiKey(System.getenv("OPENAI_API_KEY"));
model.generate("Say 'Hello World'", new StreamingResponseHandler<AiMessage>() {
@Override
public void onNext(String token) {
// this method is called when a new token is available
}
@Override
public void onComplete(Response<AiMessage> response) {
// this method is called when the model has completed responding
}
@Override
public void onError(Throwable error) {
// this method is called when an error occurs
}
});
Customizing
Identical to the OpenAiChatModel
, see above.