diff --git a/orchestration/src/main/java/com/sap/ai/sdk/orchestration/ConfigToRequestTransformer.java b/orchestration/src/main/java/com/sap/ai/sdk/orchestration/ConfigToRequestTransformer.java index 4806489ce..193fddedc 100644 --- a/orchestration/src/main/java/com/sap/ai/sdk/orchestration/ConfigToRequestTransformer.java +++ b/orchestration/src/main/java/com/sap/ai/sdk/orchestration/ConfigToRequestTransformer.java @@ -82,6 +82,10 @@ static PromptTemplatingModuleConfigPrompt toTemplateModuleConfig( * To be fixed with https://github.tools.sap/AI/llm-orchestration/issues/662 */ if (config instanceof TemplateRef) { + if (!prompt.getMessages().isEmpty()) { + throw new IllegalArgumentException( + "Prompt must not contain messages when using a template reference"); + } return config; } diff --git a/orchestration/src/test/java/com/sap/ai/sdk/orchestration/ConfigToRequestTransformerTest.java b/orchestration/src/test/java/com/sap/ai/sdk/orchestration/ConfigToRequestTransformerTest.java index e01415733..697640570 100644 --- a/orchestration/src/test/java/com/sap/ai/sdk/orchestration/ConfigToRequestTransformerTest.java +++ b/orchestration/src/test/java/com/sap/ai/sdk/orchestration/ConfigToRequestTransformerTest.java @@ -29,6 +29,17 @@ void testThrowsOnMissingMessages() { .hasMessageContaining("A prompt is required"); } + @Test + void testThrowsOnTemplateRefWithMessages() { + var prompt = new OrchestrationPrompt("Foo bar"); + var templateRef = + TemplateConfig.reference().byId("21cb1358-0bf1-4f43-870b-00f14d0f9f16").toLowLevel(); + + assertThatThrownBy(() -> ConfigToRequestTransformer.toTemplateModuleConfig(prompt, templateRef)) + .isInstanceOf(IllegalArgumentException.class) + .hasMessageContaining("Prompt must not contain messages when using a template reference"); + } + @Test void testEmptyTemplateConfig() { var systemMessage = new SystemMessage("foo");