Agents: {{{xxx}}} placeholders to insert multi values in json format; AgentContext: Convenience methods; Agents: Better error handling; Updated prompt strategies; More response handlers;

git-svn-id: svn://home0/lm-lib@3653 71dcc7fd-b1f2-4e5d-bb8e-274146e81173
This commit is contained in:
(no author)
2024-12-22 22:51:01 +00:00
parent cb2c1c02da
commit fbdba7d76d
8 changed files with 184 additions and 23 deletions

View File

@@ -0,0 +1,50 @@
package de.extio.lmlib.prompt;
import org.springframework.stereotype.Component;
@Component
public class MistralNemoPromptStrategy implements PromptStrategy {
@Override
public StringBuilder start(final String instruction, final String question, final String text) {
final StringBuilder prompt = new StringBuilder();
prompt.append("<s>[INST]");
if (! instruction.isEmpty()) {
prompt.append(instruction);
prompt.append("\n");
}
if (!question.isEmpty() || !text.isEmpty()) {
prompt.append(question);
if (!question.isEmpty() && !text.isEmpty()) {
prompt.append("\n");
}
prompt.append(text);
}
prompt.append("[/INST]");
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("</s>[INST]");
prompt.append(user);
prompt.append("[/INST]");
}
@Override
public String removeEOT(final String prompt) {
return prompt.strip().replace("</s>", "").replace("<|im_end|>", "");
}
@Override
public String getPromptName() {
return "mistralNemo";
}
}

View File

@@ -3,12 +3,12 @@ package de.extio.lmlib.prompt;
import org.springframework.stereotype.Component;
@Component
public class MixtralPromptStrategy implements PromptStrategy {
public class MistralPromptStrategy implements PromptStrategy {
@Override
public StringBuilder start(final String instruction, final String question, final String text) {
final StringBuilder prompt = new StringBuilder();
prompt.append("<s>[INST] ");
prompt.append("<s>[INST]");
prompt.append(instruction);
if (!instruction.isEmpty() && !question.isEmpty()) {
prompt.append("\n");
@@ -29,21 +29,21 @@ public class MixtralPromptStrategy implements PromptStrategy {
@Override
public void next(final StringBuilder prompt, final String assistant, final String user) {
prompt.append("\n\"");
prompt.append(" ");
prompt.append(assistant);
prompt.append("\"</s> [INST] ");
prompt.append("</s> [INST] ");
prompt.append(user);
prompt.append(" [/INST]");
}
@Override
public String removeEOT(final String prompt) {
return prompt.strip().replace("</s>", "");
return prompt.strip().replace("</s>", "").replace("<|im_end|>", "");
}
@Override
public String getPromptName() {
return "mixtral";
return "mistral";
}
}