@Override
    public CompletableFuture<Completion.FinishReason> completeAsync(Prompt prompt,
                                                                    InferenceParameters parameters,
                                                                    Consumer<Completion> consumer) {
        setApiKey(parameters);
        setEndpoint(parameters);
        return client.completeAsync(prompt, parameters, consumer);
    }
@Test
    @Disabled
    public void testOpenAIGeneration() {
        var config = new LlmClientConfig.Builder().build();
        var openai = new OpenAI(config, new SecretStoreProvider().get());
        var options = Map.of(
                "maxTokens", "10"
        );

        var prompt = StringPrompt.from("why are ducks better than cats?");
        var future = openai.completeAsync(prompt, new InferenceParameters(apiKey, options::get), completion -> {
            System.out.print(completion.text());
        }).exceptionally(exception -> {
            System.out.println("Error: " + exception);
            return null;
        });
        future.join();
    }