Skip to content

Commit 9221cb5

Browse files
google-genai-botcopybara-github
authored andcommitted
fix: Fix the incorrect timestamp in Event
PiperOrigin-RevId: 791090824
1 parent 40af9bb commit 9221cb5

File tree

1 file changed

+20
-17
lines changed

1 file changed

+20
-17
lines changed

core/src/main/java/com/google/adk/flows/llmflows/BaseLlmFlow.java

Lines changed: 20 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ protected Single<RequestProcessingResult> preprocess(
134134
*/
135135
protected Single<ResponseProcessingResult> postprocess(
136136
InvocationContext context,
137-
Event baseEventForLlmResponse,
137+
Event.Builder baseEventForLlmResponse,
138138
LlmRequest llmRequest,
139139
LlmResponse llmResponse) {
140140

@@ -200,7 +200,7 @@ protected Single<ResponseProcessingResult> postprocess(
200200
* callbacks. Callbacks should not rely on its ID if they create their own separate events.
201201
*/
202202
private Flowable<LlmResponse> callLlm(
203-
InvocationContext context, LlmRequest llmRequest, Event eventForCallbackUsage) {
203+
InvocationContext context, LlmRequest llmRequest, Event.Builder eventForCallbackUsage) {
204204
LlmAgent agent = (LlmAgent) context.agent();
205205

206206
return handleBeforeModelCallback(context, llmRequest, eventForCallbackUsage)
@@ -226,7 +226,10 @@ private Flowable<LlmResponse> callLlm(
226226
llmResp -> {
227227
try (Scope innerScope = llmCallSpan.makeCurrent()) {
228228
Telemetry.traceCallLlm(
229-
context, eventForCallbackUsage.id(), llmRequest, llmResp);
229+
context,
230+
eventForCallbackUsage.build().id(),
231+
llmRequest,
232+
llmResp);
230233
}
231234
})
232235
.doOnError(
@@ -251,15 +254,15 @@ private Flowable<LlmResponse> callLlm(
251254
* @return A {@link Single} with the callback result or {@link Optional#empty()}.
252255
*/
253256
private Single<Optional<LlmResponse>> handleBeforeModelCallback(
254-
InvocationContext context, LlmRequest llmRequest, Event modelResponseEvent) {
257+
InvocationContext context, LlmRequest llmRequest, Event.Builder modelResponseEvent) {
255258
LlmAgent agent = (LlmAgent) context.agent();
256259

257260
Optional<List<BeforeModelCallback>> callbacksOpt = agent.beforeModelCallback();
258261
if (callbacksOpt.isEmpty() || callbacksOpt.get().isEmpty()) {
259262
return Single.just(Optional.empty());
260263
}
261264

262-
Event callbackEvent = modelResponseEvent.toBuilder().build();
265+
Event callbackEvent = modelResponseEvent.build();
263266
List<BeforeModelCallback> callbacks = callbacksOpt.get();
264267

265268
return Flowable.fromIterable(callbacks)
@@ -284,15 +287,15 @@ private Single<Optional<LlmResponse>> handleBeforeModelCallback(
284287
* @return A {@link Single} with the final {@link LlmResponse}.
285288
*/
286289
private Single<LlmResponse> handleAfterModelCallback(
287-
InvocationContext context, LlmResponse llmResponse, Event modelResponseEvent) {
290+
InvocationContext context, LlmResponse llmResponse, Event.Builder modelResponseEvent) {
288291
LlmAgent agent = (LlmAgent) context.agent();
289292
Optional<List<AfterModelCallback>> callbacksOpt = agent.afterModelCallback();
290293

291294
if (callbacksOpt.isEmpty() || callbacksOpt.get().isEmpty()) {
292295
return Single.just(llmResponse);
293296
}
294297

295-
Event callbackEvent = modelResponseEvent.toBuilder().content(llmResponse.content()).build();
298+
Event callbackEvent = modelResponseEvent.content(llmResponse.content()).build();
296299
List<AfterModelCallback> callbacks = callbacksOpt.get();
297300

298301
return Flowable.fromIterable(callbacks)
@@ -341,13 +344,12 @@ private Flowable<Event> runOneStep(InvocationContext context) {
341344
return Flowable.fromIterable(preEvents).concatWith(Flowable.error(e));
342345
}
343346

344-
final Event mutableEventTemplate =
347+
final Event.Builder mutableEventTemplate =
345348
Event.builder()
346349
.id(Event.generateEventId())
347350
.invocationId(context.invocationId())
348351
.author(context.agent().name())
349-
.branch(context.branch())
350-
.build();
352+
.branch(context.branch());
351353

352354
Flowable<Event> restOfFlow =
353355
callLlm(context, llmRequestAfterPreprocess, mutableEventTemplate)
@@ -363,13 +365,14 @@ private Flowable<Event> runOneStep(InvocationContext context) {
363365
return postResultSingle
364366
.doOnSuccess(
365367
ignored -> {
366-
String oldId = mutableEventTemplate.id();
367-
mutableEventTemplate.setId(Event.generateEventId());
368+
String oldId = mutableEventTemplate.build().id();
369+
String newId = Event.generateEventId();
370+
mutableEventTemplate.id(newId);
368371
logger.debug(
369372
"Updated mutableEventTemplate ID from {} to {} for next"
370373
+ " LlmResponse",
371374
oldId,
372-
mutableEventTemplate.id());
375+
newId);
373376
})
374377
.toFlowable();
375378
})
@@ -534,8 +537,8 @@ public void onError(Throwable e) {
534537
.receive()
535538
.flatMapSingle(
536539
llmResponse -> {
537-
Event baseEventForThisLlmResponse =
538-
liveEventBuilderTemplate.id(Event.generateEventId()).build();
540+
Event.Builder baseEventForThisLlmResponse =
541+
liveEventBuilderTemplate.id(Event.generateEventId());
539542
return postprocess(
540543
invocationContext,
541544
baseEventForThisLlmResponse,
@@ -596,9 +599,9 @@ public void onError(Throwable e) {
596599
* @return A fully constructed {@link Event} representing the LLM response.
597600
*/
598601
private Event buildModelResponseEvent(
599-
Event baseEventForLlmResponse, LlmRequest llmRequest, LlmResponse llmResponse) {
602+
Event.Builder baseEventForLlmResponse, LlmRequest llmRequest, LlmResponse llmResponse) {
600603
Event.Builder eventBuilder =
601-
baseEventForLlmResponse.toBuilder()
604+
baseEventForLlmResponse
602605
.content(llmResponse.content())
603606
.partial(llmResponse.partial())
604607
.errorCode(llmResponse.errorCode())

0 commit comments

Comments
 (0)