From ee73ebc3b339ab3041798877c89a3a97462ff5bb Mon Sep 17 00:00:00 2001 From: austin Date: Tue, 31 Dec 2024 19:55:52 -0500 Subject: [PATCH] add new conversation goal type --- .../evaluators/goal/GoalData.java | 19 ++++++++++++++++++- .../evaluators/goal/GoalEval.java | 2 +- .../evaluators/opener/OpenerSynthesis.java | 3 ++- .../evaluators/synthesis/ResponseEval.java | 2 +- .../transfer/TransferSynthesis.java | 3 ++- 5 files changed, 24 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/studiorailgun/ai/conversation/evaluators/goal/GoalData.java b/src/main/java/org/studiorailgun/ai/conversation/evaluators/goal/GoalData.java index d1d15d5..66452df 100644 --- a/src/main/java/org/studiorailgun/ai/conversation/evaluators/goal/GoalData.java +++ b/src/main/java/org/studiorailgun/ai/conversation/evaluators/goal/GoalData.java @@ -20,7 +20,12 @@ public class GoalData { /** * Answer a question */ - ANSWER, + TRANSMIT_INFO, + + /** + * Queries for a piece of information + */ + QUERY_INFO, /** * Prompt a conversation-opening question @@ -45,14 +50,26 @@ public class GoalData { this.queryData = new QueryData(); } + /** + * Gets the current goal + * @return The goal + */ public ConversationGoal getGoal() { return goal; } + /** + * Sets the current goal + * @param goal The goal + */ public void setGoal(ConversationGoal goal) { this.goal = goal; } + /** + * Gets the query data + * @return The query data + */ public QueryData getQueryData() { return queryData; } diff --git a/src/main/java/org/studiorailgun/ai/conversation/evaluators/goal/GoalEval.java b/src/main/java/org/studiorailgun/ai/conversation/evaluators/goal/GoalEval.java index 2f72235..aa06741 100644 --- a/src/main/java/org/studiorailgun/ai/conversation/evaluators/goal/GoalEval.java +++ b/src/main/java/org/studiorailgun/ai/conversation/evaluators/goal/GoalEval.java @@ -28,7 +28,7 @@ public class GoalEval { //evaluate if goal should be to answer a question if(queryData.getRecentQueries().size() > 0){ - goalData.setGoal(ConversationGoal.ANSWER); + goalData.setGoal(ConversationGoal.TRANSMIT_INFO); return; } diff --git a/src/main/java/org/studiorailgun/ai/conversation/evaluators/opener/OpenerSynthesis.java b/src/main/java/org/studiorailgun/ai/conversation/evaluators/opener/OpenerSynthesis.java index 7c177b4..fd11c71 100644 --- a/src/main/java/org/studiorailgun/ai/conversation/evaluators/opener/OpenerSynthesis.java +++ b/src/main/java/org/studiorailgun/ai/conversation/evaluators/opener/OpenerSynthesis.java @@ -25,7 +25,8 @@ public class OpenerSynthesis { throw new Error("Unhandled opener state"); } } break; - case ANSWER: + case QUERY_INFO: + case TRANSMIT_INFO: case GREET: { throw new Error("Unsupported goal type for information transfer! " + goalData.getGoal()); } diff --git a/src/main/java/org/studiorailgun/ai/conversation/evaluators/synthesis/ResponseEval.java b/src/main/java/org/studiorailgun/ai/conversation/evaluators/synthesis/ResponseEval.java index a7fec11..4de9670 100644 --- a/src/main/java/org/studiorailgun/ai/conversation/evaluators/synthesis/ResponseEval.java +++ b/src/main/java/org/studiorailgun/ai/conversation/evaluators/synthesis/ResponseEval.java @@ -23,7 +23,7 @@ public class ResponseEval { response = GreetingEval.constructGreeting(conversation); conversation.getGreetingData().getHaveGreeted().add(conversation.getSelf()); } break; - case ANSWER: { + case TRANSMIT_INFO: { response = TransferSynthesis.synthesize(conversation); } break; case OPENER: { diff --git a/src/main/java/org/studiorailgun/ai/conversation/evaluators/transfer/TransferSynthesis.java b/src/main/java/org/studiorailgun/ai/conversation/evaluators/transfer/TransferSynthesis.java index c2cba46..76adfe5 100644 --- a/src/main/java/org/studiorailgun/ai/conversation/evaluators/transfer/TransferSynthesis.java +++ b/src/main/java/org/studiorailgun/ai/conversation/evaluators/transfer/TransferSynthesis.java @@ -19,10 +19,11 @@ public class TransferSynthesis { Sentence response = null; GoalData goalData = conversation.getGoalData(); switch(goalData.getGoal()){ - case ANSWER: { + case TRANSMIT_INFO: { Sentence questionToAnswer = goalData.getQueryData().getRecentQueries().remove(0); response = AnswerSynthesis.evaluate(conversation, questionToAnswer.getParent(), questionToAnswer); } break; + case QUERY_INFO: case OPENER: case GREET: { throw new Error("Unsupported goal type for information transfer! " + goalData.getGoal());