Skip to content

Commit 239a695

Browse files
committed
Allow pdf and jpg files for IT tests for multimodel conversation API testing.
Signed-off-by: Austin Lee <[email protected]>
1 parent 96e6c62 commit 239a695

File tree

2 files changed

+30
-25
lines changed

2 files changed

+30
-25
lines changed

plugin/build.gradle

+5
Original file line numberDiff line numberDiff line change
@@ -576,3 +576,8 @@ task bwcTestSuite(type: StandaloneRestIntegTestTask) {
576576
dependsOn tasks.named("${baseName}#rollingUpgradeClusterTask")
577577
dependsOn tasks.named("${baseName}#fullRestartClusterTask")
578578
}
579+
580+
forbiddenPatterns {
581+
exclude '**/*.pdf'
582+
exclude '**/*.jpg'
583+
}

search-processors/src/main/java/org/opensearch/searchpipelines/questionanswering/generative/prompt/PromptUtil.java

+25-25
Original file line numberDiff line numberDiff line change
@@ -188,43 +188,43 @@ static String buildMessageParameter(
188188
userInstructions = DEFAULT_SYSTEM_PROMPT;
189189
}
190190

191-
MessageArrayBuilder bldr = new MessageArrayBuilder(provider);
191+
MessageArrayBuilder messageArrayBuilder = new MessageArrayBuilder(provider);
192192

193193
// Build the system prompt (only one per conversation/session)
194194
if (!Strings.isNullOrEmpty(systemPrompt)) {
195-
bldr.startMessage(ChatRole.SYSTEM);
196-
bldr.addTextContent(systemPrompt);
197-
bldr.endMessage();
195+
messageArrayBuilder.startMessage(ChatRole.SYSTEM);
196+
messageArrayBuilder.addTextContent(systemPrompt);
197+
messageArrayBuilder.endMessage();
198198
}
199199

200200
// Anthropic does not allow two consecutive messages of the same role
201201
// so we combine all user messages and an array of contents.
202-
bldr.startMessage(ChatRole.USER);
202+
messageArrayBuilder.startMessage(ChatRole.USER);
203203
boolean lastRoleIsAssistant = false;
204204
if (!Strings.isNullOrEmpty(userInstructions)) {
205-
bldr.addTextContent(userInstructions);
205+
messageArrayBuilder.addTextContent(userInstructions);
206206
}
207207

208208
for (int i = 0; i < contexts.size(); i++) {
209-
bldr.addTextContent("SEARCH RESULT " + (i + 1) + ": " + contexts.get(i));
209+
messageArrayBuilder.addTextContent("SEARCH RESULT " + (i + 1) + ": " + contexts.get(i));
210210
}
211211

212212
if (!chatHistory.isEmpty()) {
213213
// The oldest interaction first
214214
int idx = chatHistory.size() - 1;
215215
Interaction firstInteraction = chatHistory.get(idx);
216-
bldr.addTextContent(firstInteraction.getInput());
217-
bldr.endMessage();
218-
bldr.startMessage(ChatRole.ASSISTANT, firstInteraction.getResponse());
219-
bldr.endMessage();
216+
messageArrayBuilder.addTextContent(firstInteraction.getInput());
217+
messageArrayBuilder.endMessage();
218+
messageArrayBuilder.startMessage(ChatRole.ASSISTANT, firstInteraction.getResponse());
219+
messageArrayBuilder.endMessage();
220220

221221
if (chatHistory.size() > 1) {
222222
for (int i = --idx; i >= 0; i--) {
223223
Interaction interaction = chatHistory.get(i);
224-
bldr.startMessage(ChatRole.USER, interaction.getInput());
225-
bldr.endMessage();
226-
bldr.startMessage(ChatRole.ASSISTANT, interaction.getResponse());
227-
bldr.endMessage();
224+
messageArrayBuilder.startMessage(ChatRole.USER, interaction.getInput());
225+
messageArrayBuilder.endMessage();
226+
messageArrayBuilder.startMessage(ChatRole.ASSISTANT, interaction.getResponse());
227+
messageArrayBuilder.endMessage();
228228
}
229229
}
230230

@@ -234,26 +234,26 @@ static String buildMessageParameter(
234234
if (llmMessages != null && !llmMessages.isEmpty()) {
235235
// TODO MessageBlock can have assistant roles for few-shot prompting.
236236
if (lastRoleIsAssistant) {
237-
bldr.startMessage(ChatRole.USER);
237+
messageArrayBuilder.startMessage(ChatRole.USER);
238238
}
239239
for (MessageBlock message : llmMessages) {
240240
List<MessageBlock.AbstractBlock> blockList = message.getBlockList();
241241
for (MessageBlock.Block block : blockList) {
242242
switch (block.getType()) {
243243
case "text":
244-
bldr.addTextContent(((MessageBlock.TextBlock) block).getText());
244+
messageArrayBuilder.addTextContent(((MessageBlock.TextBlock) block).getText());
245245
break;
246246
case "image":
247247
MessageBlock.ImageBlock ib = (MessageBlock.ImageBlock) block;
248248
if (ib.getData() != null) {
249-
bldr.addImageData(ib.getFormat(), ib.getData());
249+
messageArrayBuilder.addImageData(ib.getFormat(), ib.getData());
250250
} else if (ib.getUrl() != null) {
251-
bldr.addImageUrl(ib.getFormat(), ib.getUrl());
251+
messageArrayBuilder.addImageUrl(ib.getFormat(), ib.getUrl());
252252
}
253253
break;
254254
case "document":
255255
MessageBlock.DocumentBlock db = (MessageBlock.DocumentBlock) block;
256-
bldr.addDocumentContent(db.getFormat(), db.getName(), db.getData());
256+
messageArrayBuilder.addDocumentContent(db.getFormat(), db.getName(), db.getData());
257257
break;
258258
default:
259259
break;
@@ -262,16 +262,16 @@ static String buildMessageParameter(
262262
}
263263
} else {
264264
if (lastRoleIsAssistant) {
265-
bldr.startMessage(ChatRole.USER, "QUESTION: " + question + "\n");
265+
messageArrayBuilder.startMessage(ChatRole.USER, "QUESTION: " + question + "\n");
266266
} else {
267-
bldr.addTextContent("QUESTION: " + question + "\n");
267+
messageArrayBuilder.addTextContent("QUESTION: " + question + "\n");
268268
}
269-
bldr.addTextContent("ANSWER:");
269+
messageArrayBuilder.addTextContent("ANSWER:");
270270
}
271271

272-
bldr.endMessage();
272+
messageArrayBuilder.endMessage();
273273

274-
return bldr.toJsonArray().toString();
274+
return messageArrayBuilder.toJsonArray().toString();
275275
}
276276

277277
public static String getPromptTemplate(String systemPrompt, String userInstructions) {

0 commit comments

Comments
 (0)