public WatsonxAiRequest request(Prompt prompt) {

		WatsonxAiChatOptions options = WatsonxAiChatOptions.builder().build();

		if (this.defaultOptions != null) {
			options = ModelOptionsUtils.merge(options, this.defaultOptions, WatsonxAiChatOptions.class);
		}

		if (prompt.getOptions() != null) {
			if (prompt.getOptions() instanceof WatsonxAiChatOptions runtimeOptions) {
				options = ModelOptionsUtils.merge(runtimeOptions, options, WatsonxAiChatOptions.class);
			}
			else {
				var updatedRuntimeOptions = ModelOptionsUtils.copyToTarget(prompt.getOptions(), ChatOptions.class,
						WatsonxAiChatOptions.class);

				options = ModelOptionsUtils.merge(updatedRuntimeOptions, options, WatsonxAiChatOptions.class);
			}
		}

		Map<String, Object> parameters = options.toMap();

		final String convertedPrompt = MessageToPromptConverter.create()
			.withAssistantPrompt("")
			.withHumanPrompt("")
			.toPrompt(prompt.getInstructions());

		return WatsonxAiRequest.builder(convertedPrompt).withParameters(parameters).build();
	}
@Test
	public void testCreateRequestSuccessfullyWithDefaultParams() {

		String msg = "Test message";

		WatsonxAiChatOptions modelOptions = WatsonxAiChatOptions.builder()
			.withModel("meta-llama/llama-2-70b-chat")
			.build();
		Prompt prompt = new Prompt(msg, modelOptions);

		WatsonxAiRequest request = chatModel.request(prompt);

		Assert.assertEquals(request.getModelId(), "meta-llama/llama-2-70b-chat");
		assertThat(request.getParameters().get("decoding_method")).isEqualTo("greedy");
		assertThat(request.getParameters().get("temperature")).isEqualTo(0.7);
		assertThat(request.getParameters().get("top_p")).isEqualTo(1.0);
		assertThat(request.getParameters().get("top_k")).isEqualTo(50);
		assertThat(request.getParameters().get("max_new_tokens")).isEqualTo(20);
		assertThat(request.getParameters().get("min_new_tokens")).isEqualTo(0);
		assertThat(request.getParameters().get("stop_sequences")).isInstanceOf(List.class);
		Assert.assertEquals(request.getParameters().get("stop_sequences"), List.of());
		assertThat(request.getParameters().get("random_seed")).isNull();
	}