@@ -131,16 +131,18 @@ Model.Positioning evolvePositioning(
131131 logger .info ("Evolving positioning based on FocusGroupRun {}" , focusGroupRun );
132132 // TODO Should handle > 1 message
133133 var messageVariants = focusGroupRun .positioning .messageVariants ().getFirst ();
134- var newMessageWordings = config .nextCreative ()
134+ var creativeControl = config .nextCreative ()
135135 .promptRunner (ai )
136136 .withPromptContributor (messageVariants .message ())
137- .creating (NewMessageWordings .class )
137+ .creating (CreativeControl .class )
138138 .fromPrompt ("""
139139 Given the objectives, consider
140140 the following feedback:
141141 %s
142142
143- Create new message wordings we could try.
143+ 1. Summarize the feedback in no more than %d words.
144+
145+ 2. Create new message wordings we could try.
144146
145147 Be creative. Try to break through!
146148
@@ -150,13 +152,15 @@ Model.Positioning evolvePositioning(
150152 %s
151153 """ .formatted (
152154 focusGroupRun .infoString (true , 1 ),
155+ config .findingsWordCount (),
153156 config .maxVariants (),
154157 bestScoringVariants )
155158 );
156- logger .info ("New wordings: {}" , newMessageWordings );
159+ logger .info ("Creative input: {}" , creativeControl );
160+ bestScoringVariants .addFinding (creativeControl .summary );
157161 var newMessageVariants = new Model .MessageVariants (
158162 messageVariants .message (),
159- newMessageWordings .wordings ().toArray (new String [0 ])
163+ creativeControl .wordings ().toArray (new String [0 ])
160164 );
161165
162166 return new Model .Positioning (List .of (newMessageVariants ));
@@ -171,11 +175,12 @@ Model.BestScoringVariants results(
171175 OperationContext context ) {
172176 return bestScoringVariants ;
173177 }
174- }
175178
179+ private record CreativeControl (
180+ String summary ,
181+ List <String > wordings
182+ ) {
183+ }
184+ }
176185
177- record NewMessageWordings (
178- List <String > wordings
179- ) {
180186
181- }
0 commit comments