@@ -73,6 +73,77 @@ public void testParsing() throws IOException {
7373 }
7474 }
7575
76+ public void testParsingWithTaskSettings () throws IOException {
77+ String requestText = """
78+ {
79+ "input": "single text input",
80+ "task_settings": {
81+ "foo": "bar"
82+ }
83+ }
84+ """ ;
85+ try (var parser = createParser (JsonXContent .jsonXContent , requestText )) {
86+ var request = InferenceAction .Request .parseRequest ("model_id" , TaskType .SPARSE_EMBEDDING , parser ).build ();
87+ assertThat (request .getInput (), contains ("single text input" ));
88+ assertThat (request .getTaskSettings (), is (Map .of ("foo" , "bar" )));
89+ }
90+ }
91+
92+ public void testParsingWithParameters () throws IOException {
93+ String requestText = """
94+ {
95+ "input": "single text input",
96+ "parameters": {
97+ "foo": "bar"
98+ }
99+ }
100+ """ ;
101+ try (var parser = createParser (JsonXContent .jsonXContent , requestText )) {
102+ var request = InferenceAction .Request .parseRequest ("model_id" , TaskType .SPARSE_EMBEDDING , parser ).build ();
103+ assertThat (request .getInput (), contains ("single text input" ));
104+ assertThat (request .getTaskSettings (), is (Map .of ("foo" , "bar" )));
105+ }
106+ }
107+
108+ public void testParsingWithTaskSettingsAndParameters () throws IOException {
109+ {
110+ String singleInputRequest = """
111+ {
112+ "input": "single text input",
113+ "parameters": {
114+ "foo": "bar"
115+ },
116+ "task_settings": {
117+ "food": "bard"
118+ }
119+ }
120+ """ ;
121+ try (var parser = createParser (JsonXContent .jsonXContent , singleInputRequest )) {
122+ var request = InferenceAction .Request .parseRequest ("model_id" , TaskType .SPARSE_EMBEDDING , parser ).build ();
123+ assertThat (request .getInput (), contains ("single text input" ));
124+ assertThat (request .getTaskSettings (), is (Map .of ("food" , "bard" )));
125+ }
126+ }
127+ {
128+ String singleInputRequest = """
129+ {
130+ "input": "single text input",
131+ "task_settings": {
132+ "food": "bard"
133+ },
134+ "parameters": {
135+ "foo": "bar"
136+ }
137+ }
138+ """ ;
139+ try (var parser = createParser (JsonXContent .jsonXContent , singleInputRequest )) {
140+ var request = InferenceAction .Request .parseRequest ("model_id" , TaskType .SPARSE_EMBEDDING , parser ).build ();
141+ assertThat (request .getInput (), contains ("single text input" ));
142+ assertThat (request .getTaskSettings (), is (Map .of ("foo" , "bar" )));
143+ }
144+ }
145+ }
146+
76147 public void testValidation_TextEmbedding () {
77148 InferenceAction .Request request = new InferenceAction .Request (
78149 TaskType .TEXT_EMBEDDING ,
0 commit comments