Merged lm-lib

git-svn-id: svn://home0/lm-lib@3737 71dcc7fd-b1f2-4e5d-bb8e-274146e81173
This commit is contained in:
(no author)
2025-04-15 17:51:39 +00:00
parent 776ab01e85
commit 04cde2558a
4 changed files with 105 additions and 2 deletions

View File

@@ -0,0 +1,51 @@
package de.extio.lmlib.prompt;
import org.springframework.stereotype.Component;
/**
* @see https://llama.meta.com/docs/model-cards-and-prompt-formats/meta-llama-3
*/
@Component
public class Llama4PromptStrategy implements PromptStrategy {
@Override
public StringBuilder start(final String system, final String question, final String text) {
final StringBuilder prompt = new StringBuilder();
prompt.append("<|begin_of_text|>");
if (!system.isEmpty()) {
prompt.append("<|header_start|>system<|header_end|>\n\n");
prompt.append(system);
prompt.append("<|eot|>");
}
prompt.append("<|header_start|>user<|header_end|>\n\n");
prompt.append(question);
if (!question.isEmpty() && !text.isEmpty()) {
prompt.append("\n\n");
}
prompt.append(text);
prompt.append("<|eot|><|header_start|>assistant<|header_end|>\n");
return prompt;
}
@Override
public void continue_(final StringBuilder prompt, final String assistant) {
this.next(prompt, assistant, "Continue");
}
@Override
public void next(final StringBuilder prompt, final String assistant, final String user) {
prompt.append(assistant);
prompt.append("<|eot|><|header_start|>user<|header_end|>\n\n" + user + "<|eot|><|header_start|>assistant<|header_end|>\n");
}
@Override
public String removeEOT(final String prompt) {
return prompt.strip().replace("<|eot|>", "");
}
@Override
public String getPromptName() {
return "llama4";
}
}