diff --git a/agents-flex-core/src/main/java/com/agentsflex/core/prompt/FunctionPrompt.java b/agents-flex-core/src/main/java/com/agentsflex/core/prompt/FunctionPrompt.java new file mode 100644 index 0000000..030c1e1 --- /dev/null +++ b/agents-flex-core/src/main/java/com/agentsflex/core/prompt/FunctionPrompt.java @@ -0,0 +1,71 @@ +package com.agentsflex.core.prompt; + +import com.agentsflex.core.llm.functions.Function; +import com.agentsflex.core.message.HumanMessage; +import com.agentsflex.core.message.Message; +import com.agentsflex.core.message.SystemMessage; + +import java.util.ArrayList; +import java.util.List; + +public class FunctionPrompt extends Prompt { + + private SystemMessage systemMessage; + private HumanMessage humanMessage; + private boolean autoCall = true; + + public FunctionPrompt(String message, Class functionsClass) { + this.humanMessage = new HumanMessage(message); + this.humanMessage.addFunctions(functionsClass); + } + + public FunctionPrompt(String message, List functions) { + this.humanMessage = new HumanMessage(message); + this.humanMessage.addFunctions(functions); + } + + public SystemMessage getSystemMessage() { + return systemMessage; + } + + public void setSystemMessage(SystemMessage systemMessage) { + this.systemMessage = systemMessage; + } + + public HumanMessage getHumanMessage() { + return humanMessage; + } + + public void setHumanMessage(HumanMessage humanMessage) { + this.humanMessage = humanMessage; + } + + public boolean isAutoCall() { + return autoCall; + } + + public void setAutoCall(boolean autoCall) { + this.autoCall = autoCall; + } + + @Override + public List toMessages() { + List messages = new ArrayList<>(); + if (systemMessage != null) { + messages.add(0, systemMessage); + } + + messages.add(humanMessage); + return messages; + } + + @Override + public String toString() { + return "FunctionPrompt{" + + "systemMessage=" + systemMessage + + ", humanMessage=" + humanMessage + + ", autoCall=" + autoCall + + ", metadataMap=" + metadataMap + + '}'; + } +}