From 93d244cb36bfacb042c9cfb65b1fe68966cddb56 Mon Sep 17 00:00:00 2001 From: Mahesh Kommareddi Date: Wed, 17 Jul 2024 03:51:54 -0400 Subject: [PATCH] Parsing bug fixes --- .../com/ioa/conversation/ConversationFSM.java | 25 +++++++++++++++--- .../ioa/conversation/ConversationState.java | 6 ++++- ...versationFSM$ConversationStateUpdate.class | Bin 1115 -> 1115 bytes .../ioa/conversation/ConversationFSM.class | Bin 7693 -> 8549 bytes .../ioa/conversation/ConversationState.class | Bin 1273 -> 1351 bytes 5 files changed, 26 insertions(+), 5 deletions(-) diff --git a/src/main/java/com/ioa/conversation/ConversationFSM.java b/src/main/java/com/ioa/conversation/ConversationFSM.java index b67853e..2048686 100644 --- a/src/main/java/com/ioa/conversation/ConversationFSM.java +++ b/src/main/java/com/ioa/conversation/ConversationFSM.java @@ -66,15 +66,18 @@ public class ConversationFSM { } else { String stateTransitionTask = "Decide the next conversation state based on this message: " + message.getContent() + "\nCurrent state: " + currentState + - "\nParticipants: " + participants; + "\nParticipants: " + participants + + "\nPossible states: " + Arrays.toString(ConversationState.values()); String reasoning = model.generate(stateTransitionTask, null); String decisionPrompt = "Based on this reasoning:\n" + reasoning + - "\nProvide the next conversation state (DISCUSSION, TASK_ASSIGNMENT, EXECUTION, or CONCLUSION)."; + "\nProvide the next conversation state. Choose from: " + + Arrays.toString(ConversationState.values()) + + "\nResponse format: STATE: "; String response = model.generate(decisionPrompt, null); - ConversationState newState = ConversationState.valueOf(response.trim()); + ConversationState newState = parseStateFromResponse(response); transitionTo(newState); // Broadcast the message to all participants @@ -85,10 +88,24 @@ public class ConversationFSM { } webSocketService.sendUpdate("conversation_message", message); - } } + private ConversationState parseStateFromResponse(String response) { + String[] parts = response.split(":"); + if (parts.length > 1) { + String stateName = parts[1].trim().toUpperCase(); + try { + return ConversationState.valueOf(stateName); + } catch (IllegalArgumentException e) { + System.out.println("Invalid state name: " + stateName + ". Defaulting to DISCUSSION."); + return ConversationState.DISCUSSION; + } + } + System.out.println("Could not parse state from response: " + response + ". Defaulting to DISCUSSION."); + return ConversationState.DISCUSSION; + } + private void handleVote(String agentId) { votes.put(agentId, true); checkVotes(); diff --git a/src/main/java/com/ioa/conversation/ConversationState.java b/src/main/java/com/ioa/conversation/ConversationState.java index b8921b4..470d24d 100644 --- a/src/main/java/com/ioa/conversation/ConversationState.java +++ b/src/main/java/com/ioa/conversation/ConversationState.java @@ -1,5 +1,9 @@ package com.ioa.conversation; public enum ConversationState { - DISCUSSION, TASK_ASSIGNMENT, EXECUTION, CONCLUSION + DISCUSSION, + TASK_GATHERING_INFO, + TASK_ASSIGNMENT, + EXECUTION, + CONCLUSION } \ No newline at end of file diff --git a/target/classes/com/ioa/conversation/ConversationFSM$ConversationStateUpdate.class b/target/classes/com/ioa/conversation/ConversationFSM$ConversationStateUpdate.class index 49bea4bef924816903188bdf9d58beb02733bc71..7d069d0627ea3ac790710b8e2f857e8e3db7ceb4 100644 GIT binary patch delta 25 hcmcc3ahqeqO=jL13@i*Y8F(0GF$glup8Slt6aZ`<2iO1r delta 25 gcmcc3ahqeqO=jM91{Q`61|Eh^20@0d$mSqwW_GJixkU$$GVF_!Xr9<)(1}5{;c{3?X z?UYthN{bYpEz9WwilU`jmNF%2rLBrfU24^;Ra&izyHvDw!3zHO%@Brj)RU8U|GWI( z{r>gN?wX5pov&T(KL?1sNW3P3I zg&)g!ODwqJ+VbvhHC7+eRS}M#%24gOsML2#|EQH1i6jQ3zCINLU;ZJSnTaaDI=4K9o1 z`il{84s*Yc47l2^$p zlZ_bH)}|$*Y)4L6`2rUj$stoNIoY3jcq=CgFE=_!W;>fg8?{(CzD4O_4hmbzgxZ-Q zxn&w846=8GqhWo66Eo-*nY`p9vv=*ljrJphDv%mwyNi zCU|d34_)M|L_>`CTyrHVmT4FbH>S(gx#TBBhK)uV-ExQH2#uC$42?A^^QO2yU{ETP zshk2vB(KtOl`3T#M^(n*yn5Gonjq0cnI_R><5J!N-kd7aG@5SAao1UcGR-`_!+nQk z1+l$jva;-d<;F}xuF0`E)Ws?`wlJ=9K>tgIO0??qyPnx(jSw_rjCZZyxmeTn@cM|V zm=JnUAqPbXy3y;cO;#!O8#GNL!eDjB=j|x2IthvBCOPN`u-FN<`w^QIxo*G&Hu5JrRTLgpN8oJ^VvpMq2DzK93+~;J2l4DrgV*?J1-LN+0?OLCG)m;T+*0N`>@g z!Yf!5bod=9G^YuC^$>FX4wk=h?An{GsCd7{ll3Q=Zw?86&4q`*b0DJ*MW|15=;pKQ zZo_OW;N^vALNiulF+v>pPAtPtEXRJVz?1xD97Zdi!CKSFOX1+X0y8iUMo7>i+{%uc zjZL(er5r}OotCg}G#D+m5GwZ+d(ZY(>}5YHS2Hp_ijeHL3lnU!vEbBvS4ps(I_>+jP#f)yc8lqeY8hq%^ zs)qalCi&FL>_j#2Ynnm7KZ8D1p!ea=gg*S0knG1l!Q#Iy=%XCM&YGcSG7`U_w#ZR9 z13q%4DDOskrCWl|ts~AZN^oA>oke15hQtVV(HdIImkTE_i4QSFvPos@ z_`;--1FB&04s6MAm4O8Urb`wK3Wk<#oqIGBy3Pz~7FnQzbj;yn`%vp>0 zeVGAY%b6hJsRSy{z@N6G=tc6c4hRziDH{3$jmX%P9ovUE*LJacAI`EzxgOgj6tlWG zxZ;-re?^U~QalE*Zb0m4Ru?;hx9Y9QbP|rfKQ5&_3gQS|LI;fLJk&zp? z%Z6FDvh1ggEKP<)5AbZ0`Ry{ln)$tp9^#VKDNc9O10{T9v$?R9w$XNO)#8z|ke^@V Ny*%!tPtfD={|AZ$o3H=? delta 2418 zcmZWqX>=3U75=U)X-1=GS;&^{!3N0~uq_)K3QoYaiG@w6O)LY#EM}GE0R+Y-mQ6!W z4@!QN^z^_vNnaD7rweJ>+LDC;itTKqEnVnFm$ad2(xz?Nq)Xb+(j^eJ5T?Pi+5tuLvHe+r&*AfOu3Ao=a;2+KZdGSWkE_tD z;URoM!50ON;{;)be8f9LzNmJ(PMH~}39~ueFTJiQWf~6Q%K~3PlwcnjPVClDgog#z z;Sm{ewK*RXIE%;SVOQ9BUf=@K@@3a-*BHhXOb9$F^R>#>F+45s4DM!xLF3L56Y`?K zbLb*CjXOqT14#|t_?p1iae&|%HsVHNuhC^BldKW6#P)&NBFUvB3e}&o)`EjekRw8I`>ul zT)~S1zraiKJ`tOH6~7et6<#4Y;zOf@BZR!_noc)5@Ed{O;#DS|Ox$Hy!yPJqFDvrP zdhxozA8>@1-If?kBzI_7gg*)V8E+8s<3qdm#D$rc;9g@m85>Cq4Q|PR82u{#F7MATcHkd`X4&AGDX-+0DfpMbzwws5mfs+79q$M@ z@Gc=H?{k*Oi!LEocv?M0xWP&g2({HU8|3}YVxIB^HL_8jLUut8V)48?V|!x_qa%rd zhVbxkY+q6y@ie-x_+TfOAdTGe1y7xNmGT97s6dK>Hun_rDO4z^i2Sm*ppz#{1eKC5 z&lH61WrE7jy;-o?cJ7p~g_LE4jqOHUezYhcwW21cN*#oc$W29yR|KouJECnp(P&3^ zq%OER99_O8%+9h%*V4%9y5Q1vOWS%@TXRFh!M5&5+wDDOXidErT?J0Mom+sq1T|BO zms(U>A^ZIcMO35J)T7WEL2Kn{f4P0Vsar;tLV3;a_iWH;BW+S>GfPifq`&x*C#F#! z#TDuoWYD&AuNBWB`%c0v87`j1QVqy(X;0NOK0-E{4j<-X9*8o2fc;ysaMBOTr%QFW zhedZ#1&_{S4m-s{TBQaAZl!jX*v z>N1(s!1#8~3i1DAnRNl$&nvok=Aqg&?)7~lje|$w39<9ZG#)sGgXVDPJoGUfZO?DnhmFsqMtjVD}()iLC&NMkgx-*SO&D?REBQz?DU;wmU(2V)WkXgtq=&K1Z}ML zGQI{n5Kdt^y7;#i5p3d8@5d^>_M(vJ!Gk<{484}5tDy3n-ztO3>37gvhOjZncACdl z9s_To53prtv?$GI%fa~_v;d_nI?I(2)v~N|Sn?|K;V8L*74oHWefk&>dJDE2EU!(0 zN5MTDZNp(4v5NNgwCSmDntQTYd&*RP6IXpR3VHFHl>~|=mnx!0CSq2eFJu#hv+rTD zW`8!aP>tibOc=-a2^07U*m}XnkCzD_Z!XJJ;MaU&29CoO^8GH2)NB9IG}HZkd`jY| zM?V%|TMmcDEQbJ!=@z<`*EYL}IlO}f=GDhna+c3XmQO9Ow>Zz9#vhNOB4m1I3r*lJ z;O|vCyFuTZQGT`mS7kFS5?tAxd4KE9Fe%Gq0BvdRIg$;>MAw}<(dRbI=UNwZ=M z?~M_Slfoq?l}k**hB5MvQ?ZQ?QirvLl+{rgE%(EV6#TdwLF~`jPeo?E?EU&duV&ux z|0hbCrk?p9QTlQ~9JH8j<9P?QT2WzI!f)pq#%bfbrJWr+^S(|?*{bHSUY_}o_53hx l<|g~Fw2O8_e;*z3u=M}{ diff --git a/target/classes/com/ioa/conversation/ConversationState.class b/target/classes/com/ioa/conversation/ConversationState.class index 588ae2704ca113b71123de94088f831f94fb376e..ce8022f73bf901f9c2bf5d6002a2bf54253670a1 100644 GIT binary patch delta 679 zcmZ{iPj3=Y6vcm!f%(UyMbMTaXj_z8s@7Vp75@@~Ezv-9Adywqx^_>$0%76T&>^vn zM$?^%Zv8TDjQ2g*7~>>!?>qP1bLO7+=2!47%zpp<=_}CWu}4Bt9lxlK_qwHgzZpF{ zI%xI}+b=uagQHIOX)i#L*68tZVRu2Zh^q+NuiC9aztiiQ-E*3psfMjyxAlAw&CBOC z7g!qq*iRQ&@mSInxj0!+Yw0qVJT7ZiS(`M}z%NtLT;b~Eo!VTk_yj)MXVE7Yiu?`D zO}3{$)oV2>%h2wV6;ik$IhbcX&oZ5@%RG=RngN87lD=DPi`I^yb;;%lWAYzaKBMqn zkm9yP*X}vezsfEN+h3P#7-3G0YNwRWP==8Bi%^$}p0#m@JwbQnO$qPVw2C<#tF|NA zku9&bRXSn)gDn52(&=~V=nY|E_C==baGYagpDbV1=o^qEb=VcOj!_GP;)KFSg_?; okUi!4l)P~`JKUmmlO!V-V%8gY)bZsnbmRVk~3xBT;Ug3#{vv+}6QLdFUL2O_ERuUkni3QcC2X)>*okP`~tJ?hZC z!aX>Q&l3GDv+Cz)J{#0}vOhi9&Yh^T-`p