Fixed some errors with the System prompt

Chaged java version to make this more compadible
This commit is contained in:
2026-07-20 18:03:31 +02:00
parent 4cd4367a19
commit 330d7df389
4 changed files with 40 additions and 29 deletions
+1 -1
View File
@@ -2,7 +2,7 @@ plugins {
id 'java-library'
}
version = '1.9.0'
version = '1.9.5'
dependencies {
implementation project(":Plugin-API")
@@ -137,7 +137,7 @@ public class LLMSystemPrompt {
for (Pair<OllamaTool, String> tool : ollamaObject.getTools()) {
if(tool.getKey() instanceof OllamaFunctionTool funcTool) {
String llmName = funcTool.name() + "_" + (funcTool.getSource() != null ? funcTool.getSource() : "");
String hint = capabilities.getUsageHints().get(tool.getClass());
String hint = capabilities.getUsageHints().get(funcTool.getClass());
// fall back to description() if no explicit routing hint was set
String line = hint != null ? hint : funcTool.description();
@@ -56,6 +56,10 @@ public class OllamaObject {
* The keep alive of the Ollama Object.
*/
String keep_alive;
/**
* The system prompt object used to re-generate the system prompt.
*/
LLMSystemPrompt systemPrompt;
/**
* Creates a new instance of OllamaObject.
@@ -66,10 +70,12 @@ public class OllamaObject {
* @param options The options of the Ollama Object. see {@link OllamaObject#options}
* @param stream If the Ollama Object is streamed. see {@link OllamaObject#stream}
* @param keep_alive The keep alive of the Ollama Object. see {@link OllamaObject#keep_alive}
* @param prompt The system prompt object of the Ollama Object. See {@link OllamaObject#systemPrompt}
*/
private OllamaObject(String model, ArrayList<OllamaMessage> messages, ArrayList<Pair<OllamaTool, String>> tools, JSONObject format, Map<String, Object> options, boolean stream, String keep_alive, LLMSystemPrompt prompt) {
this.model = model;
this.messages = messages;
this.systemPrompt = prompt;
// Reflecting the reflection injection for ALL tools that was added in the OllamaObjectBuilder, etc, etc comment.. its past midnignt and i'm tired.
for(Pair<OllamaTool, String> tool : tools)
@@ -135,36 +141,41 @@ public class OllamaObject {
}
}
if(prompt == null) {
// Do nothing
}
else if(!this.messages.isEmpty())
{
if(prompt != null) {
prompt.generateCapabilities(this);
if (!this.messages.isEmpty()) {
OllamaMessage systemPrompt = this.messages.getFirst();
if(systemPrompt.getRole() != OllamaMessageRole.SYSTEM)
{
if (systemPrompt.getRole() != OllamaMessageRole.SYSTEM) {
System.out.println("FIRST MESSAGE ISN'T A SYSTEM PROMPT!. Pushing all messages forward and injecting the system prompt");
Core.writeLog("FIRST MESSAGE ISN'T A SYSTEM PROMPT!. Pushing all messages forward and injecting the system prompt");
ArrayList<OllamaMessage> newMessages = new ArrayList<>();
newMessages.add(prompt.generateSystemPrompt());
newMessages.addAll(messages);
this.messages = newMessages;
}
else
{
} else {
System.out.println("Replacing System prompt...");
Core.writeLog("Replacing System prompt...");
systemPrompt = prompt.generateSystemPrompt();
this.messages.set(0, systemPrompt);
}
}
else
{
} else {
System.out.println("No old prompts. Inserting system prompt...");
Core.writeLog("No old prompts. Inserting system prompt...");
this.messages.add(prompt.generateSystemPrompt());
}
}
}
/**
* Re-generates and sets the system promp according to the {@link LLMSystemPrompt} stored as {@link OllamaObject#systemPrompt}
*/
public void reGenerateSystemPrompt()
{
if(systemPrompt != null) {
systemPrompt.generateCapabilities(this);
setSystemPrompt(systemPrompt);
}
}
/**
* Gets the model of the Ollama Object.
+1 -1
View File
@@ -1,3 +1,3 @@
# This is used in sub-project that dosent explicitly require the API sub-project to only include if thay shuld be included project wide.
useAPI = true
javaVersion = 26
javaVersion = 25