added Prompt Builder

This commit is contained in:
Amith Koujalgi
2023-12-31 01:33:59 +05:30
parent 7470ebe846
commit e2b29b6a07
5 changed files with 151 additions and 2 deletions

View File

@@ -21,6 +21,7 @@ public class OllamaModelType {
public static final String VICUNA = "vicuna";
public static final String WIZARD_VICUNA_UNCENSORED = "wizard-vicuna-uncensored";
public static final String PHIND_CODELLAMA = "phind-codellama";
public static final String PHI = "phi";
public static final String ZEPHYR = "zephyr";
public static final String WIZARDCODER = "wizardcoder";
public static final String MISTRAL_OPENORCA = "mistral-openorca";

View File

@@ -0,0 +1,69 @@
package io.github.amithkoujalgi.ollama4j.core.utils;
/**
* The {@code PromptBuilder} class is used to construct prompt texts for language models (LLMs). It
* provides methods for adding text, adding lines, adding separators, and building the final prompt.
*
* <p>Example usage:
*
* <pre>{@code
* PromptBuilder promptBuilder = new PromptBuilder();
* promptBuilder.add("This is a sample prompt for language models.")
* .addLine("You can add lines to provide context.")
* .addSeparator()
* .add("Feel free to customize as needed.");
* String finalPrompt = promptBuilder.build();
* System.out.println(finalPrompt);
* }</pre>
*/
public class PromptBuilder {
private final StringBuilder prompt;
/** Constructs a new {@code PromptBuilder} with an empty prompt. */
public PromptBuilder() {
this.prompt = new StringBuilder();
}
/**
* Appends the specified text to the prompt.
*
* @param text the text to be added to the prompt
* @return a reference to this {@code PromptBuilder} instance for method chaining
*/
public PromptBuilder add(String text) {
prompt.append(text);
return this;
}
/**
* Appends the specified text followed by a newline character to the prompt.
*
* @param text the text to be added as a line to the prompt
* @return a reference to this {@code PromptBuilder} instance for method chaining
*/
public PromptBuilder addLine(String text) {
prompt.append(text).append("\n");
return this;
}
/**
* Appends a separator line to the prompt. The separator is a newline followed by a line of
* dashes.
*
* @return a reference to this {@code PromptBuilder} instance for method chaining
*/
public PromptBuilder addSeparator() {
prompt.append("\n--------------------------------------------------\n");
return this;
}
/**
* Builds and returns the final prompt as a string.
*
* @return the final prompt as a string
*/
public String build() {
return prompt.toString();
}
}