Skip to content

Commit 35f98e2

Browse files
authored
Android fix system prompt part (#100)
1 parent b9dde8c commit 35f98e2

File tree

3 files changed

+7
-10
lines changed

3 files changed

+7
-10
lines changed

llm/android/LlamaDemo/app/src/main/java/com/example/executorchllamademo/MainActivity.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ public class MainActivity extends AppCompatActivity implements Runnable, LlmCall
9090
private Executor executor;
9191
private boolean sawStartHeaderId = false;
9292
private String mAudioFileToPrefill;
93+
private boolean shouldAddSystemPrompt = true;
9394

9495
@Override
9596
public void onResult(String result) {
@@ -652,7 +653,8 @@ private int getInputImageSideSize() {
652653
case GEMMA_3:
653654
return 896;
654655
default:
655-
throw new IllegalArgumentException("Unsupported model type: " + mCurrentSettingsFields.getModelType());
656+
throw new IllegalArgumentException(
657+
"Unsupported model type: " + mCurrentSettingsFields.getModelType());
656658
}
657659
}
658660

@@ -774,7 +776,9 @@ private void onModelRunStopped() {
774776
addSelectedImagesToChatThread(mSelectedImageUri);
775777
String rawPrompt = mEditTextMessage.getText().toString();
776778
String finalPrompt =
777-
mCurrentSettingsFields.getFormattedSystemAndUserPrompt(rawPrompt, mThinkMode);
779+
(shouldAddSystemPrompt ? mCurrentSettingsFields.getFormattedSystemPrompt() : "")
780+
+ mCurrentSettingsFields.getFormattedUserPrompt(rawPrompt, mThinkMode);
781+
shouldAddSystemPrompt = false;
778782
// We store raw prompt into message adapter, because we don't want to show the extra
779783
// tokens from system prompt
780784
mMessageAdapter.add(new Message(rawPrompt, true, MessageType.TEXT, promptID));

llm/android/LlamaDemo/app/src/main/java/com/example/executorchllamademo/PromptFormat.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,10 @@ public class PromptFormat {
1818

1919
public static String getSystemPromptTemplate(ModelType modelType) {
2020
switch (modelType) {
21-
case GEMMA_3:
22-
return SYSTEM_PLACEHOLDER;
2321
case LLAMA_3:
2422
return "<|begin_of_text|><|start_header_id|>system<|end_header_id|>\n"
2523
+ SYSTEM_PLACEHOLDER
2624
+ "<|eot_id|>";
27-
case LLAVA_1_5:
28-
return "USER: ";
2925
case QWEN_3:
3026
return "<|im_start|>system\n" + "You are a helpful assistant.\n" + "<|im_end|>\n";
3127
default:
@@ -51,6 +47,7 @@ public static String getUserPromptTemplate(ModelType modelType) {
5147
+ "<|im_start|>assistant\n"
5248
+ THINKING_MODE_PLACEHOLDER;
5349
case LLAVA_1_5:
50+
return "User: " + USER_PLACEHOLDER;
5451
default:
5552
return USER_PLACEHOLDER;
5653
}

llm/android/LlamaDemo/app/src/main/java/com/example/executorchllamademo/SettingsFields.java

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,6 @@ public String getUserPrompt() {
3838
return userPrompt;
3939
}
4040

41-
public String getFormattedSystemAndUserPrompt(String prompt, boolean thinkingMode) {
42-
return getFormattedSystemPrompt() + getFormattedUserPrompt(prompt, thinkingMode);
43-
}
44-
4541
public String getFormattedSystemPrompt() {
4642
return PromptFormat.getSystemPromptTemplate(modelType)
4743
.replace(PromptFormat.SYSTEM_PLACEHOLDER, systemPrompt);

0 commit comments

Comments
 (0)