Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

Colocando API KEY como variável de ambiente

Prezados, boa noite!

Coloquei a chave da API como variável de ambiente da seguinte forma:

  1. Criei uma nova variável de ambiente no Windows com o nome OPENAI_API_KEY e colei no valor a chave gerada na OpenAI;
  2. 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.

  1. 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

4 respostas

Olá, Lucas! Tudo bem?

Sua abordagem para lidar com a chave da API é bastante segura e eficaz. Usar variáveis de ambiente é uma prática comum para armazenar informações sensíveis como chaves de API, senhas de banco de dados, entre outros. Isso ajuda a manter esses dados fora do código-fonte, o que é uma boa prática de segurança.

A maneira como você implementou a classe OpenAiConfig para lançar uma exceção caso a chave da API não esteja configurada também é uma ótima prática. Isso garante que sua aplicação não será iniciada se essa configuração crucial estiver faltando.

Quanto ao acesso à variável de ambiente através do método estático na classe ConsultaChatGPT, isso é perfeitamente aceitável. Você está garantindo que a chave da API seja lida apenas uma vez, no início da execução do seu programa, o que é eficiente.

Muito bom! Meus parabéns.

Espero ter ajudado e bons estudos!

Bom dia. Configurei a variável de ambiente. Segui todos os passos. Não funcionou. Tenho uma dúvida: como ficou a dependência pom.xml?

solução!

Olá Elaine, bom dia!

Você reiniciou a IDEA? Após configurar a variável de ambiente, é necessário reiniciar a IDEA para que ela reconheça a variável adicionada no computador.

A dependência do ChatGpt ficou da seguinte forma:

<dependency>
    <groupId>com.theokanning.openai-gpt3-java</groupId>
    <artifactId>service</artifactId>
    <version>0.14.0</version>
</dependency>

Espero ter ajudado,

Até breve!

Lucas,

Boa tarde!

Isso mesmo, agora funcionou!

Muito obrigada! Valeu!