28
28
import java .util .Set ;
29
29
30
30
import org .apache .commons .io .FileUtils ;
31
- import org .apache .commons .text .StringEscapeUtils ;
32
31
import org .apache .hc .core5 .http .HttpHeaders ;
33
32
import org .apache .hc .core5 .http .io .entity .EntityUtils ;
34
33
import org .apache .hc .core5 .http .message .BasicHeader ;
35
34
import org .junit .Before ;
36
35
import org .opensearch .client .Response ;
37
36
import org .opensearch .core .rest .RestStatus ;
38
37
import org .opensearch .ml .common .MLTaskState ;
39
- import org .opensearch .ml .common .utils .StringUtils ;
40
38
import org .opensearch .ml .utils .TestHelper ;
41
39
import org .opensearch .searchpipelines .questionanswering .generative .llm .LlmIOUtil ;
42
40
@@ -212,7 +210,9 @@ public class RestMLRAGSearchProcessorIT extends RestMLRemoteInferenceIT {
212
210
+ " },\n "
213
211
+ " \" url\" : \" https://bedrock-runtime."
214
212
+ GITHUB_CI_AWS_REGION
215
- + ".amazonaws.com/model/" + BEDROCK_ANTHROPIC_CLAUDE_3_5_SONNET + "/converse\" ,\n "
213
+ + ".amazonaws.com/model/"
214
+ + BEDROCK_ANTHROPIC_CLAUDE_3_5_SONNET
215
+ + "/converse\" ,\n "
216
216
+ " \" request_body\" : \" { \\ \" system\\ \" : [{\\ \" text\\ \" : \\ \" you are a helpful assistant.\\ \" }], \\ \" messages\\ \" : ${parameters.messages} , \\ \" inferenceConfig\\ \" : {\\ \" temperature\\ \" : 0.0, \\ \" topP\\ \" : 0.9, \\ \" maxTokens\\ \" : 1000} }\" \n "
217
217
+ " }\n "
218
218
+ " ]\n "
@@ -250,7 +250,9 @@ public class RestMLRAGSearchProcessorIT extends RestMLRemoteInferenceIT {
250
250
+ " },\n "
251
251
+ " \" url\" : \" https://bedrock-runtime."
252
252
+ GITHUB_CI_AWS_REGION
253
- + ".amazonaws.com/model/" + BEDROCK_ANTHROPIC_CLAUDE_3_SONNET + "/converse\" ,\n "
253
+ + ".amazonaws.com/model/"
254
+ + BEDROCK_ANTHROPIC_CLAUDE_3_SONNET
255
+ + "/converse\" ,\n "
254
256
+ " \" request_body\" : \" { \\ \" messages\\ \" : ${parameters.messages} , \\ \" inferenceConfig\\ \" : {\\ \" temperature\\ \" : 0.0, \\ \" topP\\ \" : 0.9, \\ \" maxTokens\\ \" : 1000} }\" \n "
255
257
+ " }\n "
256
258
+ " ]\n "
@@ -261,8 +263,8 @@ public class RestMLRAGSearchProcessorIT extends RestMLRemoteInferenceIT {
261
263
: BEDROCK_CONNECTOR_BLUEPRINT1 ;
262
264
263
265
private static final String BEDROCK_CONVERSE_CONNECTOR_BLUEPRINT = AWS_SESSION_TOKEN == null
264
- ? BEDROCK_CONVERSE_CONNECTOR_BLUEPRINT2
265
- : BEDROCK_CONVERSE_CONNECTOR_BLUEPRINT2 ;
266
+ ? BEDROCK_CONVERSE_CONNECTOR_BLUEPRINT2
267
+ : BEDROCK_CONVERSE_CONNECTOR_BLUEPRINT2 ;
266
268
267
269
private static final String COHERE_KEY = System .getenv ("COHERE_KEY" );
268
270
private static final String COHERE_CONNECTOR_BLUEPRINT = "{\n "
@@ -315,7 +317,7 @@ public class RestMLRAGSearchProcessorIT extends RestMLRemoteInferenceIT {
315
317
+ " \" tag\" : \" %s\" ,\n "
316
318
+ " \" description\" : \" %s\" ,\n "
317
319
+ " \" model_id\" : \" %s\" ,\n "
318
- // + " \"system_prompt\": \"%s\",\n"
320
+ // + " \"system_prompt\": \"%s\",\n"
319
321
+ " \" user_instructions\" : \" %s\" ,\n "
320
322
+ " \" context_field_list\" : [\" %s\" ]\n "
321
323
+ " }\n "
@@ -369,7 +371,7 @@ public class RestMLRAGSearchProcessorIT extends RestMLRemoteInferenceIT {
369
371
+ " \" generative_qa_parameters\" : {\n "
370
372
+ " \" llm_model\" : \" %s\" ,\n "
371
373
+ " \" llm_question\" : \" %s\" ,\n "
372
- // + " \"system_prompt\": \"%s\",\n"
374
+ // + " \"system_prompt\": \"%s\",\n"
373
375
+ " \" user_instructions\" : \" %s\" ,\n "
374
376
+ " \" context_size\" : %d,\n "
375
377
+ " \" message_size\" : %d,\n "
@@ -594,7 +596,8 @@ public void testBM25WithOpenAIWithImage() throws Exception {
594
596
Response response1 = createSearchPipeline ("pipeline_test" , pipelineParameters );
595
597
assertEquals (200 , response1 .getStatusLine ().getStatusCode ());
596
598
597
- byte [] rawImage = FileUtils .readFileToByteArray (Path .of (classLoader .getResource (TEST_DOC_PATH + "openai_boardwalk.jpg" ).toURI ()).toFile ());
599
+ byte [] rawImage = FileUtils
600
+ .readFileToByteArray (Path .of (classLoader .getResource (TEST_DOC_PATH + "openai_boardwalk.jpg" ).toURI ()).toFile ());
598
601
String imageContent = Base64 .getEncoder ().encodeToString (rawImage );
599
602
600
603
SearchRequestParameters requestParameters = new SearchRequestParameters ();
@@ -635,7 +638,8 @@ public void testBM25WithOpenAIWithImage() throws Exception {
635
638
requestParameters .timeout = 60 ;
636
639
requestParameters .imageFormat = "jpeg" ;
637
640
requestParameters .imageType = "url" ;
638
- requestParameters .imageData = "https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg" ; // imageContent;
641
+ requestParameters .imageData =
642
+ "https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg" ; // imageContent;
639
643
Response response3 = performSearch (INDEX_NAME , "pipeline_test" , 5 , requestParameters );
640
644
assertEquals (200 , response2 .getStatusLine ().getStatusCode ());
641
645
@@ -783,10 +787,10 @@ public void testBM25WithBedrockConverseUsingLlmMessages() throws Exception {
783
787
Response response1 = createSearchPipeline ("pipeline_test" , pipelineParameters );
784
788
assertEquals (200 , response1 .getStatusLine ().getStatusCode ());
785
789
786
- byte [] rawImage = FileUtils .readFileToByteArray (Path .of (classLoader .getResource (TEST_DOC_PATH + "openai_boardwalk.jpg" ).toURI ()).toFile ());
790
+ byte [] rawImage = FileUtils
791
+ .readFileToByteArray (Path .of (classLoader .getResource (TEST_DOC_PATH + "openai_boardwalk.jpg" ).toURI ()).toFile ());
787
792
String imageContent = Base64 .getEncoder ().encodeToString (rawImage );
788
793
789
-
790
794
SearchRequestParameters requestParameters = new SearchRequestParameters ();
791
795
792
796
requestParameters .source = "text" ;
@@ -971,7 +975,8 @@ public void testBM25WithOpenAIWithConversationAndImage() throws Exception {
971
975
requestParameters .conversationId = conversationId ;
972
976
requestParameters .imageFormat = "jpeg" ;
973
977
requestParameters .imageType = "url" ;
974
- requestParameters .imageData = "https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg" ;
978
+ requestParameters .imageData =
979
+ "https://upload.wikimedia.org/wikipedia/commons/thumb/d/dd/Gfp-wisconsin-madison-the-nature-boardwalk.jpg/2560px-Gfp-wisconsin-madison-the-nature-boardwalk.jpg" ;
975
980
Response response2 = performSearch (INDEX_NAME , "pipeline_test" , 5 , requestParameters );
976
981
assertEquals (200 , response2 .getStatusLine ().getStatusCode ());
977
982
@@ -1217,29 +1222,29 @@ private Response performSearch(String indexName, String pipeline, int size, Sear
1217
1222
requestParameters .llmResponseField
1218
1223
)
1219
1224
: (requestParameters .documentData != null && requestParameters .imageType != null )
1220
- ? String
1221
- .format (
1222
- Locale .ROOT ,
1223
- BM25_SEARCH_REQUEST_WITH_IMAGE_AND_DOCUMENT_TEMPLATE ,
1224
- requestParameters .source ,
1225
- requestParameters .source ,
1226
- requestParameters .match ,
1227
- requestParameters .llmModel ,
1228
- requestParameters .llmQuestion ,
1229
- requestParameters .systemPrompt ,
1230
- requestParameters .userInstructions ,
1231
- requestParameters .contextSize ,
1232
- requestParameters .interactionSize ,
1233
- requestParameters .timeout ,
1234
- requestParameters .llmQuestion ,
1235
- requestParameters .imageFormat ,
1236
- requestParameters .imageType ,
1237
- requestParameters .imageData ,
1238
- requestParameters .documentFormat ,
1239
- requestParameters .documentName ,
1240
- requestParameters .documentData
1241
- )
1242
- : (requestParameters .documentData != null )
1225
+ ? String
1226
+ .format (
1227
+ Locale .ROOT ,
1228
+ BM25_SEARCH_REQUEST_WITH_IMAGE_AND_DOCUMENT_TEMPLATE ,
1229
+ requestParameters .source ,
1230
+ requestParameters .source ,
1231
+ requestParameters .match ,
1232
+ requestParameters .llmModel ,
1233
+ requestParameters .llmQuestion ,
1234
+ requestParameters .systemPrompt ,
1235
+ requestParameters .userInstructions ,
1236
+ requestParameters .contextSize ,
1237
+ requestParameters .interactionSize ,
1238
+ requestParameters .timeout ,
1239
+ requestParameters .llmQuestion ,
1240
+ requestParameters .imageFormat ,
1241
+ requestParameters .imageType ,
1242
+ requestParameters .imageData ,
1243
+ requestParameters .documentFormat ,
1244
+ requestParameters .documentName ,
1245
+ requestParameters .documentData
1246
+ )
1247
+ : (requestParameters .documentData != null )
1243
1248
? String
1244
1249
.format (
1245
1250
Locale .ROOT ,
@@ -1260,46 +1265,46 @@ private Response performSearch(String indexName, String pipeline, int size, Sear
1260
1265
requestParameters .documentData
1261
1266
)
1262
1267
: (requestParameters .conversationId != null && requestParameters .imageType != null )
1263
- ? String
1264
- .format (
1265
- Locale .ROOT ,
1266
- BM25_SEARCH_REQUEST_WITH_CONVO_AND_IMAGE_TEMPLATE ,
1267
- requestParameters .source ,
1268
- requestParameters .source ,
1269
- requestParameters .match ,
1270
- requestParameters .llmModel ,
1271
- requestParameters .llmQuestion ,
1272
- requestParameters .conversationId ,
1273
- requestParameters .systemPrompt ,
1274
- requestParameters .userInstructions ,
1275
- requestParameters .contextSize ,
1276
- requestParameters .interactionSize ,
1277
- requestParameters .timeout ,
1278
- requestParameters .llmQuestion ,
1279
- requestParameters .imageFormat ,
1280
- requestParameters .imageType ,
1281
- requestParameters .imageData
1282
- )
1268
+ ? String
1269
+ .format (
1270
+ Locale .ROOT ,
1271
+ BM25_SEARCH_REQUEST_WITH_CONVO_AND_IMAGE_TEMPLATE ,
1272
+ requestParameters .source ,
1273
+ requestParameters .source ,
1274
+ requestParameters .match ,
1275
+ requestParameters .llmModel ,
1276
+ requestParameters .llmQuestion ,
1277
+ requestParameters .conversationId ,
1278
+ requestParameters .systemPrompt ,
1279
+ requestParameters .userInstructions ,
1280
+ requestParameters .contextSize ,
1281
+ requestParameters .interactionSize ,
1282
+ requestParameters .timeout ,
1283
+ requestParameters .llmQuestion ,
1284
+ requestParameters .imageFormat ,
1285
+ requestParameters .imageType ,
1286
+ requestParameters .imageData
1287
+ )
1283
1288
: (requestParameters .imageType != null )
1284
- ? String
1285
- .format (
1286
- Locale .ROOT ,
1287
- BM25_SEARCH_REQUEST_WITH_IMAGE_TEMPLATE ,
1288
- requestParameters .source ,
1289
- requestParameters .source ,
1290
- requestParameters .match ,
1291
- requestParameters .llmModel ,
1292
- requestParameters .llmQuestion ,
1293
- requestParameters .systemPrompt ,
1294
- requestParameters .userInstructions ,
1295
- requestParameters .contextSize ,
1296
- requestParameters .interactionSize ,
1297
- requestParameters .timeout ,
1298
- requestParameters .llmQuestion ,
1299
- requestParameters .imageFormat ,
1300
- requestParameters .imageType ,
1301
- requestParameters .imageData
1302
- )
1289
+ ? String
1290
+ .format (
1291
+ Locale .ROOT ,
1292
+ BM25_SEARCH_REQUEST_WITH_IMAGE_TEMPLATE ,
1293
+ requestParameters .source ,
1294
+ requestParameters .source ,
1295
+ requestParameters .match ,
1296
+ requestParameters .llmModel ,
1297
+ requestParameters .llmQuestion ,
1298
+ requestParameters .systemPrompt ,
1299
+ requestParameters .userInstructions ,
1300
+ requestParameters .contextSize ,
1301
+ requestParameters .interactionSize ,
1302
+ requestParameters .timeout ,
1303
+ requestParameters .llmQuestion ,
1304
+ requestParameters .imageFormat ,
1305
+ requestParameters .imageType ,
1306
+ requestParameters .imageData
1307
+ )
1303
1308
: (requestParameters .conversationId == null )
1304
1309
? String
1305
1310
.format (
0 commit comments