Skip to content

feat: stream thinking with text responses - #1819

Closed
jstar0 wants to merge 1 commit into
embabel:mainfrom
jstar0:feat/thinking-content-metadata
Closed

feat: stream thinking with text responses#1819
jstar0 wants to merge 1 commit into
embabel:mainfrom
jstar0:feat/thinking-content-metadata

Conversation

@jstar0

@jstar0 jstar0 commented Jul 23, 2026

Copy link
Copy Markdown

Summary

  • Add thinking-aware pure-text streaming to StreamingPromptRunner and the internal streaming operation boundary.
  • Preserve compatibility for text-only implementations with JVM default methods.
  • Extract established thinking tags and the legacy prefix across arbitrary chunk boundaries.

Changes

generateStreamWithThinking() now returns ordered StreamingEvent.Thinking and StreamingEvent.Object values. The built-in streaming implementations parse the existing ThinkingTags formats from their current text streams, while production delegates route the new operation end to end.

Parser state is scoped per subscription. Incomplete tagged blocks are preserved as text, and //THINKING: is recognized only at a line boundary. The tests cover every split point for every configured tag, the legacy format, repeated subscriptions, delegation, and Java API exposure.

Provider-native metadata transport, Spring AI provider normalization, tool-loop propagation, object-stream changes, blocking calls, and native enum semantics are intentionally deferred to a separate follow-up.

Verification

mvn -pl embabel-agent-api -Dkotlin.compiler.daemon=false -Dtest=StreamingThinkingJavaApiTest,StreamingLlmOperationsThinkingTest,DelegatingStreamingTest,StreamingImplTest,StreamingChatClientOperationsTest test
mvn -pl embabel-agent-api -Dkotlin.compiler.daemon=false -DskipTests verify
git diff --check

The focused run passes 45 tests. The full embabel-agent-api run reaches 3,954 tests with no assertion failures; its 37 Spring context errors reproduce on the unchanged base under Java 26 and originate from Spring scanning an existing Kotlin local test class with a Bad method descriptor.

Part of #1716

@jstar0
jstar0 force-pushed the feat/thinking-content-metadata branch from 5fd413a to f699d41 Compare July 23, 2026 15:37
@igordayen
igordayen requested review from azanux, johnsonr, jorander and poutsma and removed request for poutsma July 23, 2026 15:58
@jorander

Copy link
Copy Markdown
Collaborator

Existing text-only implementations remain compatible through default interface methods.

What implementations are we talking about here? We do not have any default construction for existing method createObjectStreamWithThinking(itemClass).

@jorander jorander left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jstar0 Thank you for your contribution! Very valuable.

First round of review with a few questions and a minor observation.

Please, see also my question on compatibility with other implementations in a separate comment.

@igordayen

Copy link
Copy Markdown
Contributor

Blocking calls now retain thinking across tool-loop iterations and preserve it when output conversion fails.

==> Behavior already in place to accumulate all thinking blocks cross tool loop interation.... could you please substantiate the claim? thanks

@igordayen igordayen left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jstar0 - thank you for the contribution. Having multiple inquiries. Concur with @jorander on API usage as well. Thanks again.

@jorander

Copy link
Copy Markdown
Collaborator

Blocking calls now retain thinking across tool-loop iterations and preserve it when output conversion fails.

==> Behavior already in place to accumulate all thinking blocks cross tool loop interation.... could you please substantiate the claim? thanks

My understanding is that this refers to having added native LLM thinking in the existing loop.

@jstar0

jstar0 commented Jul 25, 2026

Copy link
Copy Markdown
Author

@jorander On compatibility: I narrowed the PR body. The defaults added here cover existing LlmMessageStreamer.stream implementations through streamWithThinking, and existing StreamingPromptRunner.Streaming implementations through generateStreamWithThinking. The pre-existing abstract createObjectStreamWithThinking contract is unchanged and is no longer described as newly defaulted.

@igordayen On accumulation: tagged thinking blocks were already accumulated across tool-loop iterations. The PR body now states the narrower behavior added here: provider-supplied thinking metadata is carried into that accumulation and preserved when output conversion fails. The existing tagged-thinking path is unchanged.

@igordayen igordayen left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jstar0 - thanks for contributing. Left inquiries on accumulation, LLmStreamChunk, among others. Thanks for thinking anout thinking:)

@igordayen

Copy link
Copy Markdown
Contributor

@jstar0, @jorander, @azanux, @alexheifetz - after one more round of PR review, I would suggest splitting the PR into 2:

  1. generateStream-related with thinking
  2. Native thinking support - larger area, perhaps more research might be required.
    @jstar0 - what do you think?
    Thanks

@jstar0

jstar0 commented Jul 27, 2026

Copy link
Copy Markdown
Author

Yes, I agree with the split. The current commits are not a clean boundary because a few streaming implementation files contain both concerns, so I would narrow this PR by rebuilding it around the first scope rather than mechanically separating the commits.

