Prezados, boa noite!
Coloquei a chave da API como variável de ambiente da seguinte forma:
- Criei uma nova variável de ambiente no Windows com o nome OPENAI_API_KEY e colei no valor a chave gerada na OpenAI;
- Criei um package chamado config com uma classe chamada OpenAiConfig.
public class OpenAiConfig {
private static final String API_KEY = System.getenv("OPENAI_API_KEY");
public static String getApiKey() {
if (API_KEY == null || API_KEY.isEmpty()) {
throw new IllegalStateException("Chave da API da OpenAI não configurada. Configure a variável de ambiente OPENAI_API_KEY.");
}
return API_KEY;
}
}
Criada apenas para lançar exceção caso a variável não esteja configurada.
- Na classe consultaChatGpt fiz o acesso direto ao método estático da classe config para recuperar a apiKey.
public class ConsultaChatGPT {
public static String obterTraducao(String texto) {
String apiKey = OpenAiConfig.getApiKey();
OpenAiService service = new OpenAiService(apiKey);
CompletionRequest requisicao = CompletionRequest.builder()
.model("gpt-3.5-turbo-instruct")
.prompt("traduza para o português o texto: " + texto)
.maxTokens(1000)
.temperature(0.7)
.build();
var resposta = service.createCompletion(requisicao);
return resposta.getChoices().get(0).getText();
}
}
Não sei se é a melhor forma para acessar a variável de ambiente, mas aqui funcionou perfeitamente.
Atenciosamente