В этой статье
Добавьте официальный OpenAI Java SDK в существующий Maven-проект, задайте API-ключ в конфигурации запуска IDE и запустите класс Main ниже. Он отправит один запрос через Responses API и выведет текст ответа в консоль. Для примера используем настроенный JDK 17+: цепочка извлечения текста содержит Optional.stream(), который появился в Java 9, хотя сам SDK поддерживает Java 8.
Добавьте зависимость в Maven
В секцию <dependencies> имеющегося pom.xml добавьте:
<dependency>
<groupId>com.openai</groupId>
<artifactId>openai-java</artifactId>
<version>4.63.2</version>
</dependency>
Версия 4.63.2 указана в README OpenAI Java API Library. Сохраните файл и обновите зависимости Maven в IDE. После этого проект сможет разрешить импорты SDK.
Установка библиотеки не открывает доступ к моделям и не пополняет баланс API. Пользовательская подписка ChatGPT тоже не даёт API-кредиты: у этих продуктов раздельный биллинг. Если для отдельной работы в обычном ChatGPT вы уже выбираете Plus, Amber Market — сервис оплаты зарубежных сервисов — предлагает оформление месячного ChatGPT Plus на вашем аккаунте через менеджера. Доступ действует 30 дней, заказ можно оплатить через СБП. Перед активацией на аккаунте должен быть Free без активной подписки; продление оформляют после её окончания.
Задайте ключ в конфигурации запуска IDE
Если ключа ещё нет, создайте API-ключ OpenAI для нужного проекта. Откройте конфигурацию запуска приложения в IDE и в поле Environment variables задайте переменную OPENAI_API_KEY, указав свой ключ как её значение.
Клиент OpenAIOkHttpClient.fromEnv() прочитает ключ из окружения запущенного процесса. Не вставляйте ключ в исходник и не печатайте его для диагностики.
Создайте Main и отправьте запрос
Сохраните полный класс в src/main/java/Main.java:
import com.openai.client.OpenAIClient;
import com.openai.client.okhttp.OpenAIOkHttpClient;
import com.openai.models.ChatModel;
import com.openai.models.responses.Response;
import com.openai.models.responses.ResponseCreateParams;
public class Main {
public static void main(String[] args) {
OpenAIClient client = OpenAIOkHttpClient.fromEnv();
ResponseCreateParams params = ResponseCreateParams.builder()
.input("Верни одну короткую фразу по-русски о готовности интеграции.")
.model(ChatModel.GPT_5_2)
.build();
Response response = client.responses().create(params);
response.output().stream()
.flatMap(output -> output.message().stream())
.flatMap(message -> message.content().stream())
.flatMap(content -> content.outputText().stream())
.forEach(outputText -> System.out.println(outputText.text()));
}
}
В .input(...) передаётся запрос, в .model(...) — модель. ChatModel.GPT_5_2 — пример идентификатора из README; для вызова нужна модель, доступная вашему проекту. При необходимости замените значение .model(...) на доступный идентификатор, поддерживаемый вашей версией SDK.
Цепочка извлечения взята из официального ResponsesExample. В output могут находиться разные типы элементов. Код выбирает сообщения, перебирает их содержимое и печатает каждый элемент outputText. Если текстовых элементов несколько, forEach выведет их все, каждый с новой строки.
Запустите и проверьте результат
Запустите Main через конфигурацию IDE, в которой задан OPENAI_API_KEY. Признак успеха — текстовая фраза в консоли. Точную формулировку определит модель.
Если до текста дело не дошло, начните с места сбоя:
- Не разрешаются импорты
com.openai. Проверьте, что зависимость добавлена в<dependencies>нужногоpom.xml, затем обновите Maven-проект в IDE. - Клиент не читает ключ. Проверьте имя
OPENAI_API_KEYи окружение именно той конфигурации, из которой запускаетеMain. Значение ключа в консоль выводить не нужно. - Вызов вернул ответ, но текста в консоли нет. Проверьте в отладчике статус ответа и типы элементов
output. Эта цепочка печатает толькоoutputTextвнутри сообщений; если таких элементов нет, она ничего не выведет. По одному отсутствию текста причину определить нельзя. - API вернул 429. Перейдите к разбору лимитов и квоты OpenAI API: повторное добавление Maven-зависимости эту ошибку не исправит.