For #1819 I would keep only:

  • the public and delegated generateStreamWithThinking API;
  • extraction of existing tagged/legacy-prefix thinking from text streams, including chunk-boundary handling;
  • focused Kotlin and Java compatibility tests for that path.

I would move the provider-native work to a follow-up PR: the structured sender/streamer response contracts, Spring AI metadata normalization for OpenAI/Ollama/Anthropic, propagation through tool loops and object streams, and the ThinkingTagType.NATIVE dependency once the embabel-common release path is established.

I will change this PR to Part of #1716; the native-thinking follow-up will carry Closes #1716 once the shared enum/dependency question is resolved. I will make sure the narrowed PR compiles and tests independently before updating the branch.

@igordayen

Copy link
Copy Markdown
Contributor

Thank you very much, @jstar0!

Signed-off-by: King Star <mcxin.y@gmail.com>
@jstar0
jstar0 force-pushed the feat/thinking-content-metadata branch from 08a2242 to 376cbc1 Compare July 27, 2026 19:32
@jstar0 jstar0 changed the title feat: expose thinking content across LLM operations feat: stream thinking with text responses Jul 27, 2026

@igordayen igordayen left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jstar0 - thanks for continuing addressing generateStreamWithThinking.
Main inquiry is significant change, please review my comment.
Thanks again.

* Extracts tagged thinking from text while preserving response order across
* arbitrary chunk boundaries. Parser state is scoped to each subscription.
*/
internal fun Flux<String>.toTaggedThinkingEvents(): Flux<StreamingEvent<String>> =

@igordayen igordayen Jul 27, 2026

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What prompted this very significant change?
The current algorithm to collect thinking blocks is lightweight for the following reason:
Every thinking block fits on a single line, so it could be

<think> abc...... NL
xyz.........NL
mnc </think> NL
<think>..... </think> NL
<think>..... </think> ....<reason>.....</reason>

Reason for this - it's the streaming at the very end, so as not to accumulate too much.
Looping in @arnabnandy7 as his PR overlaps with this one.
Also - hard to follow uncommented logic.
Thanks for understanding

@arnabnandy7

Copy link
Copy Markdown
Contributor

Thanks for narrowing this PR to tagged-text thinking extraction. I reviewed it specifically against the provider-neutral streaming tool loop in #1826.

The approaches are complementary. After integration, toTaggedThinkingEvents() should remain above the final streamWithToolLoop(...) text stream. This allows tagged thinking from every inference iteration to be preserved without coupling extraction to Spring AI or the low-level LlmMessageStreamer.

I found one issue that I think should be addressed. The parser currently buffers an entire tagged-thinking block until its closing delimiter arrives. This delays thinking events and can accumulate a large reasoning block in memory. Emitting completed lines or safe chunks while retaining only a possible closing-delimiter suffix would preserve chunk-boundary correctness while keeping the operation genuinely streaming.

There will also be a mechanical rebase adjustment: #1826 changes LlmMessageStreamer from the three-argument text-stream contract to a two-argument Flux<LlmInferenceStreamEvent> contract, so the test streamer in this PR will need to emit Content and Complete events when the branches are combined.

@igordayen I shared my review

@igordayen

Copy link
Copy Markdown
Contributor

found one issue that I think should be addressed. The parser currently buffers an entire tagged-thinking block until its closing delimiter arrives. This delays thinking events and can accumulate a large reasoning block in memory. Emitting completed lines or safe chunks while retaining only a possible closing-delimiter suffix would preserve chunk-boundary correctness while keeping the operation genuinely streaming.

@arnabnandy7 - thank you, right-on-money, that is exactly what I mentioned above as well!

@igordayen

Copy link
Copy Markdown
Contributor

@jstar0 - could you please confirm your understanding of the motivation for handling thinking blocks in streaming?
Thank you.

@igordayen igordayen left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jstar0 - could you please revisit the need of introducing ThinkingStreaming Support, at least with respect to blocks buffering, thank you.

@azanux azanux left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jstar0 thanks for the contribution.
The points raised by @igordayen look justified to me: a few implementation questions remain and deserve answers before this lands.

Comment on lines +63 to +71
if (tag != null) {
val endIndex = buffer.indexOf(tag.end)
if (endIndex < 0) break
val thinking = buffer.substring(0, endIndex).trim()
if (thinking.isNotEmpty()) events += StreamingEvent.Thinking(thinking)
buffer.delete(0, endIndex + tag.end.length)
activeTag = null
atLineStart = false
continue

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

#1716 is about streaming the reasoning, but ThinkingStreamSupport.kt:63-71 emits
nothing until the closing delimiter arrives - the whole block lands at the end. That is
blocking behaviour behind a reactive signature.

It is also O(N²): buffer.indexOf(tag.end) restarts from index 0 on every chunk and the
buffer is never drained. A 50k-char block in 50-char chunks scans ~25M characters.

the solution and the mechanism is already in your code: longestPartialStartSuffix(), the mirror case is simpler - you already know which tag is open, so retaining tag.end.length - 1 chars is enough

Comment on lines +64 to +68
val endIndex = buffer.indexOf(tag.end)
if (endIndex < 0) break
val thinking = buffer.substring(0, endIndex).trim()
if (thinking.isNotEmpty()) events += StreamingEvent.Thinking(thinking)
buffer.delete(0, endIndex + tag.end.length)

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One asymmetry worth confirming: the streaming path removes tagged content from the text channel, the blocking path keeps it.

Same model output, different text from generate() and generateStream(). Intended ? Why ?

val legacy: Boolean,
)

