| 
10 | 10 | import org.elasticsearch.common.settings.SecureString;  | 
11 | 11 | import org.elasticsearch.core.Nullable;  | 
12 | 12 | import org.elasticsearch.inference.TaskType;  | 
 | 13 | +import org.elasticsearch.inference.UnifiedCompletionRequest;  | 
13 | 14 | import org.elasticsearch.test.ESTestCase;  | 
14 | 15 | import org.elasticsearch.xpack.inference.services.settings.DefaultSecretSettings;  | 
15 | 16 | 
 
  | 
 | 17 | +import java.util.List;  | 
16 | 18 | import java.util.Map;  | 
17 | 19 | 
 
  | 
18 | 20 | import static org.elasticsearch.xpack.inference.services.openai.completion.OpenAiChatCompletionRequestTaskSettingsTests.getChatCompletionRequestTaskSettingsMap;  | 
@@ -46,6 +48,44 @@ public void testOverrideWith_NullMap() {  | 
46 | 48 |         assertThat(overriddenModel, sameInstance(model));  | 
47 | 49 |     }  | 
48 | 50 | 
 
  | 
 | 51 | +    public void testOverrideWith_UnifiedCompletionRequest_OverridesModelId() {  | 
 | 52 | +        var model = createChatCompletionModel("url", "org", "api_key", "model_name", "user");  | 
 | 53 | +        var request = new UnifiedCompletionRequest(  | 
 | 54 | +            List.of(new UnifiedCompletionRequest.Message(new UnifiedCompletionRequest.ContentString("hello"), "role", null, null, null)),  | 
 | 55 | +            "different_model",  | 
 | 56 | +            null,  | 
 | 57 | +            null,  | 
 | 58 | +            null,  | 
 | 59 | +            null,  | 
 | 60 | +            null,  | 
 | 61 | +            null  | 
 | 62 | +        );  | 
 | 63 | + | 
 | 64 | +        assertThat(  | 
 | 65 | +            OpenAiChatCompletionModel.of(model, request),  | 
 | 66 | +            is(createChatCompletionModel("url", "org", "api_key", "different_model", "user"))  | 
 | 67 | +        );  | 
 | 68 | +    }  | 
 | 69 | + | 
 | 70 | +    public void testOverrideWith_UnifiedCompletionRequest_UsesModelFields_WhenRequestDoesNotOverride() {  | 
 | 71 | +        var model = createChatCompletionModel("url", "org", "api_key", "model_name", "user");  | 
 | 72 | +        var request = new UnifiedCompletionRequest(  | 
 | 73 | +            List.of(new UnifiedCompletionRequest.Message(new UnifiedCompletionRequest.ContentString("hello"), "role", null, null, null)),  | 
 | 74 | +            null, // not overriding model  | 
 | 75 | +            null,  | 
 | 76 | +            null,  | 
 | 77 | +            null,  | 
 | 78 | +            null,  | 
 | 79 | +            null,  | 
 | 80 | +            null  | 
 | 81 | +        );  | 
 | 82 | + | 
 | 83 | +        assertThat(  | 
 | 84 | +            OpenAiChatCompletionModel.of(model, request),  | 
 | 85 | +            is(createChatCompletionModel("url", "org", "api_key", "model_name", "user"))  | 
 | 86 | +        );  | 
 | 87 | +    }  | 
 | 88 | + | 
49 | 89 |     public static OpenAiChatCompletionModel createChatCompletionModel(  | 
50 | 90 |         String url,  | 
51 | 91 |         @Nullable String org,  | 
 | 
0 commit comments