private val tags = ThinkingTags.TAG_DEFINITIONS

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

extractAllThinkingBlocks also runs dynamicTagsDiscoveryAndExtraction, which matches
any <tag>…</tag>, attributes included - and discovers tags that are not in
TAG_DEFINITIONS at all.

The stream parser only does exact indexOf on the 7 tag entries (ThinkingStreamSupport.kt:47-50, :128-129)

So the reasoning ends up rendered as the answer in streamed calls. Intentional scope
reduction for now?

*
* The default wraps [doTransformStream] for source compatibility.
*/
fun doTransformStreamWithThinking(

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The default in StreamingLlmOperations.kt:165-173 does no extraction, and both implementations override it with the identical .toTaggedThinkingEvents() line (StreamingLlmOperationsImpl.kt:148-155, StreamingChatClientOperations.kt:202-209).

So the default only ever applies to third-party implementors - who then silently get no thinking at all.

may be change .map { StreamingEvent.Object(it) by toTaggedThinkingEvents() at line 173 and remove implementation in both file

@igordayen

igordayen commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

@jstar0 @jorander @arnabnandy7 @azanux

I debugged. Execution flows into:

internal class SpringAiLlmMessageStreamer(
    private val chatClient: ChatClient,
    private val chatOptions: ChatOptions,
) : LlmMessageStreamer {

    override fun stream(
        messages: List<Message>,
        tools: List<Tool>,
        toolCallInspectors: List<ToolCallInspector>,
    ): Flux<String> {
        val springAiMessages = messages.map { it.toSpringAiMessage() }
        val toolCallbacks = tools.toSpringToolCallbacks().withInspectors(toolCallInspectors)
        // Spring AI 2.0: bake toolCallbacks into ToolCallingChatOptions AND pass them on the
        // request spec. The former preserves the ToolCallingChatOptions subtype through the
        // chatModel-defaults merge; the latter survives the merge that would otherwise reset
        // prompt.options.toolCallbacks to the model's empty default.
        val effectiveOptions = if (chatOptions is org.springframework.ai.model.tool.ToolCallingChatOptions) {
            chatOptions.mutate()
                .toolCallbacks(toolCallbacks)
                .build()
        } else {
            chatOptions
        }
        val prompt = Prompt(springAiMessages, effectiveOptions)

        return chatClient
            .prompt(prompt)
            .toolCallbacks(toolCallbacks)
            .stream()
            .content()
    }

Note - .toolCallbacks(toolCallbacks) - deprecated in Spring 2.x
But the most critical observation - apology, forgot as I implemented while back - generateStream - bypasses object stream path and returns raw chunks.

No buffering at all - forgot about this:)
May try to model-generate a stream by thinking through the Object creation path with object == String.

But a more appropriate method name IMO might be generateStreamBuffered.

"Thinking" in this context is given (putting aside the large subject of native thinking) as no object gets created, only LLM responses as strings
Thanks


13:54:26.020 [main] INFO  Embabel - Deployed agent com.embabel.agent.test.type.CustomNameConditionFromBlackboard
	description: com.embabel.agent.test.type.CustomNameConditionFromBlackboard
13:54:26.024 [main] INFO  Embabel - Deployed agent com.embabel.agent.test.type.FromPersonUsesDomainObjectTools
	description: com.embabel.agent.test.type.FromPersonUsesDomainObjectTools
13:54:26.028 [main] INFO  Embabel - Deployed agent com.embabel.agent.test.type.FromPersonUsesDomainObjectToolsViaContext
	description: com.embabel.agent.test.type.FromPersonUsesDomainObjectToolsViaContext
13:54:26.032 [main] INFO  Embabel - Deployed agent com.embabel.agent.test.type.FromPersonUsesObjectToolsViaContext
	description: com.embabel.agent.test.type.FromPersonUsesObjectToolsViaContext
13:54:26.035 [main] INFO  Embabel - Deployed agent com.embabel.agent.test.type.FromPersonUsesObjectToolsViaUsing
	description: com.embabel.agent.test.type.FromPersonUsesObjectToolsViaUsing
13:54:26.040 [main] INFO  Embabel - Deployed agent com.embabel.agent.test.type.InvalidActionNoDeserializationInInterfaceGoal
	description: com.embabel.agent.test.type.InvalidActionNoDeserializationInInterfaceGoal
13:54:26.041 [main] INFO  Embabel - Deployed agent com.embabel.agent.test.type.NoConditions
	description: com.embabel.agent.test.type.NoConditions
13:54:26.042 [main] WARN  AgentMetadataReader - ❓No methods annotated with @Action or @Condition and no goals defined on com.embabel.agent.test.type.NoMethods
13:54:26.044 [main] INFO  Embabel - Deployed agent com.embabel.agent.test.type.OneGoalOnly
	description: com.embabel.agent.test.type.OneGoalOnly
13:54:26.045 [main] INFO  Embabel - Deployed agent com.embabel.agent.test.type.OneGoalOnlyWithRichMetadata
	description: com.embabel.agent.test.type.OneGoalOnlyWithRichMetadata
13:54:26.046 [main] INFO  Embabel - Deployed agent com.embabel.agent.test.type.OneOperationContextConditionOnly
	description: com.embabel.agent.test.type.OneOperationContextConditionOnly
13:54:26.050 [main] INFO  Embabel - Deployed agent com.embabel.agent.test.type.OnePromptActionOnly
	description: com.embabel.agent.test.type.OnePromptActionOnly
13:54:26.054 [main] INFO  Embabel - Deployed agent com.embabel.agent.test.type.OnePromptActionWithToolOnly
	description: com.embabel.agent.test.type.OnePromptActionWithToolOnly
13:54:26.059 [main] INFO  Embabel - Deployed agent com.embabel.agent.test.type.OneTransformerActionOnly
	description: com.embabel.agent.test.type.OneTransformerActionOnly
13:54:26.062 [main] INFO  Embabel - Deployed agent com.embabel.agent.test.type.OneTransformerActionReferencingConditionByName
	description: com.embabel.agent.test.type.OneTransformerActionReferencingConditionByName
13:54:26.068 [main] INFO  Embabel - Deployed agent com.embabel.agent.test.type.OneTransformerActionTakingOperationPayload
	description: com.embabel.agent.test.type.OneTransformerActionTakingOperationPayload
13:54:26.072 [main] INFO  Embabel - Deployed agent com.embabel.agent.test.type.OneTransformerActionTakingPayloadOnly
	description: com.embabel.agent.test.type.OneTransformerActionTakingPayloadOnly
13:54:26.078 [main] INFO  Embabel - Deployed agent com.embabel.agent.test.type.OneTransformerActionWith2ArgsAndCustomInputBindings
	description: com.embabel.agent.test.type.OneTransformerActionWith2ArgsAndCustomInputBindings
13:54:26.082 [main] INFO  Embabel - Deployed agent com.embabel.agent.test.type.OneTransformerActionWith2ArgsAndCustomOutputBinding
	description: com.embabel.agent.test.type.OneTransformerActionWith2ArgsAndCustomOutputBinding
13:54:26.086 [main] INFO  Embabel - Deployed agent com.embabel.agent.test.type.OneTransformerActionWith2Tools
	description: com.embabel.agent.test.type.OneTransformerActionWith2Tools
13:54:26.096 [main] INFO  Embabel - Deployed agent com.embabel.agent.test.type.OneTransformerActionWithNullableParameter
	description: com.embabel.agent.test.type.OneTransformerActionWithNullableParameter
13:54:26.102 [main] INFO  Embabel - Deployed agent com.embabel.agent.test.type.ToolMethodsOnDomainObject
	description: com.embabel.agent.test.type.ToolMethodsOnDomainObject
13:54:26.105 [main] INFO  Embabel - Deployed agent com.embabel.agent.test.type.ToolMethodsOnDomainObjects
	description: com.embabel.agent.test.type.ToolMethodsOnDomainObjects
13:54:26.110 [main] INFO  Embabel - Deployed agent com.embabel.agent.test.type.TwoActionGoals
	description: com.embabel.agent.test.type.TwoActionGoals
13:54:26.117 [main] INFO  Embabel - Deployed agent com.embabel.agent.test.type.TwoActuallyNonConflictingActionGoalsWithSameOutput
	description: com.embabel.agent.test.type.TwoActuallyNonConflictingActionGoalsWithSameOutput
13:54:26.124 [main] INFO  Embabel - Deployed agent com.embabel.agent.test.type.TwoConflictingActionGoals
	description: com.embabel.agent.test.type.TwoConflictingActionGoals
13:54:26.126 [main] INFO  Embabel - Deployed agent com.embabel.agent.test.type.TwoGoalsOnly
	description: com.embabel.agent.test.type.TwoGoalsOnly
13:54:26.132 [main] INFO  Embabel - Deployed agent com.embabel.agent.test.type.ValidActionWithDeserializationInInterfaceGoal
	description: com.embabel.agent.test.type.ValidActionWithDeserializationInInterfaceGoal
13:54:26.133 [main] INFO  DelegatingAgentScanningBeanPostProcessor - All deferred beans were post-processed.
13:54:26.140 [main] INFO  LLMOllamaStreamingBuilderIT - Started LLMOllamaStreamingBuilderIT in 3.045 seconds (process running for 4.839)
13:54:26.204 [main] INFO  Embabel - [confident_khayyam] created
Mockito is currently self-attaching to enable the inline-mock-maker. This will no longer work in future releases of the JDK. Please add Mockito as an agent to your build as described in Mockito's documentation: https://javadoc.io/doc/org.mockito/mockito-core/latest/org.mockito/org/mockito/Mockito.html#0.3
WARNING: A Java agent has been loaded dynamically (/home/igordayen/.m2/repository/net/bytebuddy/byte-buddy-agent/1.18.10/byte-buddy-agent-1.18.10.jar)
WARNING: If a serviceability tool is in use, please run with -XX:+EnableDynamicAgentLoading to hide this warning
WARNING: If a serviceability tool is not in use, please run with -Djdk.instrument.traceUsage for more information
WARNING: Dynamic loading of agents will be disallowed by default in a future release
Java HotSpot(TM) 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended
[DEBUG] (main) Using Verbose Console logging
13:54:26.779 [main] DEBUG ExchangeFunctions - [72de1d86] HTTP POST http://localhost:11434/api/chat
13:54:26.911 [main] INFO  LLMOllamaStreamingBuilderIT - Stream subscription started
13:54:26.913 [main] DEBUG ExchangeFunctions - [5135b459] HTTP POST http://localhost:11434/api/chat
13:54:28.777 [ForkJoinPool.commonPool-worker-1] DEBUG ExchangeFunctions - [72de1d86] [700bc230] Response 200 OK
13:54:28.868 [ForkJoinPool.commonPool-worker-1] DEBUG ExchangeFunctions - [72de1d86] Cancel signal (to close connection)
13:55:03.002 [ForkJoinPool.commonPool-worker-1] DEBUG ExchangeFunctions - [5135b459] [53a45146] Response 200 OK
13:55:03.021 [ForkJoinPool.commonPool-worker-1] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:03.022 [ForkJoinPool.commonPool-worker-1] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:03.022 [ForkJoinPool.commonPool-worker-1] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:03.023 [ForkJoinPool.commonPool-worker-1] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:03.029 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk: As
13:55:03.143 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:03.143 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:03.143 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:03.143 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:03.145 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  of
13:55:03.321 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:03.322 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:03.323 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:03.323 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:03.325 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  
13:55:03.506 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:03.507 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:03.507 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:03.507 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:03.509 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk: 2
13:55:03.691 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:03.692 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:03.692 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:03.693 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:03.695 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk: 0
13:55:03.845 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:03.845 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:03.846 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:03.846 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:03.847 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk: 2
13:55:04.047 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:04.048 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:04.048 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:04.048 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:04.050 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk: 6
13:55:04.189 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:04.190 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:04.190 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:04.190 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:04.192 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk: ,
13:55:04.353 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:04.354 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:04.354 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:04.355 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:04.356 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  the
13:55:04.495 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:04.495 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:04.495 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:04.495 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:04.497 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  highest
13:55:04.652 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:04.653 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:04.653 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:04.653 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:04.655 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  building
13:55:04.797 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:04.797 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:04.797 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:04.797 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:04.799 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  in
13:55:04.958 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:04.959 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:04.960 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:04.960 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:04.962 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  Paris
13:55:05.096 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:05.096 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:05.096 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:05.097 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:05.098 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  is
13:55:05.254 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:05.255 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:05.256 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:05.256 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:05.258 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  **
13:55:05.398 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:05.398 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:05.398 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:05.398 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:05.400 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk: Tour
13:55:05.556 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:05.556 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:05.557 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:05.557 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:05.559 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  Mont
13:55:05.695 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:05.696 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:05.696 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:05.696 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:05.698 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk: par
13:55:05.856 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:05.856 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:05.856 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:05.857 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:05.859 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk: n
13:55:06.000 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:06.001 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:06.001 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:06.001 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:06.003 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk: asse
13:55:06.164 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:06.165 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:06.165 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:06.166 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:06.167 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk: **,
13:55:06.302 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:06.302 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:06.302 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:06.303 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:06.304 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  which
13:55:06.465 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:06.466 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:06.466 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:06.467 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:06.469 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  stands
13:55:06.606 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:06.607 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:06.607 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:06.607 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:06.609 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  at
13:55:06.766 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:06.767 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:06.767 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:06.767 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:06.769 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  **
13:55:06.908 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:06.908 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:06.908 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:06.908 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:06.909 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk: 2
13:55:07.088 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:07.088 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:07.088 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:07.088 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:07.090 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk: 1
13:55:07.226 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:07.226 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:07.226 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:07.227 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:07.228 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk: 0
13:55:07.389 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:07.390 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:07.390 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:07.391 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:07.393 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  meters
13:55:07.534 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:07.534 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:07.534 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:07.534 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:07.536 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  (
13:55:07.699 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:07.700 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:07.700 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:07.701 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:07.702 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk: 6
13:55:07.840 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:07.841 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:07.841 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:07.841 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:07.843 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk: 8
13:55:08.002 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:08.002 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:08.003 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:08.003 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:08.004 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk: 9
13:55:08.145 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:08.146 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:08.146 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:08.146 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:08.148 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  feet
13:55:08.308 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:08.308 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:08.309 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:08.309 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:08.311 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk: )**
13:55:08.447 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:08.448 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:08.448 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:08.448 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:08.449 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  tall
13:55:08.605 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:08.605 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:08.605 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:08.605 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:08.607 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk: .
13:55:08.747 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:08.748 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:08.748 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:08.748 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:08.749 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  It
13:55:08.911 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:08.912 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:08.912 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:08.912 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:08.914 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  is
13:55:09.052 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:09.053 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:09.053 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:09.053 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:09.053 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  a
13:55:09.222 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:09.222 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:09.223 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:09.223 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:09.224 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  
13:55:09.362 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:09.363 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:09.363 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:09.363 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:09.364 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk: 5
13:55:09.522 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:09.523 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:09.523 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:09.523 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:09.525 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk: 8
13:55:09.663 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:09.663 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:09.664 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:09.664 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:09.665 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk: -story
13:55:09.830 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:09.831 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:09.831 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:09.831 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:09.833 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  skys
13:55:09.971 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:09.971 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:09.971 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:09.972 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:09.975 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk: craper
13:55:10.133 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:10.134 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:10.134 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:10.134 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:10.136 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  located
13:55:10.273 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:10.274 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:10.274 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:10.274 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:10.276 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  in
13:55:10.433 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:10.434 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:10.435 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:10.435 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:10.436 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  the
13:55:10.580 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:10.581 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:10.581 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:10.581 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:10.583 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  
13:55:10.748 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:10.748 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:10.748 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:10.748 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:10.750 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk: 1
13:55:10.891 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:10.891 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:10.891 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:10.891 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:10.893 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk: 5
13:55:11.067 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:11.067 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:11.067 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:11.067 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:11.069 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk: th
13:55:11.244 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:11.244 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:11.244 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:11.244 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:11.245 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  arr
13:55:11.456 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:11.456 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:11.456 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:11.456 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:11.458 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk: ond
13:55:11.630 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:11.630 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:11.630 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:11.630 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:11.632 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk: issement
13:55:11.824 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:11.825 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:11.825 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:11.825 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:11.826 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  of
13:55:11.995 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:11.995 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:11.995 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:11.996 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:11.997 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  Paris
13:55:12.194 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:12.195 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:12.195 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:12.195 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:12.197 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk: .


13:55:12.367 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:12.368 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:12.369 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:12.369 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:12.370 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk: However
13:55:12.553 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:12.553 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:12.553 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:12.553 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:12.555 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk: ,
13:55:12.692 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:12.692 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:12.692 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:12.693 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:12.694 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  there
13:55:12.854 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:12.854 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:12.854 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:12.854 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:12.856 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  is
13:55:13.000 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:13.000 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:13.000 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:13.000 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:13.002 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  a
13:55:13.161 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:13.161 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:13.161 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:13.161 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:13.163 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  new
13:55:13.303 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:13.304 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:13.304 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:13.304 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:13.305 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  high
13:55:13.465 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:13.466 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:13.466 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:13.466 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:13.467 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk: -rise
13:55:13.607 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:13.607 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:13.607 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:13.607 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:13.607 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  development
13:55:13.794 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:13.794 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:13.794 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:13.794 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:13.795 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  called
13:55:13.931 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:13.932 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:13.932 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:13.932 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:13.933 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  **
13:55:14.096 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:14.097 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:14.097 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:14.097 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:14.098 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk: Tour
13:55:14.235 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:14.236 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:14.236 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:14.236 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:14.237 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  Iris
13:55:14.393 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:14.394 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:14.394 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:14.394 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:14.395 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk: **
13:55:14.534 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:14.535 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:14.535 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:14.535 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:14.536 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  that
13:55:14.696 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:14.697 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:14.697 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:14.697 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:14.698 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  is
13:55:14.836 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:14.837 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:14.837 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:14.837 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:14.838 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  currently
13:55:14.995 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:14.996 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:14.996 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:14.996 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:14.999 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  under
13:55:15.143 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:15.144 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:15.144 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:15.144 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:15.145 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  construction
13:55:15.305 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:15.306 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:15.306 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:15.306 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:15.307 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk: .
13:55:15.448 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:15.448 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:15.448 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:15.448 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:15.449 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  Once
13:55:15.610 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:15.610 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:15.610 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:15.610 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:15.611 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  completed
13:55:15.751 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:15.751 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:15.751 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:15.751 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:15.751 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk: ,
13:55:15.923 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:15.924 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:15.924 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:15.924 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:15.925 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  it
13:55:16.061 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:16.061 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:16.061 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:16.062 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:16.063 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  is
13:55:16.224 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:16.225 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:16.225 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:16.225 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:16.226 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  expected
13:55:16.370 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:16.371 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:16.371 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:16.371 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:16.372 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  to
13:55:16.531 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:16.532 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:16.532 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:16.532 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:16.533 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  surpass
13:55:16.673 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:16.673 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:16.673 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:16.673 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:16.674 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  Tour
13:55:16.836 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:16.836 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:16.836 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:16.836 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:16.838 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  Mont
13:55:16.993 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:16.995 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:16.995 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:16.995 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:16.996 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk: par
13:55:17.175 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:17.175 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:17.175 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:17.175 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:17.176 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk: n
13:55:17.315 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:17.316 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:17.316 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:17.316 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:17.317 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk: asse
13:55:17.477 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:17.477 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:17.477 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:17.477 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:17.479 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  and
13:55:17.621 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:17.621 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:17.621 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:17.621 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:17.622 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  become
13:55:17.782 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:17.782 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:17.782 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:17.782 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:17.784 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  the
13:55:17.927 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:17.927 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:17.927 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:17.927 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:17.928 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  tallest
13:55:18.095 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:18.096 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:18.096 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:18.096 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:18.097 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  building
13:55:18.239 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:18.240 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:18.240 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:18.240 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:18.241 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  in
13:55:18.406 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:18.406 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:18.406 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:18.406 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:18.407 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  Paris
13:55:18.547 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:18.547 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:18.547 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:18.547 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:18.548 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk: ,
13:55:18.712 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:18.713 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:18.713 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:18.713 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:18.714 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  with
13:55:18.852 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:18.853 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:18.853 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:18.853 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:18.854 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  a
13:55:19.011 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:19.011 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:19.011 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:19.011 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:19.013 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  height
13:55:19.153 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:19.153 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:19.153 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:19.154 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:19.155 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  of
13:55:19.322 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:19.322 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:19.323 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:19.323 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:19.324 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  approximately
13:55:19.465 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:19.465 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:19.466 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:19.466 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:19.467 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  **
13:55:19.653 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:19.654 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:19.654 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:19.654 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:19.655 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk: 2
13:55:19.835 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:19.836 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:19.836 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:19.836 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:19.837 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk: 3
13:55:20.011 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:20.011 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:20.011 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:20.011 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:20.012 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk: 0
13:55:20.149 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:20.150 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:20.150 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:20.150 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:20.150 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  meters
13:55:20.339 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:20.339 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:20.339 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:20.339 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:20.340 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  (
13:55:20.483 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:20.483 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:20.483 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:20.483 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:20.484 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk: 7
13:55:20.644 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:20.645 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:20.645 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:20.645 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:20.646 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk: 5
13:55:20.791 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:20.791 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:20.792 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:20.792 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:20.793 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk: 5
13:55:20.964 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:20.964 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:20.964 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:20.964 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:20.966 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  feet
13:55:21.139 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:21.140 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:21.140 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:21.140 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:21.141 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk: )**
13:55:21.324 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:21.325 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:21.325 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:21.325 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:21.326 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk: .


13:55:21.464 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:21.465 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:21.465 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:21.465 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:21.465 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk: So
13:55:21.634 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:21.634 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:21.634 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:21.634 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:21.635 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk: ,
13:55:21.777 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:21.777 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:21.777 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:21.777 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:21.778 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  as
13:55:21.946 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:21.946 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:21.946 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:21.946 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:21.947 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  of
13:55:22.088 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:22.089 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:22.089 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:22.089 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:22.089 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  now
13:55:22.250 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:22.250 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:22.250 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:22.250 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:22.251 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk: ,
13:55:22.395 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:22.395 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:22.395 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:22.395 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:22.396 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  **
13:55:22.565 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:22.565 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:22.565 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:22.565 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:22.566 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk: Tour
13:55:22.705 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:22.705 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:22.705 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:22.705 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:22.706 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  Mont
13:55:22.874 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:22.874 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:22.875 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:22.875 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:22.876 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk: par
13:55:23.014 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:23.014 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:23.014 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:23.014 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:23.015 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk: n
13:55:23.172 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:23.172 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:23.172 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:23.172 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:23.173 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk: asse
13:55:23.317 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:23.317 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:23.317 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:23.317 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:23.318 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk: **
13:55:23.481 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:23.481 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:23.481 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:23.481 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:23.482 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  remains
13:55:23.620 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:23.620 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:23.620 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:23.620 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:23.621 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  the
13:55:23.781 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:23.781 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:23.781 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:23.781 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:23.782 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  tallest
13:55:23.923 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:23.923 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:23.923 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:23.923 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:23.924 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  building
13:55:24.085 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:24.085 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:24.085 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:24.085 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:24.086 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  in
13:55:24.227 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:24.227 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:24.227 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:24.227 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:24.228 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  Paris
13:55:24.390 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:24.390 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:24.390 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:24.390 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:24.391 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk: ,
13:55:24.535 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:24.535 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:24.535 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:24.535 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:24.535 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  but
13:55:24.731 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:24.731 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:24.731 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:24.731 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:24.732 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  **
13:55:24.938 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:24.939 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:24.939 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:24.939 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:24.940 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk: Tour
13:55:25.126 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:25.126 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:25.126 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:25.126 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:25.127 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  Iris
13:55:25.289 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:25.289 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:25.289 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:25.289 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:25.290 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk: **
13:55:25.434 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:25.434 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:25.434 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:25.434 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:25.435 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  is
13:55:25.599 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:25.599 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:25.599 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:25.599 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:25.600 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  set
13:55:25.739 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:25.739 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:25.739 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:25.739 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:25.740 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  to
13:55:25.897 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:25.897 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:25.898 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:25.898 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:25.899 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  take
13:55:26.042 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:26.043 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:26.043 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:26.043 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:26.043 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  that
13:55:26.204 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:26.205 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:26.205 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:26.205 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:26.206 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  title
13:55:26.344 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:26.344 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:26.344 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:26.344 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:26.345 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  in
13:55:26.538 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:26.538 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:26.538 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:26.538 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:26.539 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  the
13:55:26.717 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:26.717 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:26.717 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:26.717 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:26.718 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  near
13:55:26.922 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:26.922 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:26.922 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:26.922 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:26.923 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk:  future
13:55:27.109 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [eval-duration]
13:55:27.109 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [load-duration]
13:55:27.109 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [prompt-eval-duration]
13:55:27.109 [HttpClient-9-Worker-0] DEBUG ChatResponseMetadata - Ignore null value for key [total-duration]
13:55:27.111 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test received text chunk: .
13:55:27.314 [boundedElastic-1] INFO  LLMOllamaStreamingBuilderIT - Integration test stream completed successfully
13:55:27.316 [main] INFO  LLMOllamaStreamingBuilderIT - Integration streaming test completed successfully with 153 total text chunks

@arnabnandy7

Copy link
Copy Markdown
Contributor

@jstar0 @jorander @arnabnandy7 @azanux

I debugged. Execution flows into:

Appreciating for taking time for debugging this. I agree that the existing generateStream path returns raw text chunks and does not perform object construction or buffering.

My concern is specifically about the new toTaggedThinkingEvents() layer in this PR. Once it encounters an opening thinking tag, it currently retains the tagged content until the closing delimiter arrives. So the underlying Spring AI stream remains unbuffered, but this added parser can make the thinking channel effectively buffered.

I don’t think routing through object creation with String or renaming the API to generateStreamBuffered is necessary. The parser can remain genuinely streaming by emitting safe thinking chunks as they arrive and retaining only the possible suffix of the closing delimiter. This should also compose cleanly above the final tool-loop text stream in #1826.

@igordayen

Copy link
Copy Markdown
Contributor

I don’t think routing through object creation with String or renaming the API to generateStreamBuffered is necessary. The parser can remain genuinely streaming by emitting safe thinking chunks as they arrive and retaining only the possible suffix of the closing delimiter. This should also compose cleanly above the final tool-loop text stream in #1826.

Team, could you please retest #1826 at your convenience. thanks

@igordayen

Copy link
Copy Markdown
Contributor

@jstar0 - how are you? What is your tentative timeline for this PR? Thank you

@igordayen

Copy link
Copy Markdown
Contributor

@jstar0 @arnabnandy7 - as the stream tool loop is already in place:

generateStream (line 74) returns raw token-by-token chunks directly from streamWithToolLoop. rawChunksToLines (line 338) already does exactly what's needed — buffers chunks and emits on
\n.

The simplest fix is to apply it in doTransformStream before returning:

return streamWithToolLoop(messagesWithContributions, tools, interaction, agentProcess, action)
.transform { rawChunksToLines(it) }

That reuses rawChunksToLines as-is. The only caveat: it only emits when it hits \n, so if the LLM produces one long paragraph with no newlines, everything buffers until doOnComplete
flushes the remainder. For NL text that's fine — the final concatWith at line 358 handles that flush.

Also, perhaps we can use the existing API and trigger thinking through LLM Options.

Could you please evaluate the approach?

Thanks.

@arnabnandy7 arnabnandy7 mentioned this pull request Aug 2, 2026
@igordayen

Copy link
Copy Markdown
Contributor

Will be working on a simple yet practical solution post 1.5.0 with full code reusability from the blocking thinking path.

Also in output is not triggered by native thinking.

Appreciate if you please keep dev on hold, thanks.

@igordayen

Copy link
Copy Markdown
Contributor

@jstar0 closing this PR as a dup of
#1864 and #1873

Thank you for contributing! Best, Igor

@igordayen igordayen closed this Aug 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants