diff --git a/.cz.toml b/.cz.toml
index 88cfc8cf63..864685849d 100644
--- a/.cz.toml
+++ b/.cz.toml
@@ -62,6 +62,8 @@ version_files = [
"packages/opentelemetry-instrumentation-weaviate/opentelemetry/instrumentation/weaviate/version.py",
"packages/opentelemetry-instrumentation-llamaindex/pyproject.toml:^version",
"packages/opentelemetry-instrumentation-llamaindex/opentelemetry/instrumentation/llamaindex/version.py",
+ "packages/opentelemetry-instrumentation-writer/pyproject.toml:^version",
+ "packages/opentelemetry-instrumentation-writer/opentelemetry/instrumentation/writer/version.py",
"packages/traceloop-sdk/pyproject.toml:^version",
"packages/traceloop-sdk/traceloop/sdk/version.py",
]
diff --git a/README.md b/README.md
index 55193da1af..361c78d95c 100644
--- a/README.md
+++ b/README.md
@@ -130,6 +130,7 @@ OpenLLMetry can instrument everything that [OpenTelemetry already instruments](h
- ✅ [Together AI](https://together.xyz/)
- ✅ [Aleph Alpha](https://www.aleph-alpha.com/)
- ✅ [Groq](https://groq.com/)
+- ✅ [WRITER](https://writer.com/)
### Vector DBs
diff --git a/packages/opentelemetry-instrumentation-writer/.flake8 b/packages/opentelemetry-instrumentation-writer/.flake8
new file mode 100644
index 0000000000..3da962c38e
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/.flake8
@@ -0,0 +1,11 @@
+[flake8]
+exclude =
+ .git,
+ __pycache__,
+ build,
+ dist,
+ .tox,
+ venv,
+ .venv,
+ .pytest_cache
+max-line-length = 120
diff --git a/packages/opentelemetry-instrumentation-writer/.python-version b/packages/opentelemetry-instrumentation-writer/.python-version
new file mode 100644
index 0000000000..d9506ceba5
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/.python-version
@@ -0,0 +1 @@
+3.12.5
diff --git a/packages/opentelemetry-instrumentation-writer/README.md b/packages/opentelemetry-instrumentation-writer/README.md
new file mode 100644
index 0000000000..a820133321
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/README.md
@@ -0,0 +1,33 @@
+# OpenTelemetry Writer Instrumentation
+
+
+
+
+
+This library allows tracing calls to any of Writer's endpoints sent with the official [Writer Python Library](https://github.com/writer/writer-python).
+
+## Installation
+
+```bash
+pip install opentelemetry-instrumentation-writer
+```
+
+## Example usage
+
+```python
+from opentelemetry.instrumentation.writer import WriterInstrumentor
+
+WriterInstrumentor().instrument()
+```
+
+## Privacy
+
+**By default, this instrumentation logs prompts, completions, and embeddings to span attributes**. This gives you a clear visibility into how your LLM application is working, and can make it easy to debug and evaluate the quality of the outputs.
+
+However, you may want to disable this logging for privacy reasons, as they may contain highly sensitive data from your users. You may also simply want to reduce the size of your traces.
+
+To disable logging, set the `TRACELOOP_TRACE_CONTENT` environment variable to `false`.
+
+```bash
+TRACELOOP_TRACE_CONTENT=false
+```
diff --git a/packages/opentelemetry-instrumentation-writer/opentelemetry/instrumentation/writer/__init__.py b/packages/opentelemetry-instrumentation-writer/opentelemetry/instrumentation/writer/__init__.py
new file mode 100644
index 0000000000..a2e4b3c5aa
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/opentelemetry/instrumentation/writer/__init__.py
@@ -0,0 +1,668 @@
+"""OpenTelemetry Writer instrumentation"""
+
+import logging
+import os
+import time
+from typing import Collection, Union
+
+from opentelemetry._events import EventLogger, get_event_logger
+from opentelemetry.instrumentation.instrumentor import BaseInstrumentor
+from opentelemetry.instrumentation.utils import (_SUPPRESS_INSTRUMENTATION_KEY,
+ unwrap)
+from opentelemetry.metrics import Histogram, Meter, get_meter
+from opentelemetry.semconv._incubating.metrics import \
+ gen_ai_metrics as GenAIMetrics
+from opentelemetry.semconv_ai import (
+ SUPPRESS_LANGUAGE_MODEL_INSTRUMENTATION_KEY, Meters, SpanAttributes)
+from opentelemetry.trace import SpanKind, get_tracer
+from opentelemetry.trace.status import Status, StatusCode
+from wrapt import wrap_function_wrapper
+from writerai._streaming import AsyncStream, Stream
+from writerai.types import (ChatCompletion, ChatCompletionChunk, Completion,
+ CompletionChunk)
+from writerai.types.completion import Choice
+
+from opentelemetry import context as context_api
+from opentelemetry.instrumentation.writer.config import Config
+from opentelemetry.instrumentation.writer.event_emitter import (
+ emit_choice_events, emit_message_events)
+from opentelemetry.instrumentation.writer.span_utils import (
+ set_input_attributes, set_model_input_attributes,
+ set_model_response_attributes, set_response_attributes)
+from opentelemetry.instrumentation.writer.utils import (
+ enhance_list_size, error_metrics_attributes,
+ initialize_accumulated_response, initialize_choice, initialize_tool_call,
+ request_type_by_method, response_attributes, should_emit_events)
+from opentelemetry.instrumentation.writer.version import __version__
+
+logger = logging.getLogger(__name__)
+
+_instruments = ("writer-sdk >= 2.2.1, < 3",)
+
+WRAPPED_METHODS = [
+ {
+ "package": "writerai.resources.chat",
+ "object": "ChatResource",
+ "method": "chat",
+ "span_name": "writerai.chat",
+ },
+ {
+ "package": "writerai.resources.completions",
+ "object": "CompletionsResource",
+ "method": "create",
+ "span_name": "writerai.completions",
+ },
+]
+WRAPPED_AMETHODS = [
+ {
+ "package": "writerai.resources.chat",
+ "object": "AsyncChatResource",
+ "method": "chat",
+ "span_name": "writerai.chat",
+ },
+ {
+ "package": "writerai.resources.completions",
+ "object": "AsyncCompletionsResource",
+ "method": "create",
+ "span_name": "writerai.completions",
+ },
+]
+
+
+def is_streaming_response(response):
+ return isinstance(response, (Stream, AsyncStream))
+
+
+def _update_accumulated_response(accumulated_response, chunk):
+ if isinstance(accumulated_response, ChatCompletion) and isinstance(
+ chunk, ChatCompletionChunk
+ ):
+ if chunk.service_tier:
+ accumulated_response.service_tier = chunk.service_tier
+ if chunk.system_fingerprint:
+ accumulated_response.system_fingerprint = chunk.system_fingerprint
+ if chunk.model:
+ accumulated_response.model = chunk.model
+ if chunk.usage:
+ accumulated_response.usage = chunk.usage
+ if chunk.created:
+ accumulated_response.created = chunk.created
+
+ if chunk.choices:
+ choice_index = chunk.choices[0].index or 0
+
+ try:
+ accumulated_response.choices[choice_index]
+ except IndexError:
+ enhance_list_size(accumulated_response.choices, choice_index + 1)
+ accumulated_response.choices[choice_index] = initialize_choice()
+
+ if finish_reason := chunk.choices[0].finish_reason:
+ accumulated_response.choices[choice_index].finish_reason = finish_reason
+ accumulated_response.choices[choice_index].index = choice_index
+
+ if chunk.choices[0].delta:
+ if content := chunk.choices[0].delta.content:
+ accumulated_response.choices[
+ choice_index
+ ].message.content += content
+ if role := chunk.choices[0].delta.role:
+ accumulated_response.choices[choice_index].message.role = role
+ if chunk.choices[0].delta.tool_calls:
+ tool_index = chunk.choices[0].delta.tool_calls[0].index or 0
+
+ try:
+ accumulated_response.choices[choice_index].message.tool_calls[
+ tool_index
+ ]
+ except IndexError:
+ enhance_list_size(
+ accumulated_response.choices[
+ choice_index
+ ].message.tool_calls,
+ tool_index + 1,
+ )
+ accumulated_response.choices[choice_index].message.tool_calls[
+ tool_index
+ ] = initialize_tool_call()
+
+ if name := chunk.choices[0].delta.tool_calls[0].function.name:
+ accumulated_response.choices[choice_index].message.tool_calls[
+ tool_index
+ ].function.name += name
+ if (
+ arguments := chunk.choices[0]
+ .delta.tool_calls[0]
+ .function.arguments
+ ):
+ accumulated_response.choices[choice_index].message.tool_calls[
+ tool_index
+ ].function.arguments += arguments
+ if tool_id := chunk.choices[0].delta.tool_calls[0].id:
+ accumulated_response.choices[choice_index].message.tool_calls[
+ tool_index
+ ].id = tool_id
+
+ accumulated_response.choices[choice_index].message.tool_calls[
+ tool_index
+ ].index = tool_index
+
+ elif isinstance(accumulated_response, Completion) and isinstance(
+ chunk, CompletionChunk
+ ):
+ if chunk.value:
+ if accumulated_response.choices and accumulated_response.choices[0].text:
+ accumulated_response.choices[0].text += chunk.value
+ else:
+ accumulated_response.choices = [Choice(text=chunk.value)]
+ else:
+ raise ValueError(
+ f"Accumulated response and chunk types mismatch: {type(accumulated_response)}, {type(chunk)}"
+ )
+
+
+def _create_stream_processor(
+ response,
+ span,
+ event_logger,
+ start_time,
+ duration_histogram,
+ streaming_time_to_first_token,
+ streaming_time_to_generate,
+ token_histogram,
+ method,
+):
+ accumulated_response = initialize_accumulated_response(response)
+ first_token_time = None
+ last_token_time = start_time
+ error: Exception | None = None
+
+ try:
+ for chunk in response:
+ if first_token_time is None:
+ first_token_time = time.time()
+
+ _update_accumulated_response(accumulated_response, chunk)
+
+ yield chunk
+
+ last_token_time = time.time()
+ except Exception as ex:
+ error = ex
+ if span.is_recording():
+ span.set_status(Status(StatusCode.ERROR))
+ raise
+ finally:
+ metrics_attributes = response_attributes(accumulated_response, method)
+ metrics_attributes.update({"stream": True})
+
+ if streaming_time_to_first_token:
+ ttft = (first_token_time or last_token_time) - start_time
+ streaming_time_to_first_token.record(ttft, attributes=metrics_attributes)
+
+ if streaming_time_to_generate:
+ streaming_time_to_generate.record(
+ last_token_time - (first_token_time or last_token_time),
+ attributes=metrics_attributes,
+ )
+
+ if duration_histogram:
+ duration_histogram.record(
+ last_token_time - start_time, attributes=metrics_attributes
+ )
+
+ _handle_response(
+ span, accumulated_response, token_histogram, event_logger, method
+ )
+
+ if span.is_recording() and error is None:
+ span.set_status(Status(StatusCode.OK))
+
+ span.end()
+
+
+async def _create_async_stream_processor(
+ response,
+ span,
+ event_logger,
+ start_time,
+ duration_histogram,
+ streaming_time_to_first_token,
+ streaming_time_to_generate,
+ token_histogram,
+ method,
+):
+ accumulated_response = initialize_accumulated_response(response)
+ first_token_time = None
+ last_token_time = start_time
+ error: Exception | None = None
+
+ try:
+ async for chunk in response:
+ if first_token_time is None:
+ first_token_time = time.time()
+
+ _update_accumulated_response(accumulated_response, chunk)
+
+ yield chunk
+
+ last_token_time = time.time()
+ except Exception as ex:
+ error = ex
+ if span.is_recording():
+ span.set_status(Status(StatusCode.ERROR))
+ raise
+ finally:
+ metrics_attributes = response_attributes(accumulated_response, method)
+ metrics_attributes.update({"stream": True})
+
+ if streaming_time_to_first_token:
+ ttft = (first_token_time or last_token_time) - start_time
+ streaming_time_to_first_token.record(ttft, attributes=metrics_attributes)
+
+ if streaming_time_to_generate:
+ streaming_time_to_generate.record(
+ last_token_time - (first_token_time or last_token_time),
+ attributes=metrics_attributes,
+ )
+
+ if duration_histogram:
+ duration_histogram.record(
+ last_token_time - start_time, attributes=metrics_attributes
+ )
+
+ _handle_response(
+ span, accumulated_response, token_histogram, event_logger, method
+ )
+
+ if span.is_recording() and error is None:
+ span.set_status(Status(StatusCode.OK))
+
+ span.end()
+
+
+def _handle_input(span, kwargs, event_logger):
+ set_model_input_attributes(span, kwargs)
+ if should_emit_events() and event_logger:
+ emit_message_events(kwargs, event_logger)
+ else:
+ set_input_attributes(span, kwargs)
+
+
+def _with_tracer_wrapper(func):
+ """Helper for providing tracer for wrapper functions. Includes metric collectors."""
+
+ def _with_chat_telemetry(
+ tracer,
+ token_histogram,
+ duration_histogram,
+ streaming_time_to_first_token,
+ streaming_time_to_generate,
+ event_logger,
+ to_wrap,
+ ):
+ def wrapper(wrapped, instance, args, kwargs):
+ return func(
+ tracer,
+ token_histogram,
+ duration_histogram,
+ streaming_time_to_first_token,
+ streaming_time_to_generate,
+ event_logger,
+ to_wrap,
+ wrapped,
+ instance,
+ args,
+ kwargs,
+ )
+
+ return wrapper
+
+ return _with_chat_telemetry
+
+
+def _handle_response(span, response, token_histogram, event_logger, method):
+ set_model_response_attributes(span, response, token_histogram, method)
+ if should_emit_events() and event_logger:
+ emit_choice_events(response, event_logger)
+ else:
+ set_response_attributes(span, response)
+
+
+@_with_tracer_wrapper
+def _wrap(
+ tracer,
+ token_histogram: Histogram,
+ duration_histogram: Histogram,
+ streaming_time_to_first_token: Histogram,
+ streaming_time_to_generate: Histogram,
+ event_logger: Union[EventLogger, None],
+ to_wrap,
+ wrapped,
+ instance,
+ args,
+ kwargs,
+):
+ """Instruments and calls every function defined in TO_WRAP."""
+ if context_api.get_value(_SUPPRESS_INSTRUMENTATION_KEY) or context_api.get_value(
+ SUPPRESS_LANGUAGE_MODEL_INSTRUMENTATION_KEY
+ ):
+ return wrapped(*args, **kwargs)
+
+ name = to_wrap.get("span_name")
+ request_type = request_type_by_method(to_wrap.get("method"))
+
+ span = tracer.start_span(
+ name,
+ kind=SpanKind.CLIENT,
+ attributes={
+ SpanAttributes.LLM_SYSTEM: "writer",
+ SpanAttributes.LLM_REQUEST_TYPE: request_type.value,
+ },
+ )
+
+ _handle_input(span, kwargs, event_logger)
+
+ start_time = time.time()
+ try:
+ response = wrapped(*args, **kwargs)
+ except Exception as ex: # pylint: disable=broad-except
+ end_time = time.time()
+
+ if duration_histogram:
+ duration = end_time - start_time
+ duration_histogram.record(duration, attributes=error_metrics_attributes(ex))
+
+ if span.is_recording():
+ span.set_status(Status(StatusCode.ERROR))
+
+ span.end()
+ raise
+
+ if is_streaming_response(response):
+ try:
+ return _create_stream_processor(
+ response,
+ span,
+ event_logger,
+ start_time,
+ duration_histogram,
+ streaming_time_to_first_token,
+ streaming_time_to_generate,
+ token_histogram,
+ to_wrap.get("method"),
+ )
+ except Exception as ex:
+ logger.warning(
+ "Failed to process streaming response for writer span, error: %s",
+ str(ex),
+ )
+ if span.is_recording():
+ span.set_status(Status(StatusCode.ERROR))
+
+ span.end()
+ raise
+
+ elif response:
+ end_time = time.time()
+ try:
+ if duration_histogram:
+ duration = end_time - start_time
+ duration_histogram.record(
+ duration,
+ attributes=response_attributes(response, to_wrap.get("method")),
+ )
+
+ _handle_response(
+ span, response, token_histogram, event_logger, to_wrap.get("method")
+ )
+
+ except Exception as ex: # pylint: disable=broad-except
+ logger.warning(
+ "Failed to set response attributes for writer span, error: %s",
+ str(ex),
+ )
+
+ if span.is_recording():
+ span.set_status(Status(StatusCode.OK))
+
+ span.end()
+ return response
+
+
+@_with_tracer_wrapper
+async def _awrap(
+ tracer,
+ token_histogram: Histogram,
+ duration_histogram: Histogram,
+ streaming_time_to_first_token: Histogram,
+ streaming_time_to_generate: Histogram,
+ event_logger: Union[EventLogger, None],
+ to_wrap,
+ wrapped,
+ instance,
+ args,
+ kwargs,
+):
+ """Instruments and calls every function defined in TO_WRAP."""
+ if context_api.get_value(_SUPPRESS_INSTRUMENTATION_KEY) or context_api.get_value(
+ SUPPRESS_LANGUAGE_MODEL_INSTRUMENTATION_KEY
+ ):
+ return await wrapped(*args, **kwargs)
+
+ name = to_wrap.get("span_name")
+ request_type = request_type_by_method(to_wrap.get("method"))
+
+ span = tracer.start_span(
+ name,
+ kind=SpanKind.CLIENT,
+ attributes={
+ SpanAttributes.LLM_SYSTEM: "writer",
+ SpanAttributes.LLM_REQUEST_TYPE: request_type.value,
+ },
+ )
+
+ _handle_input(span, kwargs, event_logger)
+
+ start_time = time.time()
+ try:
+ response = await wrapped(*args, **kwargs)
+ except Exception as ex: # pylint: disable=broad-except
+ end_time = time.time()
+
+ if duration_histogram:
+ duration = end_time - start_time
+ duration_histogram.record(duration, attributes=error_metrics_attributes(ex))
+
+ if span.is_recording():
+ span.set_status(Status(StatusCode.ERROR))
+
+ span.end()
+ raise
+
+ if is_streaming_response(response):
+ try:
+ return _create_async_stream_processor(
+ response,
+ span,
+ event_logger,
+ start_time,
+ duration_histogram,
+ streaming_time_to_first_token,
+ streaming_time_to_generate,
+ token_histogram,
+ to_wrap.get("method"),
+ )
+ except Exception as ex:
+ logger.warning(
+ "Failed to process streaming response for writer span, error: %s",
+ str(ex),
+ )
+ if span.is_recording():
+ span.set_status(Status(StatusCode.ERROR))
+
+ span.end()
+ raise
+
+ elif response:
+ end_time = time.time()
+ try:
+ if duration_histogram:
+ duration = end_time - start_time
+ duration_histogram.record(
+ duration,
+ attributes=response_attributes(response, to_wrap.get("method")),
+ )
+
+ _handle_response(
+ span, response, token_histogram, event_logger, to_wrap.get("method")
+ )
+
+ except Exception as ex: # pylint: disable=broad-except
+ logger.warning(
+ "Failed to set response attributes for writer span, error: %s",
+ str(ex),
+ )
+
+ if span.is_recording():
+ span.set_status(Status(StatusCode.OK))
+
+ span.end()
+ return response
+
+
+def _build_metrics(meter: Meter):
+ token_histogram = meter.create_histogram(
+ name=Meters.LLM_TOKEN_USAGE,
+ unit="token",
+ description="Measures number of input and output tokens used",
+ )
+
+ duration_histogram = meter.create_histogram(
+ name=Meters.LLM_OPERATION_DURATION,
+ unit="s",
+ description="Generation operation duration",
+ )
+
+ streaming_time_to_first_token = meter.create_histogram(
+ name=GenAIMetrics.GEN_AI_SERVER_TIME_TO_FIRST_TOKEN,
+ unit="s",
+ description="Time to first token in streaming chat completions",
+ )
+
+ streaming_time_to_generate = meter.create_histogram(
+ name=Meters.LLM_STREAMING_TIME_TO_GENERATE,
+ unit="s",
+ description="Time from first token to completion in streaming responses",
+ )
+
+ return (
+ token_histogram,
+ duration_histogram,
+ streaming_time_to_first_token,
+ streaming_time_to_generate,
+ )
+
+
+def is_metrics_collection_enabled() -> bool:
+ return (os.getenv("TRACELOOP_METRICS_ENABLED") or "true").lower() == "true"
+
+
+class WriterInstrumentor(BaseInstrumentor):
+ """An instrumentor for Writer's client library."""
+
+ def __init__(self, exception_logger=None, use_legacy_attributes=True):
+ super().__init__()
+ Config.exception_logger = exception_logger
+ Config.use_legacy_attributes = use_legacy_attributes
+
+ def instrumentation_dependencies(self) -> Collection[str]:
+ return _instruments
+
+ def _instrument(self, **kwargs):
+ tracer_provider = kwargs.get("tracer_provider")
+ tracer = get_tracer(__name__, __version__, tracer_provider)
+
+ meter_provider = kwargs.get("meter_provider")
+ meter = get_meter(__name__, __version__, meter_provider)
+
+ if is_metrics_collection_enabled():
+ (
+ token_histogram,
+ duration_histogram,
+ streaming_time_to_first_token,
+ streaming_time_to_generate,
+ ) = _build_metrics(meter)
+ else:
+ (
+ token_histogram,
+ duration_histogram,
+ streaming_time_to_first_token,
+ streaming_time_to_generate,
+ ) = (None, None, None, None)
+
+ event_logger = None
+ if not Config.use_legacy_attributes:
+ event_logger_provider = kwargs.get("event_logger_provider")
+ event_logger = get_event_logger(
+ __name__, __version__, event_logger_provider=event_logger_provider
+ )
+
+ for wrapped_method in WRAPPED_METHODS:
+ wrap_package = wrapped_method.get("package")
+ wrap_object = wrapped_method.get("object")
+ wrap_method = wrapped_method.get("method")
+
+ try:
+ wrap_function_wrapper(
+ wrap_package,
+ f"{wrap_object}.{wrap_method}",
+ _wrap(
+ tracer,
+ token_histogram,
+ duration_histogram,
+ streaming_time_to_first_token,
+ streaming_time_to_generate,
+ event_logger,
+ wrapped_method,
+ ),
+ )
+ except ModuleNotFoundError:
+ pass
+
+ for wrapped_method in WRAPPED_AMETHODS:
+ wrap_package = wrapped_method.get("package")
+ wrap_object = wrapped_method.get("object")
+ wrap_method = wrapped_method.get("method")
+ try:
+ wrap_function_wrapper(
+ wrap_package,
+ f"{wrap_object}.{wrap_method}",
+ _awrap(
+ tracer,
+ token_histogram,
+ duration_histogram,
+ streaming_time_to_first_token,
+ streaming_time_to_generate,
+ event_logger,
+ wrapped_method,
+ ),
+ )
+ except ModuleNotFoundError:
+ pass
+
+ def _uninstrument(self, **kwargs):
+ for wrapped_method in WRAPPED_METHODS:
+ wrap_package = wrapped_method.get("package")
+ wrap_object = wrapped_method.get("object")
+ unwrap(
+ f"{wrap_package}.{wrap_object}",
+ wrapped_method.get("method"),
+ )
+ for wrapped_method in WRAPPED_AMETHODS:
+ wrap_package = wrapped_method.get("package")
+ wrap_object = wrapped_method.get("object")
+ unwrap(
+ f"{wrap_package}.{wrap_object}",
+ wrapped_method.get("method"),
+ )
diff --git a/packages/opentelemetry-instrumentation-writer/opentelemetry/instrumentation/writer/config.py b/packages/opentelemetry-instrumentation-writer/opentelemetry/instrumentation/writer/config.py
new file mode 100644
index 0000000000..44199c038c
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/opentelemetry/instrumentation/writer/config.py
@@ -0,0 +1,3 @@
+class Config:
+ exception_logger = None
+ use_legacy_attributes = True
diff --git a/packages/opentelemetry-instrumentation-writer/opentelemetry/instrumentation/writer/event_emitter.py b/packages/opentelemetry-instrumentation-writer/opentelemetry/instrumentation/writer/event_emitter.py
new file mode 100644
index 0000000000..d37e2862f7
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/opentelemetry/instrumentation/writer/event_emitter.py
@@ -0,0 +1,141 @@
+from dataclasses import asdict
+from enum import Enum
+from typing import Union
+
+from opentelemetry._events import Event, EventLogger
+from opentelemetry.semconv._incubating.attributes import \
+ gen_ai_attributes as GenAIAttributes
+
+from opentelemetry.instrumentation.writer.event_models import (ChoiceEvent,
+ MessageEvent)
+from opentelemetry.instrumentation.writer.utils import (dont_throw,
+ model_as_dict,
+ should_emit_events,
+ should_send_prompts)
+
+
+class Roles(Enum):
+ USER = "user"
+ ASSISTANT = "assistant"
+ SYSTEM = "system"
+ TOOL = "tool"
+
+
+VALID_MESSAGE_ROLES = {role.value for role in Roles}
+"""The valid roles for naming the message event."""
+
+EVENT_ATTRIBUTES = {
+ # Should be GenAIAttributes.GenAiSystemValues.WRITER.value but it's not defined in the opentelemetry-semconv package
+ GenAIAttributes.GEN_AI_SYSTEM: "writer"
+}
+"""The attributes to be used for the event."""
+
+
+@dont_throw
+def emit_message_events(kwargs: dict, event_logger) -> None:
+ messages = kwargs.get("messages", [])
+
+ if messages:
+ for message in kwargs.get("messages", []):
+ emit_event(
+ MessageEvent(
+ content=message.get("content"),
+ role=message.get("role", "unknown"),
+ tool_calls=message.get("tool_calls", []),
+ ),
+ event_logger=event_logger,
+ )
+
+ elif prompt := kwargs.get("prompt"):
+ emit_event(
+ MessageEvent(content=prompt, role="user"),
+ event_logger=event_logger,
+ )
+
+
+@dont_throw
+def emit_choice_events(response, event_logger) -> None:
+ response_dict = model_as_dict(response)
+
+ for choice in response_dict.get("choices", []):
+ message = choice.get("message")
+
+ if message:
+ emit_event(
+ ChoiceEvent(
+ index=choice.get("index", 0),
+ message=MessageEvent(
+ content=message.get("content"),
+ role=message.get("role", "assistant"),
+ tool_calls=message.get("tool_calls") or [],
+ ),
+ finish_reason=choice.get("finish_reason"),
+ ),
+ event_logger=event_logger,
+ )
+ elif choice.get("text") is not None:
+ emit_event(
+ ChoiceEvent(
+ index=choice.get("index", 0),
+ message=MessageEvent(
+ content=choice.get("text"),
+ role="assistant",
+ ),
+ finish_reason=choice.get("finish_reason", "unknown"),
+ ),
+ event_logger=event_logger,
+ )
+
+
+def emit_event(
+ event: Union[MessageEvent, ChoiceEvent], event_logger: Union[EventLogger, None]
+) -> None:
+ if not should_emit_events() or event_logger is None:
+ return
+
+ if isinstance(event, MessageEvent):
+ _emit_message_event(event, event_logger)
+ elif isinstance(event, ChoiceEvent):
+ _emit_choice_event(event, event_logger)
+ else:
+ raise TypeError("Unsupported event type")
+
+
+def _emit_message_event(event: MessageEvent, event_logger: EventLogger) -> None:
+ body = asdict(event)
+
+ if event.role in VALID_MESSAGE_ROLES:
+ name = f"gen_ai.{event.role}.message"
+ body.pop("role", None)
+ else:
+ name = "gen_ai.user.message"
+
+ if event.role != Roles.ASSISTANT.value:
+ body.pop("tool_calls", None)
+
+ if not should_send_prompts():
+ del body["content"]
+ if body.get("tool_calls") is not None:
+ for tool_call in body["tool_calls"]:
+ tool_call["function"].pop("arguments", None)
+
+ event_logger.emit(Event(name=name, body=body, attributes=EVENT_ATTRIBUTES))
+
+
+def _emit_choice_event(event: ChoiceEvent, event_logger: EventLogger) -> None:
+ body = asdict(event)
+ if event.message.role == Roles.ASSISTANT.value:
+ body["message"].pop("role", None)
+
+ if event.message.tool_calls is None:
+ del body["message"]["tool_calls"]
+
+ if not should_send_prompts():
+ body["message"].pop("content", None)
+ if body["message"].get("tool_calls") is not None:
+ for tool_call in body["message"]["tool_calls"]:
+ tool_call["function"].pop("arguments", None)
+
+ event_logger.emit(
+ Event(name="gen_ai.choice", body=body, attributes=EVENT_ATTRIBUTES)
+ )
diff --git a/packages/opentelemetry-instrumentation-writer/opentelemetry/instrumentation/writer/event_models.py b/packages/opentelemetry-instrumentation-writer/opentelemetry/instrumentation/writer/event_models.py
new file mode 100644
index 0000000000..ec95cbe8e5
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/opentelemetry/instrumentation/writer/event_models.py
@@ -0,0 +1,27 @@
+from dataclasses import dataclass
+from typing import Any, List, Literal, Optional, TypedDict
+
+
+class _FunctionToolCall(TypedDict):
+ name: str
+ arguments: Optional[dict[str, Any]]
+
+
+class ToolCall(TypedDict):
+ id: str
+ function: _FunctionToolCall
+ type: Literal["function"]
+
+
+@dataclass
+class MessageEvent:
+ content: Any
+ role: str = "user"
+ tool_calls: Optional[List[ToolCall]] = None
+
+
+@dataclass
+class ChoiceEvent:
+ index: int
+ message: MessageEvent
+ finish_reason: str = "unknown"
diff --git a/packages/opentelemetry-instrumentation-writer/opentelemetry/instrumentation/writer/span_utils.py b/packages/opentelemetry-instrumentation-writer/opentelemetry/instrumentation/writer/span_utils.py
new file mode 100644
index 0000000000..bdac0ebd9e
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/opentelemetry/instrumentation/writer/span_utils.py
@@ -0,0 +1,173 @@
+from opentelemetry.metrics import Histogram
+from opentelemetry.semconv_ai import SpanAttributes
+from opentelemetry.trace import Span
+
+from opentelemetry.instrumentation.writer.utils import (dont_throw,
+ model_as_dict,
+ response_attributes,
+ set_span_attribute,
+ should_send_prompts)
+
+
+@dont_throw
+def set_input_attributes(span: Span, kwargs: dict) -> None:
+ if not span.is_recording():
+ return
+
+ if should_send_prompts():
+ if kwargs.get("prompt") is not None:
+ set_span_attribute(span, f"{SpanAttributes.LLM_PROMPTS}.0.role", "user")
+ set_span_attribute(
+ span, f"{SpanAttributes.LLM_PROMPTS}.0.content", kwargs.get("prompt")
+ )
+
+ elif kwargs.get("messages") is not None:
+ for i, message in enumerate(kwargs.get("messages")):
+ set_span_attribute(
+ span, f"{SpanAttributes.LLM_PROMPTS}.{i}.role", message.get("role")
+ )
+ set_span_attribute(
+ span,
+ f"{SpanAttributes.LLM_PROMPTS}.{i}.content",
+ message.get("content"),
+ )
+
+ tool_calls = message.get("tool_calls")
+
+ if tool_calls:
+ for j, tool_call in enumerate(tool_calls):
+ set_span_attribute(
+ span,
+ f"{SpanAttributes.LLM_PROMPTS}.{i}.tool_calls.{j}.id",
+ tool_call.get("id"),
+ )
+
+ function = tool_call.get("function", {})
+ set_span_attribute(
+ span,
+ f"{SpanAttributes.LLM_PROMPTS}.{i}.tool_calls.{j}.name",
+ function.get("name"),
+ )
+
+ set_span_attribute(
+ span,
+ f"{SpanAttributes.LLM_PROMPTS}.{i}.tool_calls.{j}.arguments",
+ function.get("arguments"),
+ )
+
+
+@dont_throw
+def set_model_input_attributes(span: Span, kwargs: dict) -> None:
+ if not span.is_recording():
+ return
+
+ set_span_attribute(span, SpanAttributes.LLM_REQUEST_MODEL, kwargs.get("model"))
+ set_span_attribute(
+ span, SpanAttributes.LLM_REQUEST_MAX_TOKENS, kwargs.get("max_tokens")
+ )
+ set_span_attribute(
+ span, SpanAttributes.LLM_REQUEST_TEMPERATURE, kwargs.get("temperature")
+ )
+ set_span_attribute(span, SpanAttributes.LLM_REQUEST_TOP_P, kwargs.get("top_p"))
+ set_span_attribute(span, SpanAttributes.LLM_CHAT_STOP_SEQUENCES, kwargs.get("stop"))
+ set_span_attribute(
+ span, SpanAttributes.LLM_IS_STREAMING, kwargs.get("stream") or False
+ )
+
+
+@dont_throw
+def set_model_response_attributes(
+ span: Span, response, token_histogram: Histogram, method: str
+) -> None:
+ if not span.is_recording():
+ return
+
+ response_dict = model_as_dict(response)
+
+ set_span_attribute(
+ span, SpanAttributes.LLM_RESPONSE_MODEL, response_dict.get("model")
+ )
+
+ usage = response_dict.get("usage") or {}
+ prompt_tokens = usage.get("prompt_tokens")
+ completion_tokens = usage.get("completion_tokens")
+ total_tokens = usage.get("total_tokens")
+
+ if usage:
+ set_span_attribute(span, SpanAttributes.LLM_USAGE_TOTAL_TOKENS, total_tokens)
+ set_span_attribute(
+ span, SpanAttributes.LLM_USAGE_COMPLETION_TOKENS, completion_tokens
+ )
+ set_span_attribute(span, SpanAttributes.LLM_USAGE_PROMPT_TOKENS, prompt_tokens)
+
+ metrics_attributes = response_attributes(response, method)
+
+ if (
+ isinstance(prompt_tokens, int)
+ and prompt_tokens >= 0
+ and token_histogram is not None
+ ):
+ metrics_attributes.update({SpanAttributes.LLM_TOKEN_TYPE: "input"})
+ token_histogram.record(
+ prompt_tokens,
+ attributes=metrics_attributes,
+ )
+
+ if (
+ isinstance(completion_tokens, int)
+ and completion_tokens >= 0
+ and token_histogram is not None
+ ):
+ metrics_attributes.update({SpanAttributes.LLM_TOKEN_TYPE: "output"})
+ token_histogram.record(
+ completion_tokens,
+ attributes=metrics_attributes,
+ )
+
+
+@dont_throw
+def set_response_attributes(span: Span, response) -> None:
+ if not span.is_recording():
+ return
+
+ response_dict = model_as_dict(response)
+ choices = response_dict.get("choices")
+
+ if should_send_prompts() and choices:
+ _set_completions(span, choices)
+
+
+def _set_completions(span: Span, choices: list) -> None:
+ if choices is None or not should_send_prompts():
+ return
+
+ for choice in choices:
+ index = choice.get("index", 0)
+ prefix = f"{SpanAttributes.LLM_COMPLETIONS}.{index}"
+ set_span_attribute(span, f"{prefix}.finish_reason", choice.get("finish_reason"))
+
+ message = choice.get("message")
+
+ if message:
+ set_span_attribute(span, f"{prefix}.role", message.get("role", "assistant"))
+ set_span_attribute(span, f"{prefix}.content", message.get("content"))
+
+ tool_calls = message.get("tool_calls")
+ if tool_calls:
+ for i, tool_call in enumerate(tool_calls):
+ function = tool_call.get("function", {})
+ set_span_attribute(
+ span, f"{prefix}.tool_calls.{i}.id", tool_call.get("id")
+ )
+ set_span_attribute(
+ span, f"{prefix}.tool_calls.{i}.name", function.get("name")
+ )
+ set_span_attribute(
+ span,
+ f"{prefix}.tool_calls.{i}.arguments",
+ function.get("arguments"),
+ )
+
+ elif choice.get("text") is not None:
+ set_span_attribute(span, f"{prefix}.role", "assistant")
+ set_span_attribute(span, f"{prefix}.content", choice.get("text"))
diff --git a/packages/opentelemetry-instrumentation-writer/opentelemetry/instrumentation/writer/utils.py b/packages/opentelemetry-instrumentation-writer/opentelemetry/instrumentation/writer/utils.py
new file mode 100644
index 0000000000..e420cb3fc2
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/opentelemetry/instrumentation/writer/utils.py
@@ -0,0 +1,156 @@
+import logging
+import os
+import traceback
+from importlib.metadata import version
+from typing import Any
+
+from opentelemetry.semconv_ai import LLMRequestTypeValues, SpanAttributes
+from opentelemetry.trace import Span
+from writerai.types import ChatCompletion, Completion
+from writerai.types.chat_completion import ChatCompletionChoice
+from writerai.types.chat_completion_message import ChatCompletionMessage
+from writerai.types.shared.tool_call import Function, ToolCall
+
+from opentelemetry import context as context_api
+from opentelemetry.instrumentation.writer import Config
+
+GEN_AI_SYSTEM = "gen_ai.system"
+GEN_AI_SYSTEM_WRITER = "writer"
+
+try:
+ _PYDANTIC_VERSION = version("pydantic")
+except ImportError:
+ _PYDANTIC_VERSION = "0.0.0"
+
+TRACELOOP_TRACE_CONTENT = "TRACELOOP_TRACE_CONTENT"
+
+
+def set_span_attribute(span: Span, name: str, value: Any | None) -> None:
+ if value is not None and value != "":
+ span.set_attribute(name, value)
+
+
+def should_send_prompts() -> bool:
+ return (
+ os.getenv(TRACELOOP_TRACE_CONTENT) or "true"
+ ).lower() == "true" or context_api.get_value("override_enable_content_tracing")
+
+
+def dont_throw(func):
+ """
+ A decorator that wraps the passed in function and logs exceptions instead of throwing them.
+
+ @param func: The function to wrap
+ @return: The wrapper function
+ """
+ # Obtain a logger specific to the function's module
+ logger = logging.getLogger(func.__module__)
+
+ def wrapper(*args, **kwargs):
+ try:
+ return func(*args, **kwargs)
+ except Exception as e:
+ logger.debug(
+ "OpenLLMetry failed to trace in %s, error: %s",
+ func.__name__,
+ traceback.format_exc(),
+ )
+ if Config.exception_logger:
+ Config.exception_logger(e)
+
+ return wrapper
+
+
+@dont_throw
+def error_metrics_attributes(exception) -> dict:
+ return {
+ GEN_AI_SYSTEM: GEN_AI_SYSTEM_WRITER,
+ "error.type": exception.__class__.__name__,
+ "error.message": str(exception),
+ }
+
+
+def request_type_by_method(method_name):
+ if method_name == "chat":
+ return LLMRequestTypeValues.CHAT
+ elif method_name == "create":
+ return LLMRequestTypeValues.COMPLETION
+ else:
+ return LLMRequestTypeValues.UNKNOWN
+
+
+@dont_throw
+def response_attributes(response, method) -> dict:
+ response_dict = model_as_dict(response)
+
+ return {
+ GEN_AI_SYSTEM: GEN_AI_SYSTEM_WRITER,
+ SpanAttributes.LLM_RESPONSE_MODEL: response_dict.get("model"),
+ SpanAttributes.LLM_REQUEST_TYPE: request_type_by_method(method).value,
+ }
+
+
+def should_emit_events() -> bool:
+ """
+ Checks if the instrumentation isn't using the legacy attributes
+ and if the event logger is not None.
+ """
+
+ return not Config.use_legacy_attributes
+
+
+def model_as_dict(model) -> dict:
+ if _PYDANTIC_VERSION < "2.0.0":
+ return model.dict()
+ if hasattr(model, "model_dump"):
+ return model.model_dump()
+ elif hasattr(model, "parse"):
+ return model_as_dict(model.parse())
+ else:
+ return model
+
+
+def initialize_accumulated_response(stream):
+ request_url = stream.response.request.url.path
+
+ if "chat" in request_url:
+ return ChatCompletion(
+ id="",
+ choices=[],
+ created=0,
+ model="",
+ object="chat.completion",
+ )
+ elif "completions" in request_url:
+ return Completion(choices=[])
+ else:
+ raise ValueError(f"Unknown stream type. Request url: {request_url}")
+
+
+def initialize_choice():
+ return ChatCompletionChoice(
+ index=0,
+ finish_reason="stop",
+ message=ChatCompletionMessage(
+ content="",
+ role="assistant",
+ tool_calls=[],
+ ),
+ )
+
+
+def initialize_tool_call():
+ return ToolCall(
+ id="", function=Function(name="", arguments=""), type="function", index=0
+ )
+
+
+def enhance_list_size(current_list, desired_size):
+ if current_list is None:
+ current_list = [None] * desired_size
+ else:
+ if desired_size < len(current_list):
+ raise ValueError(
+ f"Desired size ({desired_size} can't be less than actual size ({len(current_list)})."
+ )
+ current_list += [None] * (desired_size - len(current_list))
diff --git a/packages/opentelemetry-instrumentation-writer/opentelemetry/instrumentation/writer/version.py b/packages/opentelemetry-instrumentation-writer/opentelemetry/instrumentation/writer/version.py
new file mode 100644
index 0000000000..8583baf64f
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/opentelemetry/instrumentation/writer/version.py
@@ -0,0 +1 @@
+__version__ = "0.46.2"
diff --git a/packages/opentelemetry-instrumentation-writer/poetry.lock b/packages/opentelemetry-instrumentation-writer/poetry.lock
new file mode 100644
index 0000000000..4313270335
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/poetry.lock
@@ -0,0 +1,1544 @@
+# This file is automatically @generated by Poetry 2.1.3 and should not be changed by hand.
+
+[[package]]
+name = "annotated-types"
+version = "0.7.0"
+description = "Reusable constraint types to use with typing.Annotated"
+optional = false
+python-versions = ">=3.8"
+groups = ["test"]
+files = [
+ {file = "annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53"},
+ {file = "annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89"},
+]
+
+[[package]]
+name = "anyio"
+version = "4.9.0"
+description = "High level compatibility layer for multiple asynchronous event loop implementations"
+optional = false
+python-versions = ">=3.9"
+groups = ["test"]
+files = [
+ {file = "anyio-4.9.0-py3-none-any.whl", hash = "sha256:9f76d541cad6e36af7beb62e978876f3b41e3e04f2c1fbf0884604c0a9c4d93c"},
+ {file = "anyio-4.9.0.tar.gz", hash = "sha256:673c0c244e15788651a4ff38710fea9675823028a6f08a5eda409e0c9840a028"},
+]
+
+[package.dependencies]
+exceptiongroup = {version = ">=1.0.2", markers = "python_version < \"3.11\""}
+idna = ">=2.8"
+sniffio = ">=1.1"
+typing_extensions = {version = ">=4.5", markers = "python_version < \"3.13\""}
+
+[package.extras]
+doc = ["Sphinx (>=8.2,<9.0)", "packaging", "sphinx-autodoc-typehints (>=1.2.0)", "sphinx_rtd_theme"]
+test = ["anyio[trio]", "blockbuster (>=1.5.23)", "coverage[toml] (>=7)", "exceptiongroup (>=1.2.0)", "hypothesis (>=4.0)", "psutil (>=5.9)", "pytest (>=7.0)", "trustme", "truststore (>=0.9.1) ; python_version >= \"3.10\"", "uvloop (>=0.21) ; platform_python_implementation == \"CPython\" and platform_system != \"Windows\" and python_version < \"3.14\""]
+trio = ["trio (>=0.26.1)"]
+
+[[package]]
+name = "autopep8"
+version = "2.2.0"
+description = "A tool that automatically formats Python code to conform to the PEP 8 style guide"
+optional = false
+python-versions = ">=3.8"
+groups = ["dev"]
+files = [
+ {file = "autopep8-2.2.0-py2.py3-none-any.whl", hash = "sha256:05418a981f038969d8bdcd5636bf15948db7555ae944b9f79b5a34b35f1370d4"},
+ {file = "autopep8-2.2.0.tar.gz", hash = "sha256:d306a0581163ac29908280ad557773a95a9bede072c0fafed6f141f5311f43c1"},
+]
+
+[package.dependencies]
+pycodestyle = ">=2.11.0"
+tomli = {version = "*", markers = "python_version < \"3.11\""}
+
+[[package]]
+name = "black"
+version = "25.1.0"
+description = "The uncompromising code formatter."
+optional = false
+python-versions = ">=3.9"
+groups = ["dev"]
+files = [
+ {file = "black-25.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:759e7ec1e050a15f89b770cefbf91ebee8917aac5c20483bc2d80a6c3a04df32"},
+ {file = "black-25.1.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0e519ecf93120f34243e6b0054db49c00a35f84f195d5bce7e9f5cfc578fc2da"},
+ {file = "black-25.1.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:055e59b198df7ac0b7efca5ad7ff2516bca343276c466be72eb04a3bcc1f82d7"},
+ {file = "black-25.1.0-cp310-cp310-win_amd64.whl", hash = "sha256:db8ea9917d6f8fc62abd90d944920d95e73c83a5ee3383493e35d271aca872e9"},
+ {file = "black-25.1.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:a39337598244de4bae26475f77dda852ea00a93bd4c728e09eacd827ec929df0"},
+ {file = "black-25.1.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:96c1c7cd856bba8e20094e36e0f948718dc688dba4a9d78c3adde52b9e6c2299"},
+ {file = "black-25.1.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:bce2e264d59c91e52d8000d507eb20a9aca4a778731a08cfff7e5ac4a4bb7096"},
+ {file = "black-25.1.0-cp311-cp311-win_amd64.whl", hash = "sha256:172b1dbff09f86ce6f4eb8edf9dede08b1fce58ba194c87d7a4f1a5aa2f5b3c2"},
+ {file = "black-25.1.0-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4b60580e829091e6f9238c848ea6750efed72140b91b048770b64e74fe04908b"},
+ {file = "black-25.1.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1e2978f6df243b155ef5fa7e558a43037c3079093ed5d10fd84c43900f2d8ecc"},
+ {file = "black-25.1.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:3b48735872ec535027d979e8dcb20bf4f70b5ac75a8ea99f127c106a7d7aba9f"},
+ {file = "black-25.1.0-cp312-cp312-win_amd64.whl", hash = "sha256:ea0213189960bda9cf99be5b8c8ce66bb054af5e9e861249cd23471bd7b0b3ba"},
+ {file = "black-25.1.0-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:8f0b18a02996a836cc9c9c78e5babec10930862827b1b724ddfe98ccf2f2fe4f"},
+ {file = "black-25.1.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:afebb7098bfbc70037a053b91ae8437c3857482d3a690fefc03e9ff7aa9a5fd3"},
+ {file = "black-25.1.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:030b9759066a4ee5e5aca28c3c77f9c64789cdd4de8ac1df642c40b708be6171"},
+ {file = "black-25.1.0-cp313-cp313-win_amd64.whl", hash = "sha256:a22f402b410566e2d1c950708c77ebf5ebd5d0d88a6a2e87c86d9fb48afa0d18"},
+ {file = "black-25.1.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:a1ee0a0c330f7b5130ce0caed9936a904793576ef4d2b98c40835d6a65afa6a0"},
+ {file = "black-25.1.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f3df5f1bf91d36002b0a75389ca8663510cf0531cca8aa5c1ef695b46d98655f"},
+ {file = "black-25.1.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d9e6827d563a2c820772b32ce8a42828dc6790f095f441beef18f96aa6f8294e"},
+ {file = "black-25.1.0-cp39-cp39-win_amd64.whl", hash = "sha256:bacabb307dca5ebaf9c118d2d2f6903da0d62c9faa82bd21a33eecc319559355"},
+ {file = "black-25.1.0-py3-none-any.whl", hash = "sha256:95e8176dae143ba9097f351d174fdaf0ccd29efb414b362ae3fd72bf0f710717"},
+ {file = "black-25.1.0.tar.gz", hash = "sha256:33496d5cd1222ad73391352b4ae8da15253c5de89b93a80b3e2c8d9a19ec2666"},
+]
+
+[package.dependencies]
+click = ">=8.0.0"
+mypy-extensions = ">=0.4.3"
+packaging = ">=22.0"
+pathspec = ">=0.9.0"
+platformdirs = ">=2"
+tomli = {version = ">=1.1.0", markers = "python_version < \"3.11\""}
+typing-extensions = {version = ">=4.0.1", markers = "python_version < \"3.11\""}
+
+[package.extras]
+colorama = ["colorama (>=0.4.3)"]
+d = ["aiohttp (>=3.10)"]
+jupyter = ["ipython (>=7.8.0)", "tokenize-rt (>=3.2.0)"]
+uvloop = ["uvloop (>=0.15.2)"]
+
+[[package]]
+name = "certifi"
+version = "2025.7.14"
+description = "Python package for providing Mozilla's CA Bundle."
+optional = false
+python-versions = ">=3.7"
+groups = ["test"]
+files = [
+ {file = "certifi-2025.7.14-py3-none-any.whl", hash = "sha256:6b31f564a415d79ee77df69d757bb49a5bb53bd9f756cbbe24394ffd6fc1f4b2"},
+ {file = "certifi-2025.7.14.tar.gz", hash = "sha256:8ea99dbdfaaf2ba2f9bac77b9249ef62ec5218e7c2b2e903378ed5fccf765995"},
+]
+
+[[package]]
+name = "click"
+version = "8.2.1"
+description = "Composable command line interface toolkit"
+optional = false
+python-versions = ">=3.10"
+groups = ["dev"]
+files = [
+ {file = "click-8.2.1-py3-none-any.whl", hash = "sha256:61a3265b914e850b85317d0b3109c7f8cd35a670f963866005d6ef1d5175a12b"},
+ {file = "click-8.2.1.tar.gz", hash = "sha256:27c491cc05d968d271d5a1db13e3b5a184636d9d930f148c50b038f0d0646202"},
+]
+
+[package.dependencies]
+colorama = {version = "*", markers = "platform_system == \"Windows\""}
+
+[[package]]
+name = "colorama"
+version = "0.4.6"
+description = "Cross-platform colored terminal text."
+optional = false
+python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7"
+groups = ["dev", "test"]
+files = [
+ {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"},
+ {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"},
+]
+markers = {dev = "platform_system == \"Windows\"", test = "sys_platform == \"win32\""}
+
+[[package]]
+name = "distro"
+version = "1.9.0"
+description = "Distro - an OS platform information API"
+optional = false
+python-versions = ">=3.6"
+groups = ["test"]
+files = [
+ {file = "distro-1.9.0-py3-none-any.whl", hash = "sha256:7bffd925d65168f85027d8da9af6bddab658135b840670a223589bc0c8ef02b2"},
+ {file = "distro-1.9.0.tar.gz", hash = "sha256:2fa77c6fd8940f116ee1d6b94a2f90b13b5ea8d019b98bc8bafdcabcdd9bdbed"},
+]
+
+[[package]]
+name = "exceptiongroup"
+version = "1.3.0"
+description = "Backport of PEP 654 (exception groups)"
+optional = false
+python-versions = ">=3.7"
+groups = ["test"]
+markers = "python_version == \"3.10\""
+files = [
+ {file = "exceptiongroup-1.3.0-py3-none-any.whl", hash = "sha256:4d111e6e0c13d0644cad6ddaa7ed0261a0b36971f6d23e7ec9b4b9097da78a10"},
+ {file = "exceptiongroup-1.3.0.tar.gz", hash = "sha256:b241f5885f560bc56a59ee63ca4c6a8bfa46ae4ad651af316d4e81817bb9fd88"},
+]
+
+[package.dependencies]
+typing-extensions = {version = ">=4.6.0", markers = "python_version < \"3.13\""}
+
+[package.extras]
+test = ["pytest (>=6)"]
+
+[[package]]
+name = "flake8"
+version = "7.0.0"
+description = "the modular source code checker: pep8 pyflakes and co"
+optional = false
+python-versions = ">=3.8.1"
+groups = ["dev"]
+files = [
+ {file = "flake8-7.0.0-py2.py3-none-any.whl", hash = "sha256:a6dfbb75e03252917f2473ea9653f7cd799c3064e54d4c8140044c5c065f53c3"},
+ {file = "flake8-7.0.0.tar.gz", hash = "sha256:33f96621059e65eec474169085dc92bf26e7b2d47366b70be2f67ab80dc25132"},
+]
+
+[package.dependencies]
+mccabe = ">=0.7.0,<0.8.0"
+pycodestyle = ">=2.11.0,<2.12.0"
+pyflakes = ">=3.2.0,<3.3.0"
+
+[[package]]
+name = "h11"
+version = "0.16.0"
+description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1"
+optional = false
+python-versions = ">=3.8"
+groups = ["test"]
+files = [
+ {file = "h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86"},
+ {file = "h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1"},
+]
+
+[[package]]
+name = "httpcore"
+version = "1.0.9"
+description = "A minimal low-level HTTP client."
+optional = false
+python-versions = ">=3.8"
+groups = ["test"]
+files = [
+ {file = "httpcore-1.0.9-py3-none-any.whl", hash = "sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55"},
+ {file = "httpcore-1.0.9.tar.gz", hash = "sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8"},
+]
+
+[package.dependencies]
+certifi = "*"
+h11 = ">=0.16"
+
+[package.extras]
+asyncio = ["anyio (>=4.0,<5.0)"]
+http2 = ["h2 (>=3,<5)"]
+socks = ["socksio (==1.*)"]
+trio = ["trio (>=0.22.0,<1.0)"]
+
+[[package]]
+name = "httpx"
+version = "0.28.1"
+description = "The next generation HTTP client."
+optional = false
+python-versions = ">=3.8"
+groups = ["test"]
+files = [
+ {file = "httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad"},
+ {file = "httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc"},
+]
+
+[package.dependencies]
+anyio = "*"
+certifi = "*"
+httpcore = "==1.*"
+idna = "*"
+
+[package.extras]
+brotli = ["brotli ; platform_python_implementation == \"CPython\"", "brotlicffi ; platform_python_implementation != \"CPython\""]
+cli = ["click (==8.*)", "pygments (==2.*)", "rich (>=10,<14)"]
+http2 = ["h2 (>=3,<5)"]
+socks = ["socksio (==1.*)"]
+zstd = ["zstandard (>=0.18.0)"]
+
+[[package]]
+name = "idna"
+version = "3.10"
+description = "Internationalized Domain Names in Applications (IDNA)"
+optional = false
+python-versions = ">=3.6"
+groups = ["test"]
+files = [
+ {file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"},
+ {file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"},
+]
+
+[package.extras]
+all = ["flake8 (>=7.1.1)", "mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2)"]
+
+[[package]]
+name = "importlib-metadata"
+version = "8.7.0"
+description = "Read metadata from Python packages"
+optional = false
+python-versions = ">=3.9"
+groups = ["main", "test"]
+files = [
+ {file = "importlib_metadata-8.7.0-py3-none-any.whl", hash = "sha256:e5dd1551894c77868a30651cef00984d50e1002d06942a7101d34870c5f02afd"},
+ {file = "importlib_metadata-8.7.0.tar.gz", hash = "sha256:d13b81ad223b890aa16c5471f2ac3056cf76c5f10f82d6f9292f0b415f389000"},
+]
+
+[package.dependencies]
+zipp = ">=3.20"
+
+[package.extras]
+check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1) ; sys_platform != \"cygwin\""]
+cover = ["pytest-cov"]
+doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"]
+enabler = ["pytest-enabler (>=2.2)"]
+perf = ["ipython"]
+test = ["flufl.flake8", "importlib_resources (>=1.3) ; python_version < \"3.9\"", "jaraco.test (>=5.4)", "packaging", "pyfakefs", "pytest (>=6,!=8.1.*)", "pytest-perf (>=0.9.2)"]
+type = ["pytest-mypy"]
+
+[[package]]
+name = "iniconfig"
+version = "2.1.0"
+description = "brain-dead simple config-ini parsing"
+optional = false
+python-versions = ">=3.8"
+groups = ["test"]
+files = [
+ {file = "iniconfig-2.1.0-py3-none-any.whl", hash = "sha256:9deba5723312380e77435581c6bf4935c94cbfab9b1ed33ef8d238ea168eb760"},
+ {file = "iniconfig-2.1.0.tar.gz", hash = "sha256:3abbd2e30b36733fee78f9c7f7308f2d0050e88f0087fd25c2645f63c773e1c7"},
+]
+
+[[package]]
+name = "isort"
+version = "6.0.1"
+description = "A Python utility / library to sort Python imports."
+optional = false
+python-versions = ">=3.9.0"
+groups = ["dev"]
+files = [
+ {file = "isort-6.0.1-py3-none-any.whl", hash = "sha256:2dc5d7f65c9678d94c88dfc29161a320eec67328bc97aad576874cb4be1e9615"},
+ {file = "isort-6.0.1.tar.gz", hash = "sha256:1cb5df28dfbc742e490c5e41bad6da41b805b0a8be7bc93cd0fb2a8a890ac450"},
+]
+
+[package.extras]
+colors = ["colorama"]
+plugins = ["setuptools"]
+
+[[package]]
+name = "jiter"
+version = "0.10.0"
+description = "Fast iterable JSON parser."
+optional = false
+python-versions = ">=3.9"
+groups = ["test"]
+files = [
+ {file = "jiter-0.10.0-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:cd2fb72b02478f06a900a5782de2ef47e0396b3e1f7d5aba30daeb1fce66f303"},
+ {file = "jiter-0.10.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:32bb468e3af278f095d3fa5b90314728a6916d89ba3d0ffb726dd9bf7367285e"},
+ {file = "jiter-0.10.0-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:aa8b3e0068c26ddedc7abc6fac37da2d0af16b921e288a5a613f4b86f050354f"},
+ {file = "jiter-0.10.0-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:286299b74cc49e25cd42eea19b72aa82c515d2f2ee12d11392c56d8701f52224"},
+ {file = "jiter-0.10.0-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6ed5649ceeaeffc28d87fb012d25a4cd356dcd53eff5acff1f0466b831dda2a7"},
+ {file = "jiter-0.10.0-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2ab0051160cb758a70716448908ef14ad476c3774bd03ddce075f3c1f90a3d6"},
+ {file = "jiter-0.10.0-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:03997d2f37f6b67d2f5c475da4412be584e1cec273c1cfc03d642c46db43f8cf"},
+ {file = "jiter-0.10.0-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c404a99352d839fed80d6afd6c1d66071f3bacaaa5c4268983fc10f769112e90"},
+ {file = "jiter-0.10.0-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:66e989410b6666d3ddb27a74c7e50d0829704ede652fd4c858e91f8d64b403d0"},
+ {file = "jiter-0.10.0-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:b532d3af9ef4f6374609a3bcb5e05a1951d3bf6190dc6b176fdb277c9bbf15ee"},
+ {file = "jiter-0.10.0-cp310-cp310-win32.whl", hash = "sha256:da9be20b333970e28b72edc4dff63d4fec3398e05770fb3205f7fb460eb48dd4"},
+ {file = "jiter-0.10.0-cp310-cp310-win_amd64.whl", hash = "sha256:f59e533afed0c5b0ac3eba20d2548c4a550336d8282ee69eb07b37ea526ee4e5"},
+ {file = "jiter-0.10.0-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:3bebe0c558e19902c96e99217e0b8e8b17d570906e72ed8a87170bc290b1e978"},
+ {file = "jiter-0.10.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:558cc7e44fd8e507a236bee6a02fa17199ba752874400a0ca6cd6e2196cdb7dc"},
+ {file = "jiter-0.10.0-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4d613e4b379a07d7c8453c5712ce7014e86c6ac93d990a0b8e7377e18505e98d"},
+ {file = "jiter-0.10.0-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f62cf8ba0618eda841b9bf61797f21c5ebd15a7a1e19daab76e4e4b498d515b2"},
+ {file = "jiter-0.10.0-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:919d139cdfa8ae8945112398511cb7fca58a77382617d279556b344867a37e61"},
+ {file = "jiter-0.10.0-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:13ddbc6ae311175a3b03bd8994881bc4635c923754932918e18da841632349db"},
+ {file = "jiter-0.10.0-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c440ea003ad10927a30521a9062ce10b5479592e8a70da27f21eeb457b4a9c5"},
+ {file = "jiter-0.10.0-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:dc347c87944983481e138dea467c0551080c86b9d21de6ea9306efb12ca8f606"},
+ {file = "jiter-0.10.0-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:13252b58c1f4d8c5b63ab103c03d909e8e1e7842d302473f482915d95fefd605"},
+ {file = "jiter-0.10.0-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:7d1bbf3c465de4a24ab12fb7766a0003f6f9bce48b8b6a886158c4d569452dc5"},
+ {file = "jiter-0.10.0-cp311-cp311-win32.whl", hash = "sha256:db16e4848b7e826edca4ccdd5b145939758dadf0dc06e7007ad0e9cfb5928ae7"},
+ {file = "jiter-0.10.0-cp311-cp311-win_amd64.whl", hash = "sha256:9c9c1d5f10e18909e993f9641f12fe1c77b3e9b533ee94ffa970acc14ded3812"},
+ {file = "jiter-0.10.0-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:1e274728e4a5345a6dde2d343c8da018b9d4bd4350f5a472fa91f66fda44911b"},
+ {file = "jiter-0.10.0-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:7202ae396446c988cb2a5feb33a543ab2165b786ac97f53b59aafb803fef0744"},
+ {file = "jiter-0.10.0-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:23ba7722d6748b6920ed02a8f1726fb4b33e0fd2f3f621816a8b486c66410ab2"},
+ {file = "jiter-0.10.0-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:371eab43c0a288537d30e1f0b193bc4eca90439fc08a022dd83e5e07500ed026"},
+ {file = "jiter-0.10.0-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:6c675736059020365cebc845a820214765162728b51ab1e03a1b7b3abb70f74c"},
+ {file = "jiter-0.10.0-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0c5867d40ab716e4684858e4887489685968a47e3ba222e44cde6e4a2154f959"},
+ {file = "jiter-0.10.0-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:395bb9a26111b60141757d874d27fdea01b17e8fac958b91c20128ba8f4acc8a"},
+ {file = "jiter-0.10.0-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:6842184aed5cdb07e0c7e20e5bdcfafe33515ee1741a6835353bb45fe5d1bd95"},
+ {file = "jiter-0.10.0-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:62755d1bcea9876770d4df713d82606c8c1a3dca88ff39046b85a048566d56ea"},
+ {file = "jiter-0.10.0-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:533efbce2cacec78d5ba73a41756beff8431dfa1694b6346ce7af3a12c42202b"},
+ {file = "jiter-0.10.0-cp312-cp312-win32.whl", hash = "sha256:8be921f0cadd245e981b964dfbcd6fd4bc4e254cdc069490416dd7a2632ecc01"},
+ {file = "jiter-0.10.0-cp312-cp312-win_amd64.whl", hash = "sha256:a7c7d785ae9dda68c2678532a5a1581347e9c15362ae9f6e68f3fdbfb64f2e49"},
+ {file = "jiter-0.10.0-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:e0588107ec8e11b6f5ef0e0d656fb2803ac6cf94a96b2b9fc675c0e3ab5e8644"},
+ {file = "jiter-0.10.0-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:cafc4628b616dc32530c20ee53d71589816cf385dd9449633e910d596b1f5c8a"},
+ {file = "jiter-0.10.0-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:520ef6d981172693786a49ff5b09eda72a42e539f14788124a07530f785c3ad6"},
+ {file = "jiter-0.10.0-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:554dedfd05937f8fc45d17ebdf298fe7e0c77458232bcb73d9fbbf4c6455f5b3"},
+ {file = "jiter-0.10.0-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5bc299da7789deacf95f64052d97f75c16d4fc8c4c214a22bf8d859a4288a1c2"},
+ {file = "jiter-0.10.0-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5161e201172de298a8a1baad95eb85db4fb90e902353b1f6a41d64ea64644e25"},
+ {file = "jiter-0.10.0-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2e2227db6ba93cb3e2bf67c87e594adde0609f146344e8207e8730364db27041"},
+ {file = "jiter-0.10.0-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:15acb267ea5e2c64515574b06a8bf393fbfee6a50eb1673614aa45f4613c0cca"},
+ {file = "jiter-0.10.0-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:901b92f2e2947dc6dfcb52fd624453862e16665ea909a08398dde19c0731b7f4"},
+ {file = "jiter-0.10.0-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:d0cb9a125d5a3ec971a094a845eadde2db0de85b33c9f13eb94a0c63d463879e"},
+ {file = "jiter-0.10.0-cp313-cp313-win32.whl", hash = "sha256:48a403277ad1ee208fb930bdf91745e4d2d6e47253eedc96e2559d1e6527006d"},
+ {file = "jiter-0.10.0-cp313-cp313-win_amd64.whl", hash = "sha256:75f9eb72ecb640619c29bf714e78c9c46c9c4eaafd644bf78577ede459f330d4"},
+ {file = "jiter-0.10.0-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:28ed2a4c05a1f32ef0e1d24c2611330219fed727dae01789f4a335617634b1ca"},
+ {file = "jiter-0.10.0-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:14a4c418b1ec86a195f1ca69da8b23e8926c752b685af665ce30777233dfe070"},
+ {file = "jiter-0.10.0-cp313-cp313t-win_amd64.whl", hash = "sha256:d7bfed2fe1fe0e4dda6ef682cee888ba444b21e7a6553e03252e4feb6cf0adca"},
+ {file = "jiter-0.10.0-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:5e9251a5e83fab8d87799d3e1a46cb4b7f2919b895c6f4483629ed2446f66522"},
+ {file = "jiter-0.10.0-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:023aa0204126fe5b87ccbcd75c8a0d0261b9abdbbf46d55e7ae9f8e22424eeb8"},
+ {file = "jiter-0.10.0-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3c189c4f1779c05f75fc17c0c1267594ed918996a231593a21a5ca5438445216"},
+ {file = "jiter-0.10.0-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:15720084d90d1098ca0229352607cd68256c76991f6b374af96f36920eae13c4"},
+ {file = "jiter-0.10.0-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e4f2fb68e5f1cfee30e2b2a09549a00683e0fde4c6a2ab88c94072fc33cb7426"},
+ {file = "jiter-0.10.0-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ce541693355fc6da424c08b7edf39a2895f58d6ea17d92cc2b168d20907dee12"},
+ {file = "jiter-0.10.0-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:31c50c40272e189d50006ad5c73883caabb73d4e9748a688b216e85a9a9ca3b9"},
+ {file = "jiter-0.10.0-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fa3402a2ff9815960e0372a47b75c76979d74402448509ccd49a275fa983ef8a"},
+ {file = "jiter-0.10.0-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:1956f934dca32d7bb647ea21d06d93ca40868b505c228556d3373cbd255ce853"},
+ {file = "jiter-0.10.0-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:fcedb049bdfc555e261d6f65a6abe1d5ad68825b7202ccb9692636c70fcced86"},
+ {file = "jiter-0.10.0-cp314-cp314-win32.whl", hash = "sha256:ac509f7eccca54b2a29daeb516fb95b6f0bd0d0d8084efaf8ed5dfc7b9f0b357"},
+ {file = "jiter-0.10.0-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:5ed975b83a2b8639356151cef5c0d597c68376fc4922b45d0eb384ac058cfa00"},
+ {file = "jiter-0.10.0-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3aa96f2abba33dc77f79b4cf791840230375f9534e5fac927ccceb58c5e604a5"},
+ {file = "jiter-0.10.0-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:bd6292a43c0fc09ce7c154ec0fa646a536b877d1e8f2f96c19707f65355b5a4d"},
+ {file = "jiter-0.10.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:39de429dcaeb6808d75ffe9effefe96a4903c6a4b376b2f6d08d77c1aaee2f18"},
+ {file = "jiter-0.10.0-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:52ce124f13a7a616fad3bb723f2bfb537d78239d1f7f219566dc52b6f2a9e48d"},
+ {file = "jiter-0.10.0-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:166f3606f11920f9a1746b2eea84fa2c0a5d50fd313c38bdea4edc072000b0af"},
+ {file = "jiter-0.10.0-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:28dcecbb4ba402916034fc14eba7709f250c4d24b0c43fc94d187ee0580af181"},
+ {file = "jiter-0.10.0-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:86c5aa6910f9bebcc7bc4f8bc461aff68504388b43bfe5e5c0bd21efa33b52f4"},
+ {file = "jiter-0.10.0-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ceeb52d242b315d7f1f74b441b6a167f78cea801ad7c11c36da77ff2d42e8a28"},
+ {file = "jiter-0.10.0-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:ff76d8887c8c8ee1e772274fcf8cc1071c2c58590d13e33bd12d02dc9a560397"},
+ {file = "jiter-0.10.0-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:a9be4d0fa2b79f7222a88aa488bd89e2ae0a0a5b189462a12def6ece2faa45f1"},
+ {file = "jiter-0.10.0-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:9ab7fd8738094139b6c1ab1822d6f2000ebe41515c537235fd45dabe13ec9324"},
+ {file = "jiter-0.10.0-cp39-cp39-win32.whl", hash = "sha256:5f51e048540dd27f204ff4a87f5d79294ea0aa3aa552aca34934588cf27023cf"},
+ {file = "jiter-0.10.0-cp39-cp39-win_amd64.whl", hash = "sha256:1b28302349dc65703a9e4ead16f163b1c339efffbe1049c30a44b001a2a4fff9"},
+ {file = "jiter-0.10.0.tar.gz", hash = "sha256:07a7142c38aacc85194391108dc91b5b57093c978a9932bd86a36862759d9500"},
+]
+
+[[package]]
+name = "mccabe"
+version = "0.7.0"
+description = "McCabe checker, plugin for flake8"
+optional = false
+python-versions = ">=3.6"
+groups = ["dev"]
+files = [
+ {file = "mccabe-0.7.0-py2.py3-none-any.whl", hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e"},
+ {file = "mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325"},
+]
+
+[[package]]
+name = "multidict"
+version = "6.6.3"
+description = "multidict implementation"
+optional = false
+python-versions = ">=3.9"
+groups = ["test"]
+files = [
+ {file = "multidict-6.6.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a2be5b7b35271f7fff1397204ba6708365e3d773579fe2a30625e16c4b4ce817"},
+ {file = "multidict-6.6.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:12f4581d2930840295c461764b9a65732ec01250b46c6b2c510d7ee68872b140"},
+ {file = "multidict-6.6.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:dd7793bab517e706c9ed9d7310b06c8672fd0aeee5781bfad612f56b8e0f7d14"},
+ {file = "multidict-6.6.3-cp310-cp310-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:72d8815f2cd3cf3df0f83cac3f3ef801d908b2d90409ae28102e0553af85545a"},
+ {file = "multidict-6.6.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:531e331a2ee53543ab32b16334e2deb26f4e6b9b28e41f8e0c87e99a6c8e2d69"},
+ {file = "multidict-6.6.3-cp310-cp310-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:42ca5aa9329a63be8dc49040f63817d1ac980e02eeddba763a9ae5b4027b9c9c"},
+ {file = "multidict-6.6.3-cp310-cp310-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:208b9b9757060b9faa6f11ab4bc52846e4f3c2fb8b14d5680c8aac80af3dc751"},
+ {file = "multidict-6.6.3-cp310-cp310-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:acf6b97bd0884891af6a8b43d0f586ab2fcf8e717cbd47ab4bdddc09e20652d8"},
+ {file = "multidict-6.6.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:68e9e12ed00e2089725669bdc88602b0b6f8d23c0c95e52b95f0bc69f7fe9b55"},
+ {file = "multidict-6.6.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:05db2f66c9addb10cfa226e1acb363450fab2ff8a6df73c622fefe2f5af6d4e7"},
+ {file = "multidict-6.6.3-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:0db58da8eafb514db832a1b44f8fa7906fdd102f7d982025f816a93ba45e3dcb"},
+ {file = "multidict-6.6.3-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:14117a41c8fdb3ee19c743b1c027da0736fdb79584d61a766da53d399b71176c"},
+ {file = "multidict-6.6.3-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:877443eaaabcd0b74ff32ebeed6f6176c71850feb7d6a1d2db65945256ea535c"},
+ {file = "multidict-6.6.3-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:70b72e749a4f6e7ed8fb334fa8d8496384840319512746a5f42fa0aec79f4d61"},
+ {file = "multidict-6.6.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:43571f785b86afd02b3855c5ac8e86ec921b760298d6f82ff2a61daf5a35330b"},
+ {file = "multidict-6.6.3-cp310-cp310-win32.whl", hash = "sha256:20c5a0c3c13a15fd5ea86c42311859f970070e4e24de5a550e99d7c271d76318"},
+ {file = "multidict-6.6.3-cp310-cp310-win_amd64.whl", hash = "sha256:ab0a34a007704c625e25a9116c6770b4d3617a071c8a7c30cd338dfbadfe6485"},
+ {file = "multidict-6.6.3-cp310-cp310-win_arm64.whl", hash = "sha256:769841d70ca8bdd140a715746199fc6473414bd02efd678d75681d2d6a8986c5"},
+ {file = "multidict-6.6.3-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:18f4eba0cbac3546b8ae31e0bbc55b02c801ae3cbaf80c247fcdd89b456ff58c"},
+ {file = "multidict-6.6.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:ef43b5dd842382329e4797c46f10748d8c2b6e0614f46b4afe4aee9ac33159df"},
+ {file = "multidict-6.6.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:bf9bd1fd5eec01494e0f2e8e446a74a85d5e49afb63d75a9934e4a5423dba21d"},
+ {file = "multidict-6.6.3-cp311-cp311-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:5bd8d6f793a787153956cd35e24f60485bf0651c238e207b9a54f7458b16d539"},
+ {file = "multidict-6.6.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1bf99b4daf908c73856bd87ee0a2499c3c9a3d19bb04b9c6025e66af3fd07462"},
+ {file = "multidict-6.6.3-cp311-cp311-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:0b9e59946b49dafaf990fd9c17ceafa62976e8471a14952163d10a7a630413a9"},
+ {file = "multidict-6.6.3-cp311-cp311-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:e2db616467070d0533832d204c54eea6836a5e628f2cb1e6dfd8cd6ba7277cb7"},
+ {file = "multidict-6.6.3-cp311-cp311-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:7394888236621f61dcdd25189b2768ae5cc280f041029a5bcf1122ac63df79f9"},
+ {file = "multidict-6.6.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f114d8478733ca7388e7c7e0ab34b72547476b97009d643644ac33d4d3fe1821"},
+ {file = "multidict-6.6.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:cdf22e4db76d323bcdc733514bf732e9fb349707c98d341d40ebcc6e9318ef3d"},
+ {file = "multidict-6.6.3-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:e995a34c3d44ab511bfc11aa26869b9d66c2d8c799fa0e74b28a473a692532d6"},
+ {file = "multidict-6.6.3-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:766a4a5996f54361d8d5a9050140aa5362fe48ce51c755a50c0bc3706460c430"},
+ {file = "multidict-6.6.3-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:3893a0d7d28a7fe6ca7a1f760593bc13038d1d35daf52199d431b61d2660602b"},
+ {file = "multidict-6.6.3-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:934796c81ea996e61914ba58064920d6cad5d99140ac3167901eb932150e2e56"},
+ {file = "multidict-6.6.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9ed948328aec2072bc00f05d961ceadfd3e9bfc2966c1319aeaf7b7c21219183"},
+ {file = "multidict-6.6.3-cp311-cp311-win32.whl", hash = "sha256:9f5b28c074c76afc3e4c610c488e3493976fe0e596dd3db6c8ddfbb0134dcac5"},
+ {file = "multidict-6.6.3-cp311-cp311-win_amd64.whl", hash = "sha256:bc7f6fbc61b1c16050a389c630da0b32fc6d4a3d191394ab78972bf5edc568c2"},
+ {file = "multidict-6.6.3-cp311-cp311-win_arm64.whl", hash = "sha256:d4e47d8faffaae822fb5cba20937c048d4f734f43572e7079298a6c39fb172cb"},
+ {file = "multidict-6.6.3-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:056bebbeda16b2e38642d75e9e5310c484b7c24e3841dc0fb943206a72ec89d6"},
+ {file = "multidict-6.6.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:e5f481cccb3c5c5e5de5d00b5141dc589c1047e60d07e85bbd7dea3d4580d63f"},
+ {file = "multidict-6.6.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:10bea2ee839a759ee368b5a6e47787f399b41e70cf0c20d90dfaf4158dfb4e55"},
+ {file = "multidict-6.6.3-cp312-cp312-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:2334cfb0fa9549d6ce2c21af2bfbcd3ac4ec3646b1b1581c88e3e2b1779ec92b"},
+ {file = "multidict-6.6.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b8fee016722550a2276ca2cb5bb624480e0ed2bd49125b2b73b7010b9090e888"},
+ {file = "multidict-6.6.3-cp312-cp312-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:e5511cb35f5c50a2db21047c875eb42f308c5583edf96bd8ebf7d770a9d68f6d"},
+ {file = "multidict-6.6.3-cp312-cp312-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:712b348f7f449948e0a6c4564a21c7db965af900973a67db432d724619b3c680"},
+ {file = "multidict-6.6.3-cp312-cp312-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:e4e15d2138ee2694e038e33b7c3da70e6b0ad8868b9f8094a72e1414aeda9c1a"},
+ {file = "multidict-6.6.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8df25594989aebff8a130f7899fa03cbfcc5d2b5f4a461cf2518236fe6f15961"},
+ {file = "multidict-6.6.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:159ca68bfd284a8860f8d8112cf0521113bffd9c17568579e4d13d1f1dc76b65"},
+ {file = "multidict-6.6.3-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:e098c17856a8c9ade81b4810888c5ad1914099657226283cab3062c0540b0643"},
+ {file = "multidict-6.6.3-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:67c92ed673049dec52d7ed39f8cf9ebbadf5032c774058b4406d18c8f8fe7063"},
+ {file = "multidict-6.6.3-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:bd0578596e3a835ef451784053cfd327d607fc39ea1a14812139339a18a0dbc3"},
+ {file = "multidict-6.6.3-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:346055630a2df2115cd23ae271910b4cae40f4e336773550dca4889b12916e75"},
+ {file = "multidict-6.6.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:555ff55a359302b79de97e0468e9ee80637b0de1fce77721639f7cd9440b3a10"},
+ {file = "multidict-6.6.3-cp312-cp312-win32.whl", hash = "sha256:73ab034fb8d58ff85c2bcbadc470efc3fafeea8affcf8722855fb94557f14cc5"},
+ {file = "multidict-6.6.3-cp312-cp312-win_amd64.whl", hash = "sha256:04cbcce84f63b9af41bad04a54d4cc4e60e90c35b9e6ccb130be2d75b71f8c17"},
+ {file = "multidict-6.6.3-cp312-cp312-win_arm64.whl", hash = "sha256:0f1130b896ecb52d2a1e615260f3ea2af55fa7dc3d7c3003ba0c3121a759b18b"},
+ {file = "multidict-6.6.3-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:540d3c06d48507357a7d57721e5094b4f7093399a0106c211f33540fdc374d55"},
+ {file = "multidict-6.6.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:9c19cea2a690f04247d43f366d03e4eb110a0dc4cd1bbeee4d445435428ed35b"},
+ {file = "multidict-6.6.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7af039820cfd00effec86bda5d8debef711a3e86a1d3772e85bea0f243a4bd65"},
+ {file = "multidict-6.6.3-cp313-cp313-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:500b84f51654fdc3944e936f2922114349bf8fdcac77c3092b03449f0e5bc2b3"},
+ {file = "multidict-6.6.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f3fc723ab8a5c5ed6c50418e9bfcd8e6dceba6c271cee6728a10a4ed8561520c"},
+ {file = "multidict-6.6.3-cp313-cp313-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:94c47ea3ade005b5976789baaed66d4de4480d0a0bf31cef6edaa41c1e7b56a6"},
+ {file = "multidict-6.6.3-cp313-cp313-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:dbc7cf464cc6d67e83e136c9f55726da3a30176f020a36ead246eceed87f1cd8"},
+ {file = "multidict-6.6.3-cp313-cp313-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:900eb9f9da25ada070f8ee4a23f884e0ee66fe4e1a38c3af644256a508ad81ca"},
+ {file = "multidict-6.6.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:7c6df517cf177da5d47ab15407143a89cd1a23f8b335f3a28d57e8b0a3dbb884"},
+ {file = "multidict-6.6.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:4ef421045f13879e21c994b36e728d8e7d126c91a64b9185810ab51d474f27e7"},
+ {file = "multidict-6.6.3-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:6c1e61bb4f80895c081790b6b09fa49e13566df8fbff817da3f85b3a8192e36b"},
+ {file = "multidict-6.6.3-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:e5e8523bb12d7623cd8300dbd91b9e439a46a028cd078ca695eb66ba31adee3c"},
+ {file = "multidict-6.6.3-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:ef58340cc896219e4e653dade08fea5c55c6df41bcc68122e3be3e9d873d9a7b"},
+ {file = "multidict-6.6.3-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:fc9dc435ec8699e7b602b94fe0cd4703e69273a01cbc34409af29e7820f777f1"},
+ {file = "multidict-6.6.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:9e864486ef4ab07db5e9cb997bad2b681514158d6954dd1958dfb163b83d53e6"},
+ {file = "multidict-6.6.3-cp313-cp313-win32.whl", hash = "sha256:5633a82fba8e841bc5c5c06b16e21529573cd654f67fd833650a215520a6210e"},
+ {file = "multidict-6.6.3-cp313-cp313-win_amd64.whl", hash = "sha256:e93089c1570a4ad54c3714a12c2cef549dc9d58e97bcded193d928649cab78e9"},
+ {file = "multidict-6.6.3-cp313-cp313-win_arm64.whl", hash = "sha256:c60b401f192e79caec61f166da9c924e9f8bc65548d4246842df91651e83d600"},
+ {file = "multidict-6.6.3-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:02fd8f32d403a6ff13864b0851f1f523d4c988051eea0471d4f1fd8010f11134"},
+ {file = "multidict-6.6.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:f3aa090106b1543f3f87b2041eef3c156c8da2aed90c63a2fbed62d875c49c37"},
+ {file = "multidict-6.6.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:e924fb978615a5e33ff644cc42e6aa241effcf4f3322c09d4f8cebde95aff5f8"},
+ {file = "multidict-6.6.3-cp313-cp313t-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:b9fe5a0e57c6dbd0e2ce81ca66272282c32cd11d31658ee9553849d91289e1c1"},
+ {file = "multidict-6.6.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:b24576f208793ebae00280c59927c3b7c2a3b1655e443a25f753c4611bc1c373"},
+ {file = "multidict-6.6.3-cp313-cp313t-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:135631cb6c58eac37d7ac0df380294fecdc026b28837fa07c02e459c7fb9c54e"},
+ {file = "multidict-6.6.3-cp313-cp313t-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:274d416b0df887aef98f19f21578653982cfb8a05b4e187d4a17103322eeaf8f"},
+ {file = "multidict-6.6.3-cp313-cp313t-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:e252017a817fad7ce05cafbe5711ed40faeb580e63b16755a3a24e66fa1d87c0"},
+ {file = "multidict-6.6.3-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:2e4cc8d848cd4fe1cdee28c13ea79ab0ed37fc2e89dd77bac86a2e7959a8c3bc"},
+ {file = "multidict-6.6.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9e236a7094b9c4c1b7585f6b9cca34b9d833cf079f7e4c49e6a4a6ec9bfdc68f"},
+ {file = "multidict-6.6.3-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:e0cb0ab69915c55627c933f0b555a943d98ba71b4d1c57bc0d0a66e2567c7471"},
+ {file = "multidict-6.6.3-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:81ef2f64593aba09c5212a3d0f8c906a0d38d710a011f2f42759704d4557d3f2"},
+ {file = "multidict-6.6.3-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:b9cbc60010de3562545fa198bfc6d3825df430ea96d2cc509c39bd71e2e7d648"},
+ {file = "multidict-6.6.3-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:70d974eaaa37211390cd02ef93b7e938de564bbffa866f0b08d07e5e65da783d"},
+ {file = "multidict-6.6.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:3713303e4a6663c6d01d648a68f2848701001f3390a030edaaf3fc949c90bf7c"},
+ {file = "multidict-6.6.3-cp313-cp313t-win32.whl", hash = "sha256:639ecc9fe7cd73f2495f62c213e964843826f44505a3e5d82805aa85cac6f89e"},
+ {file = "multidict-6.6.3-cp313-cp313t-win_amd64.whl", hash = "sha256:9f97e181f344a0ef3881b573d31de8542cc0dbc559ec68c8f8b5ce2c2e91646d"},
+ {file = "multidict-6.6.3-cp313-cp313t-win_arm64.whl", hash = "sha256:ce8b7693da41a3c4fde5871c738a81490cea5496c671d74374c8ab889e1834fb"},
+ {file = "multidict-6.6.3-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c8161b5a7778d3137ea2ee7ae8a08cce0010de3b00ac671c5ebddeaa17cefd22"},
+ {file = "multidict-6.6.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1328201ee930f069961ae707d59c6627ac92e351ed5b92397cf534d1336ce557"},
+ {file = "multidict-6.6.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:b1db4d2093d6b235de76932febf9d50766cf49a5692277b2c28a501c9637f616"},
+ {file = "multidict-6.6.3-cp39-cp39-manylinux1_i686.manylinux2014_i686.manylinux_2_17_i686.manylinux_2_5_i686.whl", hash = "sha256:53becb01dd8ebd19d1724bebe369cfa87e4e7f29abbbe5c14c98ce4c383e16cd"},
+ {file = "multidict-6.6.3-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:41bb9d1d4c303886e2d85bade86e59885112a7f4277af5ad47ab919a2251f306"},
+ {file = "multidict-6.6.3-cp39-cp39-manylinux2014_armv7l.manylinux_2_17_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:775b464d31dac90f23192af9c291dc9f423101857e33e9ebf0020a10bfcf4144"},
+ {file = "multidict-6.6.3-cp39-cp39-manylinux2014_ppc64le.manylinux_2_17_ppc64le.manylinux_2_28_ppc64le.whl", hash = "sha256:d04d01f0a913202205a598246cf77826fe3baa5a63e9f6ccf1ab0601cf56eca0"},
+ {file = "multidict-6.6.3-cp39-cp39-manylinux2014_s390x.manylinux_2_17_s390x.manylinux_2_28_s390x.whl", hash = "sha256:d25594d3b38a2e6cabfdcafef339f754ca6e81fbbdb6650ad773ea9775af35ab"},
+ {file = "multidict-6.6.3-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:35712f1748d409e0707b165bf49f9f17f9e28ae85470c41615778f8d4f7d9609"},
+ {file = "multidict-6.6.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:1c8082e5814b662de8589d6a06c17e77940d5539080cbab9fe6794b5241b76d9"},
+ {file = "multidict-6.6.3-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:61af8a4b771f1d4d000b3168c12c3120ccf7284502a94aa58c68a81f5afac090"},
+ {file = "multidict-6.6.3-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:448e4a9afccbf297577f2eaa586f07067441e7b63c8362a3540ba5a38dc0f14a"},
+ {file = "multidict-6.6.3-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:233ad16999afc2bbd3e534ad8dbe685ef8ee49a37dbc2cdc9514e57b6d589ced"},
+ {file = "multidict-6.6.3-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:bb933c891cd4da6bdcc9733d048e994e22e1883287ff7540c2a0f3b117605092"},
+ {file = "multidict-6.6.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:37b09ca60998e87734699e88c2363abfd457ed18cfbf88e4009a4e83788e63ed"},
+ {file = "multidict-6.6.3-cp39-cp39-win32.whl", hash = "sha256:f54cb79d26d0cd420637d184af38f0668558f3c4bbe22ab7ad830e67249f2e0b"},
+ {file = "multidict-6.6.3-cp39-cp39-win_amd64.whl", hash = "sha256:295adc9c0551e5d5214b45cf29ca23dbc28c2d197a9c30d51aed9e037cb7c578"},
+ {file = "multidict-6.6.3-cp39-cp39-win_arm64.whl", hash = "sha256:15332783596f227db50fb261c2c251a58ac3873c457f3a550a95d5c0aa3c770d"},
+ {file = "multidict-6.6.3-py3-none-any.whl", hash = "sha256:8db10f29c7541fc5da4defd8cd697e1ca429db743fa716325f236079b96f775a"},
+ {file = "multidict-6.6.3.tar.gz", hash = "sha256:798a9eb12dab0a6c2e29c1de6f3468af5cb2da6053a20dfa3344907eed0937cc"},
+]
+
+[package.dependencies]
+typing-extensions = {version = ">=4.1.0", markers = "python_version < \"3.11\""}
+
+[[package]]
+name = "mypy-extensions"
+version = "1.1.0"
+description = "Type system extensions for programs checked with the mypy type checker."
+optional = false
+python-versions = ">=3.8"
+groups = ["dev"]
+files = [
+ {file = "mypy_extensions-1.1.0-py3-none-any.whl", hash = "sha256:1be4cccdb0f2482337c4743e60421de3a356cd97508abadd57d47403e94f5505"},
+ {file = "mypy_extensions-1.1.0.tar.gz", hash = "sha256:52e68efc3284861e772bbcd66823fde5ae21fd2fdb51c62a211403730b916558"},
+]
+
+[[package]]
+name = "opentelemetry-api"
+version = "1.36.0"
+description = "OpenTelemetry Python API"
+optional = false
+python-versions = ">=3.9"
+groups = ["main", "test"]
+files = [
+ {file = "opentelemetry_api-1.36.0-py3-none-any.whl", hash = "sha256:02f20bcacf666e1333b6b1f04e647dc1d5111f86b8e510238fcc56d7762cda8c"},
+ {file = "opentelemetry_api-1.36.0.tar.gz", hash = "sha256:9a72572b9c416d004d492cbc6e61962c0501eaf945ece9b5a0f56597d8348aa0"},
+]
+
+[package.dependencies]
+importlib-metadata = ">=6.0,<8.8.0"
+typing-extensions = ">=4.5.0"
+
+[[package]]
+name = "opentelemetry-instrumentation"
+version = "0.57b0"
+description = "Instrumentation Tools & Auto Instrumentation for OpenTelemetry Python"
+optional = false
+python-versions = ">=3.9"
+groups = ["main"]
+files = [
+ {file = "opentelemetry_instrumentation-0.57b0-py3-none-any.whl", hash = "sha256:9109280f44882e07cec2850db28210b90600ae9110b42824d196de357cbddf7e"},
+ {file = "opentelemetry_instrumentation-0.57b0.tar.gz", hash = "sha256:f2a30135ba77cdea2b0e1df272f4163c154e978f57214795d72f40befd4fcf05"},
+]
+
+[package.dependencies]
+opentelemetry-api = ">=1.4,<2.0"
+opentelemetry-semantic-conventions = "0.57b0"
+packaging = ">=18.0"
+wrapt = ">=1.0.0,<2.0.0"
+
+[[package]]
+name = "opentelemetry-sdk"
+version = "1.36.0"
+description = "OpenTelemetry Python SDK"
+optional = false
+python-versions = ">=3.9"
+groups = ["test"]
+files = [
+ {file = "opentelemetry_sdk-1.36.0-py3-none-any.whl", hash = "sha256:19fe048b42e98c5c1ffe85b569b7073576ad4ce0bcb6e9b4c6a39e890a6c45fb"},
+ {file = "opentelemetry_sdk-1.36.0.tar.gz", hash = "sha256:19c8c81599f51b71670661ff7495c905d8fdf6976e41622d5245b791b06fa581"},
+]
+
+[package.dependencies]
+opentelemetry-api = "1.36.0"
+opentelemetry-semantic-conventions = "0.57b0"
+typing-extensions = ">=4.5.0"
+
+[[package]]
+name = "opentelemetry-semantic-conventions"
+version = "0.57b0"
+description = "OpenTelemetry Semantic Conventions"
+optional = false
+python-versions = ">=3.9"
+groups = ["main", "test"]
+files = [
+ {file = "opentelemetry_semantic_conventions-0.57b0-py3-none-any.whl", hash = "sha256:757f7e76293294f124c827e514c2a3144f191ef175b069ce8d1211e1e38e9e78"},
+ {file = "opentelemetry_semantic_conventions-0.57b0.tar.gz", hash = "sha256:609a4a79c7891b4620d64c7aac6898f872d790d75f22019913a660756f27ff32"},
+]
+
+[package.dependencies]
+opentelemetry-api = "1.36.0"
+typing-extensions = ">=4.5.0"
+
+[[package]]
+name = "opentelemetry-semantic-conventions-ai"
+version = "0.4.13"
+description = "OpenTelemetry Semantic Conventions Extension for Large Language Models"
+optional = false
+python-versions = "<4,>=3.9"
+groups = ["main"]
+files = [
+ {file = "opentelemetry_semantic_conventions_ai-0.4.13-py3-none-any.whl", hash = "sha256:883a30a6bb5deaec0d646912b5f9f6dcbb9f6f72557b73d0f2560bf25d13e2d5"},
+ {file = "opentelemetry_semantic_conventions_ai-0.4.13.tar.gz", hash = "sha256:94efa9fb4ffac18c45f54a3a338ffeb7eedb7e1bb4d147786e77202e159f0036"},
+]
+
+[[package]]
+name = "packaging"
+version = "25.0"
+description = "Core utilities for Python packages"
+optional = false
+python-versions = ">=3.8"
+groups = ["main", "dev", "test"]
+files = [
+ {file = "packaging-25.0-py3-none-any.whl", hash = "sha256:29572ef2b1f17581046b3a2227d5c611fb25ec70ca1ba8554b24b0e69331a484"},
+ {file = "packaging-25.0.tar.gz", hash = "sha256:d443872c98d677bf60f6a1f2f8c1cb748e8fe762d2bf9d3148b5599295b0fc4f"},
+]
+
+[[package]]
+name = "pathspec"
+version = "0.12.1"
+description = "Utility library for gitignore style pattern matching of file paths."
+optional = false
+python-versions = ">=3.8"
+groups = ["dev"]
+files = [
+ {file = "pathspec-0.12.1-py3-none-any.whl", hash = "sha256:a0d503e138a4c123b27490a4f7beda6a01c6f288df0e4a8b79c7eb0dc7b4cc08"},
+ {file = "pathspec-0.12.1.tar.gz", hash = "sha256:a482d51503a1ab33b1c67a6c3813a26953dbdc71c31dacaef9a838c4e29f5712"},
+]
+
+[[package]]
+name = "platformdirs"
+version = "4.3.8"
+description = "A small Python package for determining appropriate platform-specific dirs, e.g. a `user data dir`."
+optional = false
+python-versions = ">=3.9"
+groups = ["dev"]
+files = [
+ {file = "platformdirs-4.3.8-py3-none-any.whl", hash = "sha256:ff7059bb7eb1179e2685604f4aaf157cfd9535242bd23742eadc3c13542139b4"},
+ {file = "platformdirs-4.3.8.tar.gz", hash = "sha256:3d512d96e16bcb959a814c9f348431070822a6496326a4be0911c40b5a74c2bc"},
+]
+
+[package.extras]
+docs = ["furo (>=2024.8.6)", "proselint (>=0.14)", "sphinx (>=8.1.3)", "sphinx-autodoc-typehints (>=3)"]
+test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=8.3.4)", "pytest-cov (>=6)", "pytest-mock (>=3.14)"]
+type = ["mypy (>=1.14.1)"]
+
+[[package]]
+name = "pluggy"
+version = "1.6.0"
+description = "plugin and hook calling mechanisms for python"
+optional = false
+python-versions = ">=3.9"
+groups = ["test"]
+files = [
+ {file = "pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746"},
+ {file = "pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3"},
+]
+
+[package.extras]
+dev = ["pre-commit", "tox"]
+testing = ["coverage", "pytest", "pytest-benchmark"]
+
+[[package]]
+name = "propcache"
+version = "0.3.2"
+description = "Accelerated property cache"
+optional = false
+python-versions = ">=3.9"
+groups = ["test"]
+files = [
+ {file = "propcache-0.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:22d9962a358aedbb7a2e36187ff273adeaab9743373a272976d2e348d08c7770"},
+ {file = "propcache-0.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0d0fda578d1dc3f77b6b5a5dce3b9ad69a8250a891760a548df850a5e8da87f3"},
+ {file = "propcache-0.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3def3da3ac3ce41562d85db655d18ebac740cb3fa4367f11a52b3da9d03a5cc3"},
+ {file = "propcache-0.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:9bec58347a5a6cebf239daba9bda37dffec5b8d2ce004d9fe4edef3d2815137e"},
+ {file = "propcache-0.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:55ffda449a507e9fbd4aca1a7d9aa6753b07d6166140e5a18d2ac9bc49eac220"},
+ {file = "propcache-0.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:64a67fb39229a8a8491dd42f864e5e263155e729c2e7ff723d6e25f596b1e8cb"},
+ {file = "propcache-0.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9da1cf97b92b51253d5b68cf5a2b9e0dafca095e36b7f2da335e27dc6172a614"},
+ {file = "propcache-0.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:5f559e127134b07425134b4065be45b166183fdcb433cb6c24c8e4149056ad50"},
+ {file = "propcache-0.3.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:aff2e4e06435d61f11a428360a932138d0ec288b0a31dd9bd78d200bd4a2b339"},
+ {file = "propcache-0.3.2-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:4927842833830942a5d0a56e6f4839bc484785b8e1ce8d287359794818633ba0"},
+ {file = "propcache-0.3.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:6107ddd08b02654a30fb8ad7a132021759d750a82578b94cd55ee2772b6ebea2"},
+ {file = "propcache-0.3.2-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:70bd8b9cd6b519e12859c99f3fc9a93f375ebd22a50296c3a295028bea73b9e7"},
+ {file = "propcache-0.3.2-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:2183111651d710d3097338dd1893fcf09c9f54e27ff1a8795495a16a469cc90b"},
+ {file = "propcache-0.3.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:fb075ad271405dcad8e2a7ffc9a750a3bf70e533bd86e89f0603e607b93aa64c"},
+ {file = "propcache-0.3.2-cp310-cp310-win32.whl", hash = "sha256:404d70768080d3d3bdb41d0771037da19d8340d50b08e104ca0e7f9ce55fce70"},
+ {file = "propcache-0.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:7435d766f978b4ede777002e6b3b6641dd229cd1da8d3d3106a45770365f9ad9"},
+ {file = "propcache-0.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:0b8d2f607bd8f80ddc04088bc2a037fdd17884a6fcadc47a96e334d72f3717be"},
+ {file = "propcache-0.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:06766d8f34733416e2e34f46fea488ad5d60726bb9481d3cddf89a6fa2d9603f"},
+ {file = "propcache-0.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:a2dc1f4a1df4fecf4e6f68013575ff4af84ef6f478fe5344317a65d38a8e6dc9"},
+ {file = "propcache-0.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:be29c4f4810c5789cf10ddf6af80b041c724e629fa51e308a7a0fb19ed1ef7bf"},
+ {file = "propcache-0.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:59d61f6970ecbd8ff2e9360304d5c8876a6abd4530cb752c06586849ac8a9dc9"},
+ {file = "propcache-0.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:62180e0b8dbb6b004baec00a7983e4cc52f5ada9cd11f48c3528d8cfa7b96a66"},
+ {file = "propcache-0.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c144ca294a204c470f18cf4c9d78887810d04a3e2fbb30eea903575a779159df"},
+ {file = "propcache-0.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c5c2a784234c28854878d68978265617aa6dc0780e53d44b4d67f3651a17a9a2"},
+ {file = "propcache-0.3.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:5745bc7acdafa978ca1642891b82c19238eadc78ba2aaa293c6863b304e552d7"},
+ {file = "propcache-0.3.2-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:c0075bf773d66fa8c9d41f66cc132ecc75e5bb9dd7cce3cfd14adc5ca184cb95"},
+ {file = "propcache-0.3.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:5f57aa0847730daceff0497f417c9de353c575d8da3579162cc74ac294c5369e"},
+ {file = "propcache-0.3.2-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:eef914c014bf72d18efb55619447e0aecd5fb7c2e3fa7441e2e5d6099bddff7e"},
+ {file = "propcache-0.3.2-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:2a4092e8549031e82facf3decdbc0883755d5bbcc62d3aea9d9e185549936dcf"},
+ {file = "propcache-0.3.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:85871b050f174bc0bfb437efbdb68aaf860611953ed12418e4361bc9c392749e"},
+ {file = "propcache-0.3.2-cp311-cp311-win32.whl", hash = "sha256:36c8d9b673ec57900c3554264e630d45980fd302458e4ac801802a7fd2ef7897"},
+ {file = "propcache-0.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:e53af8cb6a781b02d2ea079b5b853ba9430fcbe18a8e3ce647d5982a3ff69f39"},
+ {file = "propcache-0.3.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:8de106b6c84506b31c27168582cd3cb3000a6412c16df14a8628e5871ff83c10"},
+ {file = "propcache-0.3.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:28710b0d3975117239c76600ea351934ac7b5ff56e60953474342608dbbb6154"},
+ {file = "propcache-0.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce26862344bdf836650ed2487c3d724b00fbfec4233a1013f597b78c1cb73615"},
+ {file = "propcache-0.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bca54bd347a253af2cf4544bbec232ab982f4868de0dd684246b67a51bc6b1db"},
+ {file = "propcache-0.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:55780d5e9a2ddc59711d727226bb1ba83a22dd32f64ee15594b9392b1f544eb1"},
+ {file = "propcache-0.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:035e631be25d6975ed87ab23153db6a73426a48db688070d925aa27e996fe93c"},
+ {file = "propcache-0.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ee6f22b6eaa39297c751d0e80c0d3a454f112f5c6481214fcf4c092074cecd67"},
+ {file = "propcache-0.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7ca3aee1aa955438c4dba34fc20a9f390e4c79967257d830f137bd5a8a32ed3b"},
+ {file = "propcache-0.3.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:7a4f30862869fa2b68380d677cc1c5fcf1e0f2b9ea0cf665812895c75d0ca3b8"},
+ {file = "propcache-0.3.2-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:b77ec3c257d7816d9f3700013639db7491a434644c906a2578a11daf13176251"},
+ {file = "propcache-0.3.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:cab90ac9d3f14b2d5050928483d3d3b8fb6b4018893fc75710e6aa361ecb2474"},
+ {file = "propcache-0.3.2-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:0b504d29f3c47cf6b9e936c1852246c83d450e8e063d50562115a6be6d3a2535"},
+ {file = "propcache-0.3.2-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:ce2ac2675a6aa41ddb2a0c9cbff53780a617ac3d43e620f8fd77ba1c84dcfc06"},
+ {file = "propcache-0.3.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:62b4239611205294cc433845b914131b2a1f03500ff3c1ed093ed216b82621e1"},
+ {file = "propcache-0.3.2-cp312-cp312-win32.whl", hash = "sha256:df4a81b9b53449ebc90cc4deefb052c1dd934ba85012aa912c7ea7b7e38b60c1"},
+ {file = "propcache-0.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:7046e79b989d7fe457bb755844019e10f693752d169076138abf17f31380800c"},
+ {file = "propcache-0.3.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:ca592ed634a73ca002967458187109265e980422116c0a107cf93d81f95af945"},
+ {file = "propcache-0.3.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:9ecb0aad4020e275652ba3975740f241bd12a61f1a784df044cf7477a02bc252"},
+ {file = "propcache-0.3.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:7f08f1cc28bd2eade7a8a3d2954ccc673bb02062e3e7da09bc75d843386b342f"},
+ {file = "propcache-0.3.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d1a342c834734edb4be5ecb1e9fb48cb64b1e2320fccbd8c54bf8da8f2a84c33"},
+ {file = "propcache-0.3.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8a544caaae1ac73f1fecfae70ded3e93728831affebd017d53449e3ac052ac1e"},
+ {file = "propcache-0.3.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:310d11aa44635298397db47a3ebce7db99a4cc4b9bbdfcf6c98a60c8d5261cf1"},
+ {file = "propcache-0.3.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:4c1396592321ac83157ac03a2023aa6cc4a3cc3cfdecb71090054c09e5a7cce3"},
+ {file = "propcache-0.3.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8cabf5b5902272565e78197edb682017d21cf3b550ba0460ee473753f28d23c1"},
+ {file = "propcache-0.3.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:0a2f2235ac46a7aa25bdeb03a9e7060f6ecbd213b1f9101c43b3090ffb971ef6"},
+ {file = "propcache-0.3.2-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:92b69e12e34869a6970fd2f3da91669899994b47c98f5d430b781c26f1d9f387"},
+ {file = "propcache-0.3.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:54e02207c79968ebbdffc169591009f4474dde3b4679e16634d34c9363ff56b4"},
+ {file = "propcache-0.3.2-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:4adfb44cb588001f68c5466579d3f1157ca07f7504fc91ec87862e2b8e556b88"},
+ {file = "propcache-0.3.2-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:fd3e6019dc1261cd0291ee8919dd91fbab7b169bb76aeef6c716833a3f65d206"},
+ {file = "propcache-0.3.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:4c181cad81158d71c41a2bce88edce078458e2dd5ffee7eddd6b05da85079f43"},
+ {file = "propcache-0.3.2-cp313-cp313-win32.whl", hash = "sha256:8a08154613f2249519e549de2330cf8e2071c2887309a7b07fb56098f5170a02"},
+ {file = "propcache-0.3.2-cp313-cp313-win_amd64.whl", hash = "sha256:e41671f1594fc4ab0a6dec1351864713cb3a279910ae8b58f884a88a0a632c05"},
+ {file = "propcache-0.3.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:9a3cf035bbaf035f109987d9d55dc90e4b0e36e04bbbb95af3055ef17194057b"},
+ {file = "propcache-0.3.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:156c03d07dc1323d8dacaa221fbe028c5c70d16709cdd63502778e6c3ccca1b0"},
+ {file = "propcache-0.3.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:74413c0ba02ba86f55cf60d18daab219f7e531620c15f1e23d95563f505efe7e"},
+ {file = "propcache-0.3.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f066b437bb3fa39c58ff97ab2ca351db465157d68ed0440abecb21715eb24b28"},
+ {file = "propcache-0.3.2-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:f1304b085c83067914721e7e9d9917d41ad87696bf70f0bc7dee450e9c71ad0a"},
+ {file = "propcache-0.3.2-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ab50cef01b372763a13333b4e54021bdcb291fc9a8e2ccb9c2df98be51bcde6c"},
+ {file = "propcache-0.3.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fad3b2a085ec259ad2c2842666b2a0a49dea8463579c606426128925af1ed725"},
+ {file = "propcache-0.3.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:261fa020c1c14deafd54c76b014956e2f86991af198c51139faf41c4d5e83892"},
+ {file = "propcache-0.3.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:46d7f8aa79c927e5f987ee3a80205c987717d3659f035c85cf0c3680526bdb44"},
+ {file = "propcache-0.3.2-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:6d8f3f0eebf73e3c0ff0e7853f68be638b4043c65a70517bb575eff54edd8dbe"},
+ {file = "propcache-0.3.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:03c89c1b14a5452cf15403e291c0ccd7751d5b9736ecb2c5bab977ad6c5bcd81"},
+ {file = "propcache-0.3.2-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:0cc17efde71e12bbaad086d679ce575268d70bc123a5a71ea7ad76f70ba30bba"},
+ {file = "propcache-0.3.2-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:acdf05d00696bc0447e278bb53cb04ca72354e562cf88ea6f9107df8e7fd9770"},
+ {file = "propcache-0.3.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:4445542398bd0b5d32df908031cb1b30d43ac848e20470a878b770ec2dcc6330"},
+ {file = "propcache-0.3.2-cp313-cp313t-win32.whl", hash = "sha256:f86e5d7cd03afb3a1db8e9f9f6eff15794e79e791350ac48a8c924e6f439f394"},
+ {file = "propcache-0.3.2-cp313-cp313t-win_amd64.whl", hash = "sha256:9704bedf6e7cbe3c65eca4379a9b53ee6a83749f047808cbb5044d40d7d72198"},
+ {file = "propcache-0.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:a7fad897f14d92086d6b03fdd2eb844777b0c4d7ec5e3bac0fbae2ab0602bbe5"},
+ {file = "propcache-0.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:1f43837d4ca000243fd7fd6301947d7cb93360d03cd08369969450cc6b2ce3b4"},
+ {file = "propcache-0.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:261df2e9474a5949c46e962065d88eb9b96ce0f2bd30e9d3136bcde84befd8f2"},
+ {file = "propcache-0.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e514326b79e51f0a177daab1052bc164d9d9e54133797a3a58d24c9c87a3fe6d"},
+ {file = "propcache-0.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d4a996adb6904f85894570301939afeee65f072b4fd265ed7e569e8d9058e4ec"},
+ {file = "propcache-0.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:76cace5d6b2a54e55b137669b30f31aa15977eeed390c7cbfb1dafa8dfe9a701"},
+ {file = "propcache-0.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:31248e44b81d59d6addbb182c4720f90b44e1efdc19f58112a3c3a1615fb47ef"},
+ {file = "propcache-0.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:abb7fa19dbf88d3857363e0493b999b8011eea856b846305d8c0512dfdf8fbb1"},
+ {file = "propcache-0.3.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:d81ac3ae39d38588ad0549e321e6f773a4e7cc68e7751524a22885d5bbadf886"},
+ {file = "propcache-0.3.2-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:cc2782eb0f7a16462285b6f8394bbbd0e1ee5f928034e941ffc444012224171b"},
+ {file = "propcache-0.3.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:db429c19a6c7e8a1c320e6a13c99799450f411b02251fb1b75e6217cf4a14fcb"},
+ {file = "propcache-0.3.2-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:21d8759141a9e00a681d35a1f160892a36fb6caa715ba0b832f7747da48fb6ea"},
+ {file = "propcache-0.3.2-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:2ca6d378f09adb13837614ad2754fa8afaee330254f404299611bce41a8438cb"},
+ {file = "propcache-0.3.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:34a624af06c048946709f4278b4176470073deda88d91342665d95f7c6270fbe"},
+ {file = "propcache-0.3.2-cp39-cp39-win32.whl", hash = "sha256:4ba3fef1c30f306b1c274ce0b8baaa2c3cdd91f645c48f06394068f37d3837a1"},
+ {file = "propcache-0.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:7a2368eed65fc69a7a7a40b27f22e85e7627b74216f0846b04ba5c116e191ec9"},
+ {file = "propcache-0.3.2-py3-none-any.whl", hash = "sha256:98f1ec44fb675f5052cccc8e609c46ed23a35a1cfd18545ad4e29002d858a43f"},
+ {file = "propcache-0.3.2.tar.gz", hash = "sha256:20d7d62e4e7ef05f221e0db2856b979540686342e7dd9973b815599c7057e168"},
+]
+
+[[package]]
+name = "pycodestyle"
+version = "2.11.1"
+description = "Python style guide checker"
+optional = false
+python-versions = ">=3.8"
+groups = ["dev"]
+files = [
+ {file = "pycodestyle-2.11.1-py2.py3-none-any.whl", hash = "sha256:44fe31000b2d866f2e41841b18528a505fbd7fef9017b04eff4e2648a0fadc67"},
+ {file = "pycodestyle-2.11.1.tar.gz", hash = "sha256:41ba0e7afc9752dfb53ced5489e89f8186be00e599e712660695b7a75ff2663f"},
+]
+
+[[package]]
+name = "pydantic"
+version = "2.11.7"
+description = "Data validation using Python type hints"
+optional = false
+python-versions = ">=3.9"
+groups = ["test"]
+files = [
+ {file = "pydantic-2.11.7-py3-none-any.whl", hash = "sha256:dde5df002701f6de26248661f6835bbe296a47bf73990135c7d07ce741b9623b"},
+ {file = "pydantic-2.11.7.tar.gz", hash = "sha256:d989c3c6cb79469287b1569f7447a17848c998458d49ebe294e975b9baf0f0db"},
+]
+
+[package.dependencies]
+annotated-types = ">=0.6.0"
+pydantic-core = "2.33.2"
+typing-extensions = ">=4.12.2"
+typing-inspection = ">=0.4.0"
+
+[package.extras]
+email = ["email-validator (>=2.0.0)"]
+timezone = ["tzdata ; python_version >= \"3.9\" and platform_system == \"Windows\""]
+
+[[package]]
+name = "pydantic-core"
+version = "2.33.2"
+description = "Core functionality for Pydantic validation and serialization"
+optional = false
+python-versions = ">=3.9"
+groups = ["test"]
+files = [
+ {file = "pydantic_core-2.33.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:2b3d326aaef0c0399d9afffeb6367d5e26ddc24d351dbc9c636840ac355dc5d8"},
+ {file = "pydantic_core-2.33.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0e5b2671f05ba48b94cb90ce55d8bdcaaedb8ba00cc5359f6810fc918713983d"},
+ {file = "pydantic_core-2.33.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0069c9acc3f3981b9ff4cdfaf088e98d83440a4c7ea1bc07460af3d4dc22e72d"},
+ {file = "pydantic_core-2.33.2-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:d53b22f2032c42eaaf025f7c40c2e3b94568ae077a606f006d206a463bc69572"},
+ {file = "pydantic_core-2.33.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0405262705a123b7ce9f0b92f123334d67b70fd1f20a9372b907ce1080c7ba02"},
+ {file = "pydantic_core-2.33.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:4b25d91e288e2c4e0662b8038a28c6a07eaac3e196cfc4ff69de4ea3db992a1b"},
+ {file = "pydantic_core-2.33.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6bdfe4b3789761f3bcb4b1ddf33355a71079858958e3a552f16d5af19768fef2"},
+ {file = "pydantic_core-2.33.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:efec8db3266b76ef9607c2c4c419bdb06bf335ae433b80816089ea7585816f6a"},
+ {file = "pydantic_core-2.33.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:031c57d67ca86902726e0fae2214ce6770bbe2f710dc33063187a68744a5ecac"},
+ {file = "pydantic_core-2.33.2-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:f8de619080e944347f5f20de29a975c2d815d9ddd8be9b9b7268e2e3ef68605a"},
+ {file = "pydantic_core-2.33.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:73662edf539e72a9440129f231ed3757faab89630d291b784ca99237fb94db2b"},
+ {file = "pydantic_core-2.33.2-cp310-cp310-win32.whl", hash = "sha256:0a39979dcbb70998b0e505fb1556a1d550a0781463ce84ebf915ba293ccb7e22"},
+ {file = "pydantic_core-2.33.2-cp310-cp310-win_amd64.whl", hash = "sha256:b0379a2b24882fef529ec3b4987cb5d003b9cda32256024e6fe1586ac45fc640"},
+ {file = "pydantic_core-2.33.2-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:4c5b0a576fb381edd6d27f0a85915c6daf2f8138dc5c267a57c08a62900758c7"},
+ {file = "pydantic_core-2.33.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e799c050df38a639db758c617ec771fd8fb7a5f8eaaa4b27b101f266b216a246"},
+ {file = "pydantic_core-2.33.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:dc46a01bf8d62f227d5ecee74178ffc448ff4e5197c756331f71efcc66dc980f"},
+ {file = "pydantic_core-2.33.2-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:a144d4f717285c6d9234a66778059f33a89096dfb9b39117663fd8413d582dcc"},
+ {file = "pydantic_core-2.33.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:73cf6373c21bc80b2e0dc88444f41ae60b2f070ed02095754eb5a01df12256de"},
+ {file = "pydantic_core-2.33.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3dc625f4aa79713512d1976fe9f0bc99f706a9dee21dfd1810b4bbbf228d0e8a"},
+ {file = "pydantic_core-2.33.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:881b21b5549499972441da4758d662aeea93f1923f953e9cbaff14b8b9565aef"},
+ {file = "pydantic_core-2.33.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:bdc25f3681f7b78572699569514036afe3c243bc3059d3942624e936ec93450e"},
+ {file = "pydantic_core-2.33.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:fe5b32187cbc0c862ee201ad66c30cf218e5ed468ec8dc1cf49dec66e160cc4d"},
+ {file = "pydantic_core-2.33.2-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:bc7aee6f634a6f4a95676fcb5d6559a2c2a390330098dba5e5a5f28a2e4ada30"},
+ {file = "pydantic_core-2.33.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:235f45e5dbcccf6bd99f9f472858849f73d11120d76ea8707115415f8e5ebebf"},
+ {file = "pydantic_core-2.33.2-cp311-cp311-win32.whl", hash = "sha256:6368900c2d3ef09b69cb0b913f9f8263b03786e5b2a387706c5afb66800efd51"},
+ {file = "pydantic_core-2.33.2-cp311-cp311-win_amd64.whl", hash = "sha256:1e063337ef9e9820c77acc768546325ebe04ee38b08703244c1309cccc4f1bab"},
+ {file = "pydantic_core-2.33.2-cp311-cp311-win_arm64.whl", hash = "sha256:6b99022f1d19bc32a4c2a0d544fc9a76e3be90f0b3f4af413f87d38749300e65"},
+ {file = "pydantic_core-2.33.2-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:a7ec89dc587667f22b6a0b6579c249fca9026ce7c333fc142ba42411fa243cdc"},
+ {file = "pydantic_core-2.33.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:3c6db6e52c6d70aa0d00d45cdb9b40f0433b96380071ea80b09277dba021ddf7"},
+ {file = "pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e61206137cbc65e6d5256e1166f88331d3b6238e082d9f74613b9b765fb9025"},
+ {file = "pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:eb8c529b2819c37140eb51b914153063d27ed88e3bdc31b71198a198e921e011"},
+ {file = "pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:c52b02ad8b4e2cf14ca7b3d918f3eb0ee91e63b3167c32591e57c4317e134f8f"},
+ {file = "pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:96081f1605125ba0855dfda83f6f3df5ec90c61195421ba72223de35ccfb2f88"},
+ {file = "pydantic_core-2.33.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8f57a69461af2a5fa6e6bbd7a5f60d3b7e6cebb687f55106933188e79ad155c1"},
+ {file = "pydantic_core-2.33.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:572c7e6c8bb4774d2ac88929e3d1f12bc45714ae5ee6d9a788a9fb35e60bb04b"},
+ {file = "pydantic_core-2.33.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:db4b41f9bd95fbe5acd76d89920336ba96f03e149097365afe1cb092fceb89a1"},
+ {file = "pydantic_core-2.33.2-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:fa854f5cf7e33842a892e5c73f45327760bc7bc516339fda888c75ae60edaeb6"},
+ {file = "pydantic_core-2.33.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:5f483cfb75ff703095c59e365360cb73e00185e01aaea067cd19acffd2ab20ea"},
+ {file = "pydantic_core-2.33.2-cp312-cp312-win32.whl", hash = "sha256:9cb1da0f5a471435a7bc7e439b8a728e8b61e59784b2af70d7c169f8dd8ae290"},
+ {file = "pydantic_core-2.33.2-cp312-cp312-win_amd64.whl", hash = "sha256:f941635f2a3d96b2973e867144fde513665c87f13fe0e193c158ac51bfaaa7b2"},
+ {file = "pydantic_core-2.33.2-cp312-cp312-win_arm64.whl", hash = "sha256:cca3868ddfaccfbc4bfb1d608e2ccaaebe0ae628e1416aeb9c4d88c001bb45ab"},
+ {file = "pydantic_core-2.33.2-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:1082dd3e2d7109ad8b7da48e1d4710c8d06c253cbc4a27c1cff4fbcaa97a9e3f"},
+ {file = "pydantic_core-2.33.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f517ca031dfc037a9c07e748cefd8d96235088b83b4f4ba8939105d20fa1dcd6"},
+ {file = "pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0a9f2c9dd19656823cb8250b0724ee9c60a82f3cdf68a080979d13092a3b0fef"},
+ {file = "pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:2b0a451c263b01acebe51895bfb0e1cc842a5c666efe06cdf13846c7418caa9a"},
+ {file = "pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ea40a64d23faa25e62a70ad163571c0b342b8bf66d5fa612ac0dec4f069d916"},
+ {file = "pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0fb2d542b4d66f9470e8065c5469ec676978d625a8b7a363f07d9a501a9cb36a"},
+ {file = "pydantic_core-2.33.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9fdac5d6ffa1b5a83bca06ffe7583f5576555e6c8b3a91fbd25ea7780f825f7d"},
+ {file = "pydantic_core-2.33.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:04a1a413977ab517154eebb2d326da71638271477d6ad87a769102f7c2488c56"},
+ {file = "pydantic_core-2.33.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:c8e7af2f4e0194c22b5b37205bfb293d166a7344a5b0d0eaccebc376546d77d5"},
+ {file = "pydantic_core-2.33.2-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:5c92edd15cd58b3c2d34873597a1e20f13094f59cf88068adb18947df5455b4e"},
+ {file = "pydantic_core-2.33.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:65132b7b4a1c0beded5e057324b7e16e10910c106d43675d9bd87d4f38dde162"},
+ {file = "pydantic_core-2.33.2-cp313-cp313-win32.whl", hash = "sha256:52fb90784e0a242bb96ec53f42196a17278855b0f31ac7c3cc6f5c1ec4811849"},
+ {file = "pydantic_core-2.33.2-cp313-cp313-win_amd64.whl", hash = "sha256:c083a3bdd5a93dfe480f1125926afcdbf2917ae714bdb80b36d34318b2bec5d9"},
+ {file = "pydantic_core-2.33.2-cp313-cp313-win_arm64.whl", hash = "sha256:e80b087132752f6b3d714f041ccf74403799d3b23a72722ea2e6ba2e892555b9"},
+ {file = "pydantic_core-2.33.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:61c18fba8e5e9db3ab908620af374db0ac1baa69f0f32df4f61ae23f15e586ac"},
+ {file = "pydantic_core-2.33.2-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:95237e53bb015f67b63c91af7518a62a8660376a6a0db19b89acc77a4d6199f5"},
+ {file = "pydantic_core-2.33.2-cp313-cp313t-win_amd64.whl", hash = "sha256:c2fc0a768ef76c15ab9238afa6da7f69895bb5d1ee83aeea2e3509af4472d0b9"},
+ {file = "pydantic_core-2.33.2-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:a2b911a5b90e0374d03813674bf0a5fbbb7741570dcd4b4e85a2e48d17def29d"},
+ {file = "pydantic_core-2.33.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:6fa6dfc3e4d1f734a34710f391ae822e0a8eb8559a85c6979e14e65ee6ba2954"},
+ {file = "pydantic_core-2.33.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c54c939ee22dc8e2d545da79fc5381f1c020d6d3141d3bd747eab59164dc89fb"},
+ {file = "pydantic_core-2.33.2-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:53a57d2ed685940a504248187d5685e49eb5eef0f696853647bf37c418c538f7"},
+ {file = "pydantic_core-2.33.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:09fb9dd6571aacd023fe6aaca316bd01cf60ab27240d7eb39ebd66a3a15293b4"},
+ {file = "pydantic_core-2.33.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:0e6116757f7959a712db11f3e9c0a99ade00a5bbedae83cb801985aa154f071b"},
+ {file = "pydantic_core-2.33.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8d55ab81c57b8ff8548c3e4947f119551253f4e3787a7bbc0b6b3ca47498a9d3"},
+ {file = "pydantic_core-2.33.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c20c462aa4434b33a2661701b861604913f912254e441ab8d78d30485736115a"},
+ {file = "pydantic_core-2.33.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:44857c3227d3fb5e753d5fe4a3420d6376fa594b07b621e220cd93703fe21782"},
+ {file = "pydantic_core-2.33.2-cp39-cp39-musllinux_1_1_armv7l.whl", hash = "sha256:eb9b459ca4df0e5c87deb59d37377461a538852765293f9e6ee834f0435a93b9"},
+ {file = "pydantic_core-2.33.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:9fcd347d2cc5c23b06de6d3b7b8275be558a0c90549495c699e379a80bf8379e"},
+ {file = "pydantic_core-2.33.2-cp39-cp39-win32.whl", hash = "sha256:83aa99b1285bc8f038941ddf598501a86f1536789740991d7d8756e34f1e74d9"},
+ {file = "pydantic_core-2.33.2-cp39-cp39-win_amd64.whl", hash = "sha256:f481959862f57f29601ccced557cc2e817bce7533ab8e01a797a48b49c9692b3"},
+ {file = "pydantic_core-2.33.2-pp310-pypy310_pp73-macosx_10_12_x86_64.whl", hash = "sha256:5c4aa4e82353f65e548c476b37e64189783aa5384903bfea4f41580f255fddfa"},
+ {file = "pydantic_core-2.33.2-pp310-pypy310_pp73-macosx_11_0_arm64.whl", hash = "sha256:d946c8bf0d5c24bf4fe333af284c59a19358aa3ec18cb3dc4370080da1e8ad29"},
+ {file = "pydantic_core-2.33.2-pp310-pypy310_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:87b31b6846e361ef83fedb187bb5b4372d0da3f7e28d85415efa92d6125d6e6d"},
+ {file = "pydantic_core-2.33.2-pp310-pypy310_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:aa9d91b338f2df0508606f7009fde642391425189bba6d8c653afd80fd6bb64e"},
+ {file = "pydantic_core-2.33.2-pp310-pypy310_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:2058a32994f1fde4ca0480ab9d1e75a0e8c87c22b53a3ae66554f9af78f2fe8c"},
+ {file = "pydantic_core-2.33.2-pp310-pypy310_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:0e03262ab796d986f978f79c943fc5f620381be7287148b8010b4097f79a39ec"},
+ {file = "pydantic_core-2.33.2-pp310-pypy310_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:1a8695a8d00c73e50bff9dfda4d540b7dee29ff9b8053e38380426a85ef10052"},
+ {file = "pydantic_core-2.33.2-pp310-pypy310_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:fa754d1850735a0b0e03bcffd9d4b4343eb417e47196e4485d9cca326073a42c"},
+ {file = "pydantic_core-2.33.2-pp310-pypy310_pp73-win_amd64.whl", hash = "sha256:a11c8d26a50bfab49002947d3d237abe4d9e4b5bdc8846a63537b6488e197808"},
+ {file = "pydantic_core-2.33.2-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:dd14041875d09cc0f9308e37a6f8b65f5585cf2598a53aa0123df8b129d481f8"},
+ {file = "pydantic_core-2.33.2-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:d87c561733f66531dced0da6e864f44ebf89a8fba55f31407b00c2f7f9449593"},
+ {file = "pydantic_core-2.33.2-pp311-pypy311_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:2f82865531efd18d6e07a04a17331af02cb7a651583c418df8266f17a63c6612"},
+ {file = "pydantic_core-2.33.2-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2bfb5112df54209d820d7bf9317c7a6c9025ea52e49f46b6a2060104bba37de7"},
+ {file = "pydantic_core-2.33.2-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:64632ff9d614e5eecfb495796ad51b0ed98c453e447a76bcbeeb69615079fc7e"},
+ {file = "pydantic_core-2.33.2-pp311-pypy311_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:f889f7a40498cc077332c7ab6b4608d296d852182211787d4f3ee377aaae66e8"},
+ {file = "pydantic_core-2.33.2-pp311-pypy311_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:de4b83bb311557e439b9e186f733f6c645b9417c84e2eb8203f3f820a4b988bf"},
+ {file = "pydantic_core-2.33.2-pp311-pypy311_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:82f68293f055f51b51ea42fafc74b6aad03e70e191799430b90c13d643059ebb"},
+ {file = "pydantic_core-2.33.2-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:329467cecfb529c925cf2bbd4d60d2c509bc2fb52a20c1045bf09bb70971a9c1"},
+ {file = "pydantic_core-2.33.2-pp39-pypy39_pp73-macosx_10_12_x86_64.whl", hash = "sha256:87acbfcf8e90ca885206e98359d7dca4bcbb35abdc0ff66672a293e1d7a19101"},
+ {file = "pydantic_core-2.33.2-pp39-pypy39_pp73-macosx_11_0_arm64.whl", hash = "sha256:7f92c15cd1e97d4b12acd1cc9004fa092578acfa57b67ad5e43a197175d01a64"},
+ {file = "pydantic_core-2.33.2-pp39-pypy39_pp73-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d3f26877a748dc4251cfcfda9dfb5f13fcb034f5308388066bcfe9031b63ae7d"},
+ {file = "pydantic_core-2.33.2-pp39-pypy39_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:dac89aea9af8cd672fa7b510e7b8c33b0bba9a43186680550ccf23020f32d535"},
+ {file = "pydantic_core-2.33.2-pp39-pypy39_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:970919794d126ba8645f3837ab6046fb4e72bbc057b3709144066204c19a455d"},
+ {file = "pydantic_core-2.33.2-pp39-pypy39_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:3eb3fe62804e8f859c49ed20a8451342de53ed764150cb14ca71357c765dc2a6"},
+ {file = "pydantic_core-2.33.2-pp39-pypy39_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:3abcd9392a36025e3bd55f9bd38d908bd17962cc49bc6da8e7e96285336e2bca"},
+ {file = "pydantic_core-2.33.2-pp39-pypy39_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:3a1c81334778f9e3af2f8aeb7a960736e5cab1dfebfb26aabca09afd2906c039"},
+ {file = "pydantic_core-2.33.2-pp39-pypy39_pp73-win_amd64.whl", hash = "sha256:2807668ba86cb38c6817ad9bc66215ab8584d1d304030ce4f0887336f28a5e27"},
+ {file = "pydantic_core-2.33.2.tar.gz", hash = "sha256:7cb8bc3605c29176e1b105350d2e6474142d7c1bd1d9327c4a9bdb46bf827acc"},
+]
+
+[package.dependencies]
+typing-extensions = ">=4.6.0,<4.7.0 || >4.7.0"
+
+[[package]]
+name = "pyflakes"
+version = "3.2.0"
+description = "passive checker of Python programs"
+optional = false
+python-versions = ">=3.8"
+groups = ["dev"]
+files = [
+ {file = "pyflakes-3.2.0-py2.py3-none-any.whl", hash = "sha256:84b5be138a2dfbb40689ca07e2152deb896a65c3a3e24c251c5c62489568074a"},
+ {file = "pyflakes-3.2.0.tar.gz", hash = "sha256:1c61603ff154621fb2a9172037d84dca3500def8c8b630657d1701f026f8af3f"},
+]
+
+[[package]]
+name = "pygments"
+version = "2.19.2"
+description = "Pygments is a syntax highlighting package written in Python."
+optional = false
+python-versions = ">=3.8"
+groups = ["test"]
+files = [
+ {file = "pygments-2.19.2-py3-none-any.whl", hash = "sha256:86540386c03d588bb81d44bc3928634ff26449851e99741617ecb9037ee5ec0b"},
+ {file = "pygments-2.19.2.tar.gz", hash = "sha256:636cb2477cec7f8952536970bc533bc43743542f70392ae026374600add5b887"},
+]
+
+[package.extras]
+windows-terminal = ["colorama (>=0.4.6)"]
+
+[[package]]
+name = "pytest"
+version = "8.4.1"
+description = "pytest: simple powerful testing with Python"
+optional = false
+python-versions = ">=3.9"
+groups = ["test"]
+files = [
+ {file = "pytest-8.4.1-py3-none-any.whl", hash = "sha256:539c70ba6fcead8e78eebbf1115e8b589e7565830d7d006a8723f19ac8a0afb7"},
+ {file = "pytest-8.4.1.tar.gz", hash = "sha256:7c67fd69174877359ed9371ec3af8a3d2b04741818c51e5e99cc1742251fa93c"},
+]
+
+[package.dependencies]
+colorama = {version = ">=0.4", markers = "sys_platform == \"win32\""}
+exceptiongroup = {version = ">=1", markers = "python_version < \"3.11\""}
+iniconfig = ">=1"
+packaging = ">=20"
+pluggy = ">=1.5,<2"
+pygments = ">=2.7.2"
+tomli = {version = ">=1", markers = "python_version < \"3.11\""}
+
+[package.extras]
+dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "requests", "setuptools", "xmlschema"]
+
+[[package]]
+name = "pytest-asyncio"
+version = "0.23.8"
+description = "Pytest support for asyncio"
+optional = false
+python-versions = ">=3.8"
+groups = ["test"]
+files = [
+ {file = "pytest_asyncio-0.23.8-py3-none-any.whl", hash = "sha256:50265d892689a5faefb84df80819d1ecef566eb3549cf915dfb33569359d1ce2"},
+ {file = "pytest_asyncio-0.23.8.tar.gz", hash = "sha256:759b10b33a6dc61cce40a8bd5205e302978bbbcc00e279a8b61d9a6a3c82e4d3"},
+]
+
+[package.dependencies]
+pytest = ">=7.0.0,<9"
+
+[package.extras]
+docs = ["sphinx (>=5.3)", "sphinx-rtd-theme (>=1.0)"]
+testing = ["coverage (>=6.2)", "hypothesis (>=5.7.1)"]
+
+[[package]]
+name = "pytest-recording"
+version = "0.13.4"
+description = "A pytest plugin powered by VCR.py to record and replay HTTP traffic"
+optional = false
+python-versions = ">=3.9"
+groups = ["test"]
+files = [
+ {file = "pytest_recording-0.13.4-py3-none-any.whl", hash = "sha256:ad49a434b51b1c4f78e85b1e6b74fdcc2a0a581ca16e52c798c6ace971f7f439"},
+ {file = "pytest_recording-0.13.4.tar.gz", hash = "sha256:568d64b2a85992eec4ae0a419c855d5fd96782c5fb016784d86f18053792768c"},
+]
+
+[package.dependencies]
+pytest = ">=3.5.0"
+vcrpy = ">=2.0.1"
+
+[package.extras]
+dev = ["pytest-httpbin", "pytest-mock", "requests", "werkzeug (==3.1.3)"]
+tests = ["pytest-httpbin", "pytest-mock", "requests", "werkzeug (==3.1.3)"]
+
+[[package]]
+name = "pytest-sugar"
+version = "1.0.0"
+description = "pytest-sugar is a plugin for pytest that changes the default look and feel of pytest (e.g. progressbar, show tests that fail instantly)."
+optional = false
+python-versions = "*"
+groups = ["test"]
+files = [
+ {file = "pytest-sugar-1.0.0.tar.gz", hash = "sha256:6422e83258f5b0c04ce7c632176c7732cab5fdb909cb39cca5c9139f81276c0a"},
+ {file = "pytest_sugar-1.0.0-py3-none-any.whl", hash = "sha256:70ebcd8fc5795dc457ff8b69d266a4e2e8a74ae0c3edc749381c64b5246c8dfd"},
+]
+
+[package.dependencies]
+packaging = ">=21.3"
+pytest = ">=6.2.0"
+termcolor = ">=2.1.0"
+
+[package.extras]
+dev = ["black", "flake8", "pre-commit"]
+
+[[package]]
+name = "python-dotenv"
+version = "1.1.1"
+description = "Read key-value pairs from a .env file and set them as environment variables"
+optional = false
+python-versions = ">=3.9"
+groups = ["test"]
+files = [
+ {file = "python_dotenv-1.1.1-py3-none-any.whl", hash = "sha256:31f23644fe2602f88ff55e1f5c79ba497e01224ee7737937930c448e4d0e24dc"},
+ {file = "python_dotenv-1.1.1.tar.gz", hash = "sha256:a8a6399716257f45be6a007360200409fce5cda2661e3dec71d23dc15f6189ab"},
+]
+
+[package.extras]
+cli = ["click (>=5.0)"]
+
+[[package]]
+name = "pyyaml"
+version = "6.0.2"
+description = "YAML parser and emitter for Python"
+optional = false
+python-versions = ">=3.8"
+groups = ["test"]
+files = [
+ {file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"},
+ {file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"},
+ {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8824b5a04a04a047e72eea5cec3bc266db09e35de6bdfe34c9436ac5ee27d237"},
+ {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:7c36280e6fb8385e520936c3cb3b8042851904eba0e58d277dca80a5cfed590b"},
+ {file = "PyYAML-6.0.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ec031d5d2feb36d1d1a24380e4db6d43695f3748343d99434e6f5f9156aaa2ed"},
+ {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:936d68689298c36b53b29f23c6dbb74de12b4ac12ca6cfe0e047bedceea56180"},
+ {file = "PyYAML-6.0.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:23502f431948090f597378482b4812b0caae32c22213aecf3b55325e049a6c68"},
+ {file = "PyYAML-6.0.2-cp310-cp310-win32.whl", hash = "sha256:2e99c6826ffa974fe6e27cdb5ed0021786b03fc98e5ee3c5bfe1fd5015f42b99"},
+ {file = "PyYAML-6.0.2-cp310-cp310-win_amd64.whl", hash = "sha256:a4d3091415f010369ae4ed1fc6b79def9416358877534caf6a0fdd2146c87a3e"},
+ {file = "PyYAML-6.0.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:cc1c1159b3d456576af7a3e4d1ba7e6924cb39de8f67111c735f6fc832082774"},
+ {file = "PyYAML-6.0.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:1e2120ef853f59c7419231f3bf4e7021f1b936f6ebd222406c3b60212205d2ee"},
+ {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5d225db5a45f21e78dd9358e58a98702a0302f2659a3c6cd320564b75b86f47c"},
+ {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5ac9328ec4831237bec75defaf839f7d4564be1e6b25ac710bd1a96321cc8317"},
+ {file = "PyYAML-6.0.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3ad2a3decf9aaba3d29c8f537ac4b243e36bef957511b4766cb0057d32b0be85"},
+ {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:ff3824dc5261f50c9b0dfb3be22b4567a6f938ccce4587b38952d85fd9e9afe4"},
+ {file = "PyYAML-6.0.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:797b4f722ffa07cc8d62053e4cff1486fa6dc094105d13fea7b1de7d8bf71c9e"},
+ {file = "PyYAML-6.0.2-cp311-cp311-win32.whl", hash = "sha256:11d8f3dd2b9c1207dcaf2ee0bbbfd5991f571186ec9cc78427ba5bd32afae4b5"},
+ {file = "PyYAML-6.0.2-cp311-cp311-win_amd64.whl", hash = "sha256:e10ce637b18caea04431ce14fabcf5c64a1c61ec9c56b071a4b7ca131ca52d44"},
+ {file = "PyYAML-6.0.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:c70c95198c015b85feafc136515252a261a84561b7b1d51e3384e0655ddf25ab"},
+ {file = "PyYAML-6.0.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:ce826d6ef20b1bc864f0a68340c8b3287705cae2f8b4b1d932177dcc76721725"},
+ {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f71ea527786de97d1a0cc0eacd1defc0985dcf6b3f17bb77dcfc8c34bec4dc5"},
+ {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9b22676e8097e9e22e36d6b7bda33190d0d400f345f23d4065d48f4ca7ae0425"},
+ {file = "PyYAML-6.0.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:80bab7bfc629882493af4aa31a4cfa43a4c57c83813253626916b8c7ada83476"},
+ {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:0833f8694549e586547b576dcfaba4a6b55b9e96098b36cdc7ebefe667dfed48"},
+ {file = "PyYAML-6.0.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8b9c7197f7cb2738065c481a0461e50ad02f18c78cd75775628afb4d7137fb3b"},
+ {file = "PyYAML-6.0.2-cp312-cp312-win32.whl", hash = "sha256:ef6107725bd54b262d6dedcc2af448a266975032bc85ef0172c5f059da6325b4"},
+ {file = "PyYAML-6.0.2-cp312-cp312-win_amd64.whl", hash = "sha256:7e7401d0de89a9a855c839bc697c079a4af81cf878373abd7dc625847d25cbd8"},
+ {file = "PyYAML-6.0.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:efdca5630322a10774e8e98e1af481aad470dd62c3170801852d752aa7a783ba"},
+ {file = "PyYAML-6.0.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:50187695423ffe49e2deacb8cd10510bc361faac997de9efef88badc3bb9e2d1"},
+ {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0ffe8360bab4910ef1b9e87fb812d8bc0a308b0d0eef8c8f44e0254ab3b07133"},
+ {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:17e311b6c678207928d649faa7cb0d7b4c26a0ba73d41e99c4fff6b6c3276484"},
+ {file = "PyYAML-6.0.2-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:70b189594dbe54f75ab3a1acec5f1e3faa7e8cf2f1e08d9b561cb41b845f69d5"},
+ {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:41e4e3953a79407c794916fa277a82531dd93aad34e29c2a514c2c0c5fe971cc"},
+ {file = "PyYAML-6.0.2-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:68ccc6023a3400877818152ad9a1033e3db8625d899c72eacb5a668902e4d652"},
+ {file = "PyYAML-6.0.2-cp313-cp313-win32.whl", hash = "sha256:bc2fa7c6b47d6bc618dd7fb02ef6fdedb1090ec036abab80d4681424b84c1183"},
+ {file = "PyYAML-6.0.2-cp313-cp313-win_amd64.whl", hash = "sha256:8388ee1976c416731879ac16da0aff3f63b286ffdd57cdeb95f3f2e085687563"},
+ {file = "PyYAML-6.0.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:24471b829b3bf607e04e88d79542a9d48bb037c2267d7927a874e6c205ca7e9a"},
+ {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d7fded462629cfa4b685c5416b949ebad6cec74af5e2d42905d41e257e0869f5"},
+ {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:d84a1718ee396f54f3a086ea0a66d8e552b2ab2017ef8b420e92edbc841c352d"},
+ {file = "PyYAML-6.0.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9056c1ecd25795207ad294bcf39f2db3d845767be0ea6e6a34d856f006006083"},
+ {file = "PyYAML-6.0.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:82d09873e40955485746739bcb8b4586983670466c23382c19cffecbf1fd8706"},
+ {file = "PyYAML-6.0.2-cp38-cp38-win32.whl", hash = "sha256:43fa96a3ca0d6b1812e01ced1044a003533c47f6ee8aca31724f78e93ccc089a"},
+ {file = "PyYAML-6.0.2-cp38-cp38-win_amd64.whl", hash = "sha256:01179a4a8559ab5de078078f37e5c1a30d76bb88519906844fd7bdea1b7729ff"},
+ {file = "PyYAML-6.0.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:688ba32a1cffef67fd2e9398a2efebaea461578b0923624778664cc1c914db5d"},
+ {file = "PyYAML-6.0.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:a8786accb172bd8afb8be14490a16625cbc387036876ab6ba70912730faf8e1f"},
+ {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d8e03406cac8513435335dbab54c0d385e4a49e4945d2909a581c83647ca0290"},
+ {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f753120cb8181e736c57ef7636e83f31b9c0d1722c516f7e86cf15b7aa57ff12"},
+ {file = "PyYAML-6.0.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:3b1fdb9dc17f5a7677423d508ab4f243a726dea51fa5e70992e59a7411c89d19"},
+ {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:0b69e4ce7a131fe56b7e4d770c67429700908fc0752af059838b1cfb41960e4e"},
+ {file = "PyYAML-6.0.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:a9f8c2e67970f13b16084e04f134610fd1d374bf477b17ec1599185cf611d725"},
+ {file = "PyYAML-6.0.2-cp39-cp39-win32.whl", hash = "sha256:6395c297d42274772abc367baaa79683958044e5d3835486c16da75d2a694631"},
+ {file = "PyYAML-6.0.2-cp39-cp39-win_amd64.whl", hash = "sha256:39693e1f8320ae4f43943590b49779ffb98acb81f788220ea932a6b6c51004d8"},
+ {file = "pyyaml-6.0.2.tar.gz", hash = "sha256:d584d9ec91ad65861cc08d42e834324ef890a082e591037abe114850ff7bbc3e"},
+]
+
+[[package]]
+name = "sniffio"
+version = "1.3.1"
+description = "Sniff out which async library your code is running under"
+optional = false
+python-versions = ">=3.7"
+groups = ["test"]
+files = [
+ {file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"},
+ {file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"},
+]
+
+[[package]]
+name = "termcolor"
+version = "3.1.0"
+description = "ANSI color formatting for output in terminal"
+optional = false
+python-versions = ">=3.9"
+groups = ["test"]
+files = [
+ {file = "termcolor-3.1.0-py3-none-any.whl", hash = "sha256:591dd26b5c2ce03b9e43f391264626557873ce1d379019786f99b0c2bee140aa"},
+ {file = "termcolor-3.1.0.tar.gz", hash = "sha256:6a6dd7fbee581909eeec6a756cff1d7f7c376063b14e4a298dc4980309e55970"},
+]
+
+[package.extras]
+tests = ["pytest", "pytest-cov"]
+
+[[package]]
+name = "tomli"
+version = "2.2.1"
+description = "A lil' TOML parser"
+optional = false
+python-versions = ">=3.8"
+groups = ["dev", "test"]
+markers = "python_version == \"3.10\""
+files = [
+ {file = "tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249"},
+ {file = "tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6"},
+ {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ece47d672db52ac607a3d9599a9d48dcb2f2f735c6c2d1f34130085bb12b112a"},
+ {file = "tomli-2.2.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6972ca9c9cc9f0acaa56a8ca1ff51e7af152a9f87fb64623e31d5c83700080ee"},
+ {file = "tomli-2.2.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c954d2250168d28797dd4e3ac5cf812a406cd5a92674ee4c8f123c889786aa8e"},
+ {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:8dd28b3e155b80f4d54beb40a441d366adcfe740969820caf156c019fb5c7ec4"},
+ {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:e59e304978767a54663af13c07b3d1af22ddee3bb2fb0618ca1593e4f593a106"},
+ {file = "tomli-2.2.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:33580bccab0338d00994d7f16f4c4ec25b776af3ffaac1ed74e0b3fc95e885a8"},
+ {file = "tomli-2.2.1-cp311-cp311-win32.whl", hash = "sha256:465af0e0875402f1d226519c9904f37254b3045fc5084697cefb9bdde1ff99ff"},
+ {file = "tomli-2.2.1-cp311-cp311-win_amd64.whl", hash = "sha256:2d0f2fdd22b02c6d81637a3c95f8cd77f995846af7414c5c4b8d0545afa1bc4b"},
+ {file = "tomli-2.2.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:4a8f6e44de52d5e6c657c9fe83b562f5f4256d8ebbfe4ff922c495620a7f6cea"},
+ {file = "tomli-2.2.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8d57ca8095a641b8237d5b079147646153d22552f1c637fd3ba7f4b0b29167a8"},
+ {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:4e340144ad7ae1533cb897d406382b4b6fede8890a03738ff1683af800d54192"},
+ {file = "tomli-2.2.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:db2b95f9de79181805df90bedc5a5ab4c165e6ec3fe99f970d0e302f384ad222"},
+ {file = "tomli-2.2.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:40741994320b232529c802f8bc86da4e1aa9f413db394617b9a256ae0f9a7f77"},
+ {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:400e720fe168c0f8521520190686ef8ef033fb19fc493da09779e592861b78c6"},
+ {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:02abe224de6ae62c19f090f68da4e27b10af2b93213d36cf44e6e1c5abd19fdd"},
+ {file = "tomli-2.2.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:b82ebccc8c8a36f2094e969560a1b836758481f3dc360ce9a3277c65f374285e"},
+ {file = "tomli-2.2.1-cp312-cp312-win32.whl", hash = "sha256:889f80ef92701b9dbb224e49ec87c645ce5df3fa2cc548664eb8a25e03127a98"},
+ {file = "tomli-2.2.1-cp312-cp312-win_amd64.whl", hash = "sha256:7fc04e92e1d624a4a63c76474610238576942d6b8950a2d7f908a340494e67e4"},
+ {file = "tomli-2.2.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:f4039b9cbc3048b2416cc57ab3bda989a6fcf9b36cf8937f01a6e731b64f80d7"},
+ {file = "tomli-2.2.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:286f0ca2ffeeb5b9bd4fcc8d6c330534323ec51b2f52da063b11c502da16f30c"},
+ {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a92ef1a44547e894e2a17d24e7557a5e85a9e1d0048b0b5e7541f76c5032cb13"},
+ {file = "tomli-2.2.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9316dc65bed1684c9a98ee68759ceaed29d229e985297003e494aa825ebb0281"},
+ {file = "tomli-2.2.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:e85e99945e688e32d5a35c1ff38ed0b3f41f43fad8df0bdf79f72b2ba7bc5272"},
+ {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:ac065718db92ca818f8d6141b5f66369833d4a80a9d74435a268c52bdfa73140"},
+ {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:d920f33822747519673ee656a4b6ac33e382eca9d331c87770faa3eef562aeb2"},
+ {file = "tomli-2.2.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:a198f10c4d1b1375d7687bc25294306e551bf1abfa4eace6650070a5c1ae2744"},
+ {file = "tomli-2.2.1-cp313-cp313-win32.whl", hash = "sha256:d3f5614314d758649ab2ab3a62d4f2004c825922f9e370b29416484086b264ec"},
+ {file = "tomli-2.2.1-cp313-cp313-win_amd64.whl", hash = "sha256:a38aa0308e754b0e3c67e344754dff64999ff9b513e691d0e786265c93583c69"},
+ {file = "tomli-2.2.1-py3-none-any.whl", hash = "sha256:cb55c73c5f4408779d0cf3eef9f762b9c9f147a77de7b258bef0a5628adc85cc"},
+ {file = "tomli-2.2.1.tar.gz", hash = "sha256:cd45e1dc79c835ce60f7404ec8119f2eb06d38b1deba146f07ced3bbc44505ff"},
+]
+
+[[package]]
+name = "typing-extensions"
+version = "4.14.1"
+description = "Backported and Experimental Type Hints for Python 3.9+"
+optional = false
+python-versions = ">=3.9"
+groups = ["main", "dev", "test"]
+files = [
+ {file = "typing_extensions-4.14.1-py3-none-any.whl", hash = "sha256:d1e1e3b58374dc93031d6eda2420a48ea44a36c2b4766a4fdeb3710755731d76"},
+ {file = "typing_extensions-4.14.1.tar.gz", hash = "sha256:38b39f4aeeab64884ce9f74c94263ef78f3c22467c8724005483154c26648d36"},
+]
+markers = {dev = "python_version == \"3.10\""}
+
+[[package]]
+name = "typing-inspection"
+version = "0.4.1"
+description = "Runtime typing introspection tools"
+optional = false
+python-versions = ">=3.9"
+groups = ["test"]
+files = [
+ {file = "typing_inspection-0.4.1-py3-none-any.whl", hash = "sha256:389055682238f53b04f7badcb49b989835495a96700ced5dab2d8feae4b26f51"},
+ {file = "typing_inspection-0.4.1.tar.gz", hash = "sha256:6ae134cc0203c33377d43188d4064e9b357dba58cff3185f22924610e70a9d28"},
+]
+
+[package.dependencies]
+typing-extensions = ">=4.12.0"
+
+[[package]]
+name = "urllib3"
+version = "1.26.20"
+description = "HTTP library with thread-safe connection pooling, file post, and more."
+optional = false
+python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,>=2.7"
+groups = ["test"]
+markers = "platform_python_implementation == \"PyPy\""
+files = [
+ {file = "urllib3-1.26.20-py2.py3-none-any.whl", hash = "sha256:0ed14ccfbf1c30a9072c7ca157e4319b70d65f623e91e7b32fadb2853431016e"},
+ {file = "urllib3-1.26.20.tar.gz", hash = "sha256:40c2dc0c681e47eb8f90e7e27bf6ff7df2e677421fd46756da1161c39ca70d32"},
+]
+
+[package.extras]
+brotli = ["brotli (==1.0.9) ; os_name != \"nt\" and python_version < \"3\" and platform_python_implementation == \"CPython\"", "brotli (>=1.0.9) ; python_version >= \"3\" and platform_python_implementation == \"CPython\"", "brotlicffi (>=0.8.0) ; (os_name != \"nt\" or python_version >= \"3\") and platform_python_implementation != \"CPython\"", "brotlipy (>=0.6.0) ; os_name == \"nt\" and python_version < \"3\""]
+secure = ["certifi", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "ipaddress ; python_version == \"2.7\"", "pyOpenSSL (>=0.14)", "urllib3-secure-extra"]
+socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"]
+
+[[package]]
+name = "urllib3"
+version = "2.5.0"
+description = "HTTP library with thread-safe connection pooling, file post, and more."
+optional = false
+python-versions = ">=3.9"
+groups = ["test"]
+markers = "platform_python_implementation != \"PyPy\""
+files = [
+ {file = "urllib3-2.5.0-py3-none-any.whl", hash = "sha256:e6b01673c0fa6a13e374b50871808eb3bf7046c4b125b216f6bf1cc604cff0dc"},
+ {file = "urllib3-2.5.0.tar.gz", hash = "sha256:3fc47733c7e419d4bc3f6b3dc2b4f890bb743906a30d56ba4a5bfa4bbff92760"},
+]
+
+[package.extras]
+brotli = ["brotli (>=1.0.9) ; platform_python_implementation == \"CPython\"", "brotlicffi (>=0.8.0) ; platform_python_implementation != \"CPython\""]
+h2 = ["h2 (>=4,<5)"]
+socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"]
+zstd = ["zstandard (>=0.18.0)"]
+
+[[package]]
+name = "vcrpy"
+version = "6.0.2"
+description = "Automatically mock your HTTP interactions to simplify and speed up testing"
+optional = false
+python-versions = ">=3.8"
+groups = ["test"]
+files = [
+ {file = "vcrpy-6.0.2-py2.py3-none-any.whl", hash = "sha256:40370223861181bc76a5e5d4b743a95058bb1ad516c3c08570316ab592f56cad"},
+ {file = "vcrpy-6.0.2.tar.gz", hash = "sha256:88e13d9111846745898411dbc74a75ce85870af96dd320d75f1ee33158addc09"},
+]
+
+[package.dependencies]
+PyYAML = "*"
+urllib3 = [
+ {version = "*", markers = "platform_python_implementation != \"PyPy\" and python_version >= \"3.10\""},
+ {version = "<2", markers = "platform_python_implementation == \"PyPy\""},
+]
+wrapt = "*"
+yarl = "*"
+
+[package.extras]
+tests = ["Werkzeug (==2.0.3)", "aiohttp", "boto3", "httplib2", "httpx", "pytest", "pytest-aiohttp", "pytest-asyncio", "pytest-cov", "pytest-httpbin", "requests (>=2.22.0)", "tornado", "urllib3"]
+
+[[package]]
+name = "wrapt"
+version = "1.17.2"
+description = "Module for decorators, wrappers and monkey patching."
+optional = false
+python-versions = ">=3.8"
+groups = ["main", "test"]
+files = [
+ {file = "wrapt-1.17.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3d57c572081fed831ad2d26fd430d565b76aa277ed1d30ff4d40670b1c0dd984"},
+ {file = "wrapt-1.17.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b5e251054542ae57ac7f3fba5d10bfff615b6c2fb09abeb37d2f1463f841ae22"},
+ {file = "wrapt-1.17.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:80dd7db6a7cb57ffbc279c4394246414ec99537ae81ffd702443335a61dbf3a7"},
+ {file = "wrapt-1.17.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0a6e821770cf99cc586d33833b2ff32faebdbe886bd6322395606cf55153246c"},
+ {file = "wrapt-1.17.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:b60fb58b90c6d63779cb0c0c54eeb38941bae3ecf7a73c764c52c88c2dcb9d72"},
+ {file = "wrapt-1.17.2-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b870b5df5b71d8c3359d21be8f0d6c485fa0ebdb6477dda51a1ea54a9b558061"},
+ {file = "wrapt-1.17.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:4011d137b9955791f9084749cba9a367c68d50ab8d11d64c50ba1688c9b457f2"},
+ {file = "wrapt-1.17.2-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:1473400e5b2733e58b396a04eb7f35f541e1fb976d0c0724d0223dd607e0f74c"},
+ {file = "wrapt-1.17.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:3cedbfa9c940fdad3e6e941db7138e26ce8aad38ab5fe9dcfadfed9db7a54e62"},
+ {file = "wrapt-1.17.2-cp310-cp310-win32.whl", hash = "sha256:582530701bff1dec6779efa00c516496968edd851fba224fbd86e46cc6b73563"},
+ {file = "wrapt-1.17.2-cp310-cp310-win_amd64.whl", hash = "sha256:58705da316756681ad3c9c73fd15499aa4d8c69f9fd38dc8a35e06c12468582f"},
+ {file = "wrapt-1.17.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:ff04ef6eec3eee8a5efef2401495967a916feaa353643defcc03fc74fe213b58"},
+ {file = "wrapt-1.17.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4db983e7bca53819efdbd64590ee96c9213894272c776966ca6306b73e4affda"},
+ {file = "wrapt-1.17.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:9abc77a4ce4c6f2a3168ff34b1da9b0f311a8f1cfd694ec96b0603dff1c79438"},
+ {file = "wrapt-1.17.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0b929ac182f5ace000d459c59c2c9c33047e20e935f8e39371fa6e3b85d56f4a"},
+ {file = "wrapt-1.17.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:f09b286faeff3c750a879d336fb6d8713206fc97af3adc14def0cdd349df6000"},
+ {file = "wrapt-1.17.2-cp311-cp311-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1a7ed2d9d039bd41e889f6fb9364554052ca21ce823580f6a07c4ec245c1f5d6"},
+ {file = "wrapt-1.17.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:129a150f5c445165ff941fc02ee27df65940fcb8a22a61828b1853c98763a64b"},
+ {file = "wrapt-1.17.2-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:1fb5699e4464afe5c7e65fa51d4f99e0b2eadcc176e4aa33600a3df7801d6662"},
+ {file = "wrapt-1.17.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:9a2bce789a5ea90e51a02dfcc39e31b7f1e662bc3317979aa7e5538e3a034f72"},
+ {file = "wrapt-1.17.2-cp311-cp311-win32.whl", hash = "sha256:4afd5814270fdf6380616b321fd31435a462019d834f83c8611a0ce7484c7317"},
+ {file = "wrapt-1.17.2-cp311-cp311-win_amd64.whl", hash = "sha256:acc130bc0375999da18e3d19e5a86403667ac0c4042a094fefb7eec8ebac7cf3"},
+ {file = "wrapt-1.17.2-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:d5e2439eecc762cd85e7bd37161d4714aa03a33c5ba884e26c81559817ca0925"},
+ {file = "wrapt-1.17.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:3fc7cb4c1c744f8c05cd5f9438a3caa6ab94ce8344e952d7c45a8ed59dd88392"},
+ {file = "wrapt-1.17.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:8fdbdb757d5390f7c675e558fd3186d590973244fab0c5fe63d373ade3e99d40"},
+ {file = "wrapt-1.17.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5bb1d0dbf99411f3d871deb6faa9aabb9d4e744d67dcaaa05399af89d847a91d"},
+ {file = "wrapt-1.17.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d18a4865f46b8579d44e4fe1e2bcbc6472ad83d98e22a26c963d46e4c125ef0b"},
+ {file = "wrapt-1.17.2-cp312-cp312-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc570b5f14a79734437cb7b0500376b6b791153314986074486e0b0fa8d71d98"},
+ {file = "wrapt-1.17.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:6d9187b01bebc3875bac9b087948a2bccefe464a7d8f627cf6e48b1bbae30f82"},
+ {file = "wrapt-1.17.2-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:9e8659775f1adf02eb1e6f109751268e493c73716ca5761f8acb695e52a756ae"},
+ {file = "wrapt-1.17.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:e8b2816ebef96d83657b56306152a93909a83f23994f4b30ad4573b00bd11bb9"},
+ {file = "wrapt-1.17.2-cp312-cp312-win32.whl", hash = "sha256:468090021f391fe0056ad3e807e3d9034e0fd01adcd3bdfba977b6fdf4213ea9"},
+ {file = "wrapt-1.17.2-cp312-cp312-win_amd64.whl", hash = "sha256:ec89ed91f2fa8e3f52ae53cd3cf640d6feff92ba90d62236a81e4e563ac0e991"},
+ {file = "wrapt-1.17.2-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:6ed6ffac43aecfe6d86ec5b74b06a5be33d5bb9243d055141e8cabb12aa08125"},
+ {file = "wrapt-1.17.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:35621ae4c00e056adb0009f8e86e28eb4a41a4bfa8f9bfa9fca7d343fe94f998"},
+ {file = "wrapt-1.17.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:a604bf7a053f8362d27eb9fefd2097f82600b856d5abe996d623babd067b1ab5"},
+ {file = "wrapt-1.17.2-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5cbabee4f083b6b4cd282f5b817a867cf0b1028c54d445b7ec7cfe6505057cf8"},
+ {file = "wrapt-1.17.2-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:49703ce2ddc220df165bd2962f8e03b84c89fee2d65e1c24a7defff6f988f4d6"},
+ {file = "wrapt-1.17.2-cp313-cp313-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8112e52c5822fc4253f3901b676c55ddf288614dc7011634e2719718eaa187dc"},
+ {file = "wrapt-1.17.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:9fee687dce376205d9a494e9c121e27183b2a3df18037f89d69bd7b35bcf59e2"},
+ {file = "wrapt-1.17.2-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:18983c537e04d11cf027fbb60a1e8dfd5190e2b60cc27bc0808e653e7b218d1b"},
+ {file = "wrapt-1.17.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:703919b1633412ab54bcf920ab388735832fdcb9f9a00ae49387f0fe67dad504"},
+ {file = "wrapt-1.17.2-cp313-cp313-win32.whl", hash = "sha256:abbb9e76177c35d4e8568e58650aa6926040d6a9f6f03435b7a522bf1c487f9a"},
+ {file = "wrapt-1.17.2-cp313-cp313-win_amd64.whl", hash = "sha256:69606d7bb691b50a4240ce6b22ebb319c1cfb164e5f6569835058196e0f3a845"},
+ {file = "wrapt-1.17.2-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:4a721d3c943dae44f8e243b380cb645a709ba5bd35d3ad27bc2ed947e9c68192"},
+ {file = "wrapt-1.17.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:766d8bbefcb9e00c3ac3b000d9acc51f1b399513f44d77dfe0eb026ad7c9a19b"},
+ {file = "wrapt-1.17.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:e496a8ce2c256da1eb98bd15803a79bee00fc351f5dfb9ea82594a3f058309e0"},
+ {file = "wrapt-1.17.2-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:40d615e4fe22f4ad3528448c193b218e077656ca9ccb22ce2cb20db730f8d306"},
+ {file = "wrapt-1.17.2-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a5aaeff38654462bc4b09023918b7f21790efb807f54c000a39d41d69cf552cb"},
+ {file = "wrapt-1.17.2-cp313-cp313t-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9a7d15bbd2bc99e92e39f49a04653062ee6085c0e18b3b7512a4f2fe91f2d681"},
+ {file = "wrapt-1.17.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:e3890b508a23299083e065f435a492b5435eba6e304a7114d2f919d400888cc6"},
+ {file = "wrapt-1.17.2-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:8c8b293cd65ad716d13d8dd3624e42e5a19cc2a2f1acc74b30c2c13f15cb61a6"},
+ {file = "wrapt-1.17.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:4c82b8785d98cdd9fed4cac84d765d234ed3251bd6afe34cb7ac523cb93e8b4f"},
+ {file = "wrapt-1.17.2-cp313-cp313t-win32.whl", hash = "sha256:13e6afb7fe71fe7485a4550a8844cc9ffbe263c0f1a1eea569bc7091d4898555"},
+ {file = "wrapt-1.17.2-cp313-cp313t-win_amd64.whl", hash = "sha256:eaf675418ed6b3b31c7a989fd007fa7c3be66ce14e5c3b27336383604c9da85c"},
+ {file = "wrapt-1.17.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:5c803c401ea1c1c18de70a06a6f79fcc9c5acfc79133e9869e730ad7f8ad8ef9"},
+ {file = "wrapt-1.17.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:f917c1180fdb8623c2b75a99192f4025e412597c50b2ac870f156de8fb101119"},
+ {file = "wrapt-1.17.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:ecc840861360ba9d176d413a5489b9a0aff6d6303d7e733e2c4623cfa26904a6"},
+ {file = "wrapt-1.17.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb87745b2e6dc56361bfde481d5a378dc314b252a98d7dd19a651a3fa58f24a9"},
+ {file = "wrapt-1.17.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:58455b79ec2661c3600e65c0a716955adc2410f7383755d537584b0de41b1d8a"},
+ {file = "wrapt-1.17.2-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b4e42a40a5e164cbfdb7b386c966a588b1047558a990981ace551ed7e12ca9c2"},
+ {file = "wrapt-1.17.2-cp38-cp38-musllinux_1_2_aarch64.whl", hash = "sha256:91bd7d1773e64019f9288b7a5101f3ae50d3d8e6b1de7edee9c2ccc1d32f0c0a"},
+ {file = "wrapt-1.17.2-cp38-cp38-musllinux_1_2_i686.whl", hash = "sha256:bb90fb8bda722a1b9d48ac1e6c38f923ea757b3baf8ebd0c82e09c5c1a0e7a04"},
+ {file = "wrapt-1.17.2-cp38-cp38-musllinux_1_2_x86_64.whl", hash = "sha256:08e7ce672e35efa54c5024936e559469436f8b8096253404faeb54d2a878416f"},
+ {file = "wrapt-1.17.2-cp38-cp38-win32.whl", hash = "sha256:410a92fefd2e0e10d26210e1dfb4a876ddaf8439ef60d6434f21ef8d87efc5b7"},
+ {file = "wrapt-1.17.2-cp38-cp38-win_amd64.whl", hash = "sha256:95c658736ec15602da0ed73f312d410117723914a5c91a14ee4cdd72f1d790b3"},
+ {file = "wrapt-1.17.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:99039fa9e6306880572915728d7f6c24a86ec57b0a83f6b2491e1d8ab0235b9a"},
+ {file = "wrapt-1.17.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:2696993ee1eebd20b8e4ee4356483c4cb696066ddc24bd70bcbb80fa56ff9061"},
+ {file = "wrapt-1.17.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:612dff5db80beef9e649c6d803a8d50c409082f1fedc9dbcdfde2983b2025b82"},
+ {file = "wrapt-1.17.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:62c2caa1585c82b3f7a7ab56afef7b3602021d6da34fbc1cf234ff139fed3cd9"},
+ {file = "wrapt-1.17.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c958bcfd59bacc2d0249dcfe575e71da54f9dcf4a8bdf89c4cb9a68a1170d73f"},
+ {file = "wrapt-1.17.2-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fc78a84e2dfbc27afe4b2bd7c80c8db9bca75cc5b85df52bfe634596a1da846b"},
+ {file = "wrapt-1.17.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:ba0f0eb61ef00ea10e00eb53a9129501f52385c44853dbd6c4ad3f403603083f"},
+ {file = "wrapt-1.17.2-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:1e1fe0e6ab7775fd842bc39e86f6dcfc4507ab0ffe206093e76d61cde37225c8"},
+ {file = "wrapt-1.17.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:c86563182421896d73858e08e1db93afdd2b947a70064b813d515d66549e15f9"},
+ {file = "wrapt-1.17.2-cp39-cp39-win32.whl", hash = "sha256:f393cda562f79828f38a819f4788641ac7c4085f30f1ce1a68672baa686482bb"},
+ {file = "wrapt-1.17.2-cp39-cp39-win_amd64.whl", hash = "sha256:36ccae62f64235cf8ddb682073a60519426fdd4725524ae38874adf72b5f2aeb"},
+ {file = "wrapt-1.17.2-py3-none-any.whl", hash = "sha256:b18f2d1533a71f069c7f82d524a52599053d4c7166e9dd374ae2136b7f40f7c8"},
+ {file = "wrapt-1.17.2.tar.gz", hash = "sha256:41388e9d4d1522446fe79d3213196bd9e3b301a336965b9e27ca2788ebd122f3"},
+]
+
+[[package]]
+name = "writer-sdk"
+version = "2.2.1"
+description = "The official Python library for the writer API"
+optional = false
+python-versions = ">=3.8"
+groups = ["test"]
+files = [
+ {file = "writer_sdk-2.2.1-py3-none-any.whl", hash = "sha256:d7fae4a3fc368ba32e26698beaef01b2ad4d28d2bae1aa0612bfa7a703532aad"},
+ {file = "writer_sdk-2.2.1.tar.gz", hash = "sha256:10d48a51e69639708a2bb1fedf6da8fae10dd19f9f7474483533c9064e9ce22d"},
+]
+
+[package.dependencies]
+anyio = ">=3.5.0,<5"
+distro = ">=1.7.0,<2"
+httpx = ">=0.23.0,<1"
+jiter = ">=0.4.0,<1"
+pydantic = ">=1.9.0,<3"
+sniffio = "*"
+typing-extensions = ">=4.10,<5"
+
+[package.extras]
+aiohttp = ["aiohttp", "httpx-aiohttp (>=0.1.8)"]
+
+[[package]]
+name = "yarl"
+version = "1.20.1"
+description = "Yet another URL library"
+optional = false
+python-versions = ">=3.9"
+groups = ["test"]
+files = [
+ {file = "yarl-1.20.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:6032e6da6abd41e4acda34d75a816012717000fa6839f37124a47fcefc49bec4"},
+ {file = "yarl-1.20.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2c7b34d804b8cf9b214f05015c4fee2ebe7ed05cf581e7192c06555c71f4446a"},
+ {file = "yarl-1.20.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:0c869f2651cc77465f6cd01d938d91a11d9ea5d798738c1dc077f3de0b5e5fed"},
+ {file = "yarl-1.20.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:62915e6688eb4d180d93840cda4110995ad50c459bf931b8b3775b37c264af1e"},
+ {file = "yarl-1.20.1-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:41ebd28167bc6af8abb97fec1a399f412eec5fd61a3ccbe2305a18b84fb4ca73"},
+ {file = "yarl-1.20.1-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:21242b4288a6d56f04ea193adde174b7e347ac46ce6bc84989ff7c1b1ecea84e"},
+ {file = "yarl-1.20.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:bea21cdae6c7eb02ba02a475f37463abfe0a01f5d7200121b03e605d6a0439f8"},
+ {file = "yarl-1.20.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:1f8a891e4a22a89f5dde7862994485e19db246b70bb288d3ce73a34422e55b23"},
+ {file = "yarl-1.20.1-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:dd803820d44c8853a109a34e3660e5a61beae12970da479cf44aa2954019bf70"},
+ {file = "yarl-1.20.1-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:b982fa7f74c80d5c0c7b5b38f908971e513380a10fecea528091405f519b9ebb"},
+ {file = "yarl-1.20.1-cp310-cp310-musllinux_1_2_armv7l.whl", hash = "sha256:33f29ecfe0330c570d997bcf1afd304377f2e48f61447f37e846a6058a4d33b2"},
+ {file = "yarl-1.20.1-cp310-cp310-musllinux_1_2_i686.whl", hash = "sha256:835ab2cfc74d5eb4a6a528c57f05688099da41cf4957cf08cad38647e4a83b30"},
+ {file = "yarl-1.20.1-cp310-cp310-musllinux_1_2_ppc64le.whl", hash = "sha256:46b5e0ccf1943a9a6e766b2c2b8c732c55b34e28be57d8daa2b3c1d1d4009309"},
+ {file = "yarl-1.20.1-cp310-cp310-musllinux_1_2_s390x.whl", hash = "sha256:df47c55f7d74127d1b11251fe6397d84afdde0d53b90bedb46a23c0e534f9d24"},
+ {file = "yarl-1.20.1-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:76d12524d05841276b0e22573f28d5fbcb67589836772ae9244d90dd7d66aa13"},
+ {file = "yarl-1.20.1-cp310-cp310-win32.whl", hash = "sha256:6c4fbf6b02d70e512d7ade4b1f998f237137f1417ab07ec06358ea04f69134f8"},
+ {file = "yarl-1.20.1-cp310-cp310-win_amd64.whl", hash = "sha256:aef6c4d69554d44b7f9d923245f8ad9a707d971e6209d51279196d8e8fe1ae16"},
+ {file = "yarl-1.20.1-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:47ee6188fea634bdfaeb2cc420f5b3b17332e6225ce88149a17c413c77ff269e"},
+ {file = "yarl-1.20.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:d0f6500f69e8402d513e5eedb77a4e1818691e8f45e6b687147963514d84b44b"},
+ {file = "yarl-1.20.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7a8900a42fcdaad568de58887c7b2f602962356908eedb7628eaf6021a6e435b"},
+ {file = "yarl-1.20.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bad6d131fda8ef508b36be3ece16d0902e80b88ea7200f030a0f6c11d9e508d4"},
+ {file = "yarl-1.20.1-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:df018d92fe22aaebb679a7f89fe0c0f368ec497e3dda6cb81a567610f04501f1"},
+ {file = "yarl-1.20.1-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8f969afbb0a9b63c18d0feecf0db09d164b7a44a053e78a7d05f5df163e43833"},
+ {file = "yarl-1.20.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:812303eb4aa98e302886ccda58d6b099e3576b1b9276161469c25803a8db277d"},
+ {file = "yarl-1.20.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:98c4a7d166635147924aa0bf9bfe8d8abad6fffa6102de9c99ea04a1376f91e8"},
+ {file = "yarl-1.20.1-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:12e768f966538e81e6e7550f9086a6236b16e26cd964cf4df35349970f3551cf"},
+ {file = "yarl-1.20.1-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:fe41919b9d899661c5c28a8b4b0acf704510b88f27f0934ac7a7bebdd8938d5e"},
+ {file = "yarl-1.20.1-cp311-cp311-musllinux_1_2_armv7l.whl", hash = "sha256:8601bc010d1d7780592f3fc1bdc6c72e2b6466ea34569778422943e1a1f3c389"},
+ {file = "yarl-1.20.1-cp311-cp311-musllinux_1_2_i686.whl", hash = "sha256:daadbdc1f2a9033a2399c42646fbd46da7992e868a5fe9513860122d7fe7a73f"},
+ {file = "yarl-1.20.1-cp311-cp311-musllinux_1_2_ppc64le.whl", hash = "sha256:03aa1e041727cb438ca762628109ef1333498b122e4c76dd858d186a37cec845"},
+ {file = "yarl-1.20.1-cp311-cp311-musllinux_1_2_s390x.whl", hash = "sha256:642980ef5e0fa1de5fa96d905c7e00cb2c47cb468bfcac5a18c58e27dbf8d8d1"},
+ {file = "yarl-1.20.1-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:86971e2795584fe8c002356d3b97ef6c61862720eeff03db2a7c86b678d85b3e"},
+ {file = "yarl-1.20.1-cp311-cp311-win32.whl", hash = "sha256:597f40615b8d25812f14562699e287f0dcc035d25eb74da72cae043bb884d773"},
+ {file = "yarl-1.20.1-cp311-cp311-win_amd64.whl", hash = "sha256:26ef53a9e726e61e9cd1cda6b478f17e350fb5800b4bd1cd9fe81c4d91cfeb2e"},
+ {file = "yarl-1.20.1-cp312-cp312-macosx_10_13_universal2.whl", hash = "sha256:bdcc4cd244e58593a4379fe60fdee5ac0331f8eb70320a24d591a3be197b94a9"},
+ {file = "yarl-1.20.1-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:b29a2c385a5f5b9c7d9347e5812b6f7ab267193c62d282a540b4fc528c8a9d2a"},
+ {file = "yarl-1.20.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1112ae8154186dfe2de4732197f59c05a83dc814849a5ced892b708033f40dc2"},
+ {file = "yarl-1.20.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:90bbd29c4fe234233f7fa2b9b121fb63c321830e5d05b45153a2ca68f7d310ee"},
+ {file = "yarl-1.20.1-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:680e19c7ce3710ac4cd964e90dad99bf9b5029372ba0c7cbfcd55e54d90ea819"},
+ {file = "yarl-1.20.1-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:4a979218c1fdb4246a05efc2cc23859d47c89af463a90b99b7c56094daf25a16"},
+ {file = "yarl-1.20.1-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:255b468adf57b4a7b65d8aad5b5138dce6a0752c139965711bdcb81bc370e1b6"},
+ {file = "yarl-1.20.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a97d67108e79cfe22e2b430d80d7571ae57d19f17cda8bb967057ca8a7bf5bfd"},
+ {file = "yarl-1.20.1-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8570d998db4ddbfb9a590b185a0a33dbf8aafb831d07a5257b4ec9948df9cb0a"},
+ {file = "yarl-1.20.1-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:97c75596019baae7c71ccf1d8cc4738bc08134060d0adfcbe5642f778d1dca38"},
+ {file = "yarl-1.20.1-cp312-cp312-musllinux_1_2_armv7l.whl", hash = "sha256:1c48912653e63aef91ff988c5432832692ac5a1d8f0fb8a33091520b5bbe19ef"},
+ {file = "yarl-1.20.1-cp312-cp312-musllinux_1_2_i686.whl", hash = "sha256:4c3ae28f3ae1563c50f3d37f064ddb1511ecc1d5584e88c6b7c63cf7702a6d5f"},
+ {file = "yarl-1.20.1-cp312-cp312-musllinux_1_2_ppc64le.whl", hash = "sha256:c5e9642f27036283550f5f57dc6156c51084b458570b9d0d96100c8bebb186a8"},
+ {file = "yarl-1.20.1-cp312-cp312-musllinux_1_2_s390x.whl", hash = "sha256:2c26b0c49220d5799f7b22c6838409ee9bc58ee5c95361a4d7831f03cc225b5a"},
+ {file = "yarl-1.20.1-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:564ab3d517e3d01c408c67f2e5247aad4019dcf1969982aba3974b4093279004"},
+ {file = "yarl-1.20.1-cp312-cp312-win32.whl", hash = "sha256:daea0d313868da1cf2fac6b2d3a25c6e3a9e879483244be38c8e6a41f1d876a5"},
+ {file = "yarl-1.20.1-cp312-cp312-win_amd64.whl", hash = "sha256:48ea7d7f9be0487339828a4de0360d7ce0efc06524a48e1810f945c45b813698"},
+ {file = "yarl-1.20.1-cp313-cp313-macosx_10_13_universal2.whl", hash = "sha256:0b5ff0fbb7c9f1b1b5ab53330acbfc5247893069e7716840c8e7d5bb7355038a"},
+ {file = "yarl-1.20.1-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:14f326acd845c2b2e2eb38fb1346c94f7f3b01a4f5c788f8144f9b630bfff9a3"},
+ {file = "yarl-1.20.1-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:f60e4ad5db23f0b96e49c018596707c3ae89f5d0bd97f0ad3684bcbad899f1e7"},
+ {file = "yarl-1.20.1-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:49bdd1b8e00ce57e68ba51916e4bb04461746e794e7c4d4bbc42ba2f18297691"},
+ {file = "yarl-1.20.1-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:66252d780b45189975abfed839616e8fd2dbacbdc262105ad7742c6ae58f3e31"},
+ {file = "yarl-1.20.1-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:59174e7332f5d153d8f7452a102b103e2e74035ad085f404df2e40e663a22b28"},
+ {file = "yarl-1.20.1-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:e3968ec7d92a0c0f9ac34d5ecfd03869ec0cab0697c91a45db3fbbd95fe1b653"},
+ {file = "yarl-1.20.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d1a4fbb50e14396ba3d375f68bfe02215d8e7bc3ec49da8341fe3157f59d2ff5"},
+ {file = "yarl-1.20.1-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:11a62c839c3a8eac2410e951301309426f368388ff2f33799052787035793b02"},
+ {file = "yarl-1.20.1-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:041eaa14f73ff5a8986b4388ac6bb43a77f2ea09bf1913df7a35d4646db69e53"},
+ {file = "yarl-1.20.1-cp313-cp313-musllinux_1_2_armv7l.whl", hash = "sha256:377fae2fef158e8fd9d60b4c8751387b8d1fb121d3d0b8e9b0be07d1b41e83dc"},
+ {file = "yarl-1.20.1-cp313-cp313-musllinux_1_2_i686.whl", hash = "sha256:1c92f4390e407513f619d49319023664643d3339bd5e5a56a3bebe01bc67ec04"},
+ {file = "yarl-1.20.1-cp313-cp313-musllinux_1_2_ppc64le.whl", hash = "sha256:d25ddcf954df1754ab0f86bb696af765c5bfaba39b74095f27eececa049ef9a4"},
+ {file = "yarl-1.20.1-cp313-cp313-musllinux_1_2_s390x.whl", hash = "sha256:909313577e9619dcff8c31a0ea2aa0a2a828341d92673015456b3ae492e7317b"},
+ {file = "yarl-1.20.1-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:793fd0580cb9664548c6b83c63b43c477212c0260891ddf86809e1c06c8b08f1"},
+ {file = "yarl-1.20.1-cp313-cp313-win32.whl", hash = "sha256:468f6e40285de5a5b3c44981ca3a319a4b208ccc07d526b20b12aeedcfa654b7"},
+ {file = "yarl-1.20.1-cp313-cp313-win_amd64.whl", hash = "sha256:495b4ef2fea40596bfc0affe3837411d6aa3371abcf31aac0ccc4bdd64d4ef5c"},
+ {file = "yarl-1.20.1-cp313-cp313t-macosx_10_13_universal2.whl", hash = "sha256:f60233b98423aab21d249a30eb27c389c14929f47be8430efa7dbd91493a729d"},
+ {file = "yarl-1.20.1-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:6f3eff4cc3f03d650d8755c6eefc844edde99d641d0dcf4da3ab27141a5f8ddf"},
+ {file = "yarl-1.20.1-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:69ff8439d8ba832d6bed88af2c2b3445977eba9a4588b787b32945871c2444e3"},
+ {file = "yarl-1.20.1-cp313-cp313t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3cf34efa60eb81dd2645a2e13e00bb98b76c35ab5061a3989c7a70f78c85006d"},
+ {file = "yarl-1.20.1-cp313-cp313t-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:8e0fe9364ad0fddab2688ce72cb7a8e61ea42eff3c7caeeb83874a5d479c896c"},
+ {file = "yarl-1.20.1-cp313-cp313t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8f64fbf81878ba914562c672024089e3401974a39767747691c65080a67b18c1"},
+ {file = "yarl-1.20.1-cp313-cp313t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f6342d643bf9a1de97e512e45e4b9560a043347e779a173250824f8b254bd5ce"},
+ {file = "yarl-1.20.1-cp313-cp313t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:56dac5f452ed25eef0f6e3c6a066c6ab68971d96a9fb441791cad0efba6140d3"},
+ {file = "yarl-1.20.1-cp313-cp313t-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:c7d7f497126d65e2cad8dc5f97d34c27b19199b6414a40cb36b52f41b79014be"},
+ {file = "yarl-1.20.1-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:67e708dfb8e78d8a19169818eeb5c7a80717562de9051bf2413aca8e3696bf16"},
+ {file = "yarl-1.20.1-cp313-cp313t-musllinux_1_2_armv7l.whl", hash = "sha256:595c07bc79af2494365cc96ddeb772f76272364ef7c80fb892ef9d0649586513"},
+ {file = "yarl-1.20.1-cp313-cp313t-musllinux_1_2_i686.whl", hash = "sha256:7bdd2f80f4a7df852ab9ab49484a4dee8030023aa536df41f2d922fd57bf023f"},
+ {file = "yarl-1.20.1-cp313-cp313t-musllinux_1_2_ppc64le.whl", hash = "sha256:c03bfebc4ae8d862f853a9757199677ab74ec25424d0ebd68a0027e9c639a390"},
+ {file = "yarl-1.20.1-cp313-cp313t-musllinux_1_2_s390x.whl", hash = "sha256:344d1103e9c1523f32a5ed704d576172d2cabed3122ea90b1d4e11fe17c66458"},
+ {file = "yarl-1.20.1-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:88cab98aa4e13e1ade8c141daeedd300a4603b7132819c484841bb7af3edce9e"},
+ {file = "yarl-1.20.1-cp313-cp313t-win32.whl", hash = "sha256:b121ff6a7cbd4abc28985b6028235491941b9fe8fe226e6fdc539c977ea1739d"},
+ {file = "yarl-1.20.1-cp313-cp313t-win_amd64.whl", hash = "sha256:541d050a355bbbc27e55d906bc91cb6fe42f96c01413dd0f4ed5a5240513874f"},
+ {file = "yarl-1.20.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:e42ba79e2efb6845ebab49c7bf20306c4edf74a0b20fc6b2ccdd1a219d12fad3"},
+ {file = "yarl-1.20.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:41493b9b7c312ac448b7f0a42a089dffe1d6e6e981a2d76205801a023ed26a2b"},
+ {file = "yarl-1.20.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f5a5928ff5eb13408c62a968ac90d43f8322fd56d87008b8f9dabf3c0f6ee983"},
+ {file = "yarl-1.20.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:30c41ad5d717b3961b2dd785593b67d386b73feca30522048d37298fee981805"},
+ {file = "yarl-1.20.1-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.manylinux_2_31_armv7l.whl", hash = "sha256:59febc3969b0781682b469d4aca1a5cab7505a4f7b85acf6db01fa500fa3f6ba"},
+ {file = "yarl-1.20.1-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d2b6fb3622b7e5bf7a6e5b679a69326b4279e805ed1699d749739a61d242449e"},
+ {file = "yarl-1.20.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:749d73611db8d26a6281086f859ea7ec08f9c4c56cec864e52028c8b328db723"},
+ {file = "yarl-1.20.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9427925776096e664c39e131447aa20ec738bdd77c049c48ea5200db2237e000"},
+ {file = "yarl-1.20.1-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ff70f32aa316393eaf8222d518ce9118148eddb8a53073c2403863b41033eed5"},
+ {file = "yarl-1.20.1-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:c7ddf7a09f38667aea38801da8b8d6bfe81df767d9dfc8c88eb45827b195cd1c"},
+ {file = "yarl-1.20.1-cp39-cp39-musllinux_1_2_armv7l.whl", hash = "sha256:57edc88517d7fc62b174fcfb2e939fbc486a68315d648d7e74d07fac42cec240"},
+ {file = "yarl-1.20.1-cp39-cp39-musllinux_1_2_i686.whl", hash = "sha256:dab096ce479d5894d62c26ff4f699ec9072269d514b4edd630a393223f45a0ee"},
+ {file = "yarl-1.20.1-cp39-cp39-musllinux_1_2_ppc64le.whl", hash = "sha256:14a85f3bd2d7bb255be7183e5d7d6e70add151a98edf56a770d6140f5d5f4010"},
+ {file = "yarl-1.20.1-cp39-cp39-musllinux_1_2_s390x.whl", hash = "sha256:2c89b5c792685dd9cd3fa9761c1b9f46fc240c2a3265483acc1565769996a3f8"},
+ {file = "yarl-1.20.1-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:69e9b141de5511021942a6866990aea6d111c9042235de90e08f94cf972ca03d"},
+ {file = "yarl-1.20.1-cp39-cp39-win32.whl", hash = "sha256:b5f307337819cdfdbb40193cad84978a029f847b0a357fbe49f712063cfc4f06"},
+ {file = "yarl-1.20.1-cp39-cp39-win_amd64.whl", hash = "sha256:eae7bfe2069f9c1c5b05fc7fe5d612e5bbc089a39309904ee8b829e322dcad00"},
+ {file = "yarl-1.20.1-py3-none-any.whl", hash = "sha256:83b8eb083fe4683c6115795d9fc1cfaf2cbbefb19b3a1cb68f6527460f483a77"},
+ {file = "yarl-1.20.1.tar.gz", hash = "sha256:d017a4997ee50c91fd5466cef416231bb82177b93b029906cefc542ce14c35ac"},
+]
+
+[package.dependencies]
+idna = ">=2.0"
+multidict = ">=4.0"
+propcache = ">=0.2.1"
+
+[[package]]
+name = "zipp"
+version = "3.23.0"
+description = "Backport of pathlib-compatible object wrapper for zip files"
+optional = false
+python-versions = ">=3.9"
+groups = ["main", "test"]
+files = [
+ {file = "zipp-3.23.0-py3-none-any.whl", hash = "sha256:071652d6115ed432f5ce1d34c336c0adfd6a884660d1e9712a256d3d3bd4b14e"},
+ {file = "zipp-3.23.0.tar.gz", hash = "sha256:a07157588a12518c9d4034df3fbbee09c814741a33ff63c05fa29d26a2404166"},
+]
+
+[package.extras]
+check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1) ; sys_platform != \"cygwin\""]
+cover = ["pytest-cov"]
+doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"]
+enabler = ["pytest-enabler (>=2.2)"]
+test = ["big-O", "jaraco.functools", "jaraco.itertools", "jaraco.test", "more_itertools", "pytest (>=6,!=8.1.*)", "pytest-ignore-flaky"]
+type = ["pytest-mypy"]
+
+[extras]
+instruments = []
+
+[metadata]
+lock-version = "2.1"
+python-versions = ">=3.10,<4"
+content-hash = "f5571a9ae789892811b491bc0fe2da07bf170e2ac6eba3f1cb4080f944b7f309"
diff --git a/packages/opentelemetry-instrumentation-writer/poetry.toml b/packages/opentelemetry-instrumentation-writer/poetry.toml
new file mode 100644
index 0000000000..ab1033bd37
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/poetry.toml
@@ -0,0 +1,2 @@
+[virtualenvs]
+in-project = true
diff --git a/packages/opentelemetry-instrumentation-writer/project.json b/packages/opentelemetry-instrumentation-writer/project.json
new file mode 100644
index 0000000000..1c8cc387d5
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/project.json
@@ -0,0 +1,78 @@
+{
+ "name": "opentelemetry-instrumentation-writer",
+ "$schema": "../../node_modules/nx/schemas/project-schema.json",
+ "projectType": "library",
+ "sourceRoot": "packages/opentelemetry-instrumentation-writer/opentelemetry/instrumentation/writer",
+ "targets": {
+ "lock": {
+ "executor": "@nxlv/python:run-commands",
+ "options": {
+ "command": "poetry lock",
+ "cwd": "packages/opentelemetry-instrumentation-writer"
+ }
+ },
+ "add": {
+ "executor": "@nxlv/python:add",
+ "options": {}
+ },
+ "update": {
+ "executor": "@nxlv/python:update",
+ "options": {}
+ },
+ "remove": {
+ "executor": "@nxlv/python:remove",
+ "options": {}
+ },
+ "build": {
+ "executor": "@nxlv/python:build",
+ "outputs": ["{projectRoot}/dist"],
+ "options": {
+ "outputPath": "packages/opentelemetry-instrumentation-writer/dist",
+ "publish": false,
+ "lockedVersions": true,
+ "bundleLocalDependencies": true
+ }
+ },
+ "install": {
+ "executor": "@nxlv/python:install",
+ "options": {
+ "silent": false,
+ "args": "",
+ "cacheDir": ".cache/pypoetry",
+ "verbose": false,
+ "debug": false
+ }
+ },
+ "lint": {
+ "executor": "@nxlv/python:flake8",
+ "outputs": [
+ "{workspaceRoot}/reports/packages/opentelemetry-instrumentation-writer/pylint.txt"
+ ],
+ "options": {
+ "outputFile": "reports/packages/opentelemetry-instrumentation-writer/pylint.txt"
+ }
+ },
+ "test": {
+ "executor": "@nxlv/python:run-commands",
+ "outputs": [
+ "{workspaceRoot}/reports/packages/opentelemetry-instrumentation-writer/unittests",
+ "{workspaceRoot}/coverage/packages/opentelemetry-instrumentation-writer"
+ ],
+ "options": {
+ "command": "poetry run pytest tests/",
+ "cwd": "packages/opentelemetry-instrumentation-writer"
+ }
+ },
+ "build-release": {
+ "executor": "@nxlv/python:run-commands",
+ "options": {
+ "commands": [
+ "chmod +x ../../scripts/build-release.sh",
+ "../../scripts/build-release.sh"
+ ],
+ "cwd": "packages/opentelemetry-instrumentation-writer"
+ }
+ }
+ },
+ "tags": ["instrumentation"]
+}
diff --git a/packages/opentelemetry-instrumentation-writer/pyproject.toml b/packages/opentelemetry-instrumentation-writer/pyproject.toml
new file mode 100644
index 0000000000..7958d8b27c
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/pyproject.toml
@@ -0,0 +1,52 @@
+[tool.coverage.run]
+branch = true
+source = ["opentelemetry/instrumentation/writer"]
+
+[tool.coverage.report]
+exclude_lines = ['if TYPE_CHECKING:']
+show_missing = true
+
+[tool.poetry]
+name = "opentelemetry-instrumentation-writer"
+version = "0.46.2"
+description = "OpenTelemetry Writer instrumentation"
+authors = ["Yan Tolstoy ", "Writer, Inc. "]
+repository = "https://github.com/traceloop/openllmetry/tree/main/packages/opentelemetry-instrumentation-writer"
+license = "Apache-2.0"
+readme = "README.md"
+
+[[tool.poetry.packages]]
+include = "opentelemetry/instrumentation/writer"
+
+[tool.poetry.dependencies]
+python = ">=3.10,<4"
+opentelemetry-api = "^1.28.0"
+opentelemetry-instrumentation = ">=0.50b0"
+opentelemetry-semantic-conventions = ">=0.50b0"
+opentelemetry-semantic-conventions-ai = ">=0.4.11"
+
+[tool.poetry.group.dev.dependencies]
+autopep8 = "^2.2.0"
+flake8 = "7.0.0"
+black = "^25.1.0"
+isort = "^6.0.1"
+
+[tool.poetry.group.test.dependencies]
+pytest = "^8.2.2"
+pytest-sugar = "1.0.0"
+python-dotenv = "^1.1.1"
+vcrpy = "^6.0.1"
+pytest-recording = "^0.13.1"
+pytest-asyncio = "^0.23.7"
+opentelemetry-sdk = "^1.27.0"
+writer-sdk = "^2.2.1"
+
+[build-system]
+requires = ["poetry-core"]
+build-backend = "poetry.core.masonry.api"
+
+[tool.poetry.extras]
+instruments = ["writer"]
+
+[tool.poetry.plugins."opentelemetry_instrumentor"]
+writer = "opentelemetry.instrumentation.writer:WriterInstrumentor"
diff --git a/packages/opentelemetry-instrumentation-writer/tests/__init__.py b/packages/opentelemetry-instrumentation-writer/tests/__init__.py
new file mode 100644
index 0000000000..52b92d7820
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/__init__.py
@@ -0,0 +1 @@
+"""Unit tests for Writer instrumentation"""
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_chat_legacy.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_chat_legacy.yaml
new file mode 100644
index 0000000000..b260192a1b
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_chat_legacy.yaml
@@ -0,0 +1,73 @@
+interactions:
+- request:
+ body: '{
+ "model": "palmyra-x4",
+ "messages": [
+ {
+ "role": "user",
+ "content": "Tell me a joke about OpenTelemetry"
+ }
+ ],
+ "stream": false,
+ "max_tokens": 340,
+ "temperature": 0.7,
+ "top_p": 0.9,
+ "stop": "I am"
+ }'
+ headers:
+ accept:
+ - application/json
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com:443/v1/chat
+ response:
+ body:
+ string: '{
+ "id": "57e4f58f-f7b1-41d8-be17-a6279c073aad",
+ "object": "chat.completion",
+ "model": "palmyra-x4",
+ "created": "1715361795",
+ "choices": [
+ {
+ "index": 0,
+ "finish_reason": "stop",
+ "message": {
+ "role": "assistant",
+ "content": "A joke about OpenTelemetry! Here it is:\n\nWhy did the OpenTelemetry span go to therapy?\n\nBecause it was struggling to instrument its issues!\n\n(Get it? \"Instrument\" has a double meaning here, referring both to the act of collecting metrics and traces in OpenTelemetry, as well as working through one''s problems... okay, maybe it''s just a techie joke)",
+ "refusal": null,
+ "tool_calls": [],
+ "graph_data": {
+ "sources": [],
+ "status": "finished",
+ "subqueries": []
+ },
+ "llm_data": null,
+ "translation_data": null,
+ "web_search_data": null
+ }
+ }
+ ],
+ "usage": {
+ "prompt_tokens": 40,
+ "total_tokens": 340,
+ "completion_tokens": 300,
+ "prompt_token_details": {
+ "cached_tokens": 0
+ },
+ "completion_token_details": {
+ "reasoning_tokens": 0
+ }
+ },
+ "system_fingerprint": "v1",
+ "service_tier": "standard"
+ }'
+ headers:
+ Content-Type:
+ - application/json; charset=utf-8
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_chat_multiple_choices_legacy.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_chat_multiple_choices_legacy.yaml
new file mode 100644
index 0000000000..10dd922fc8
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_chat_multiple_choices_legacy.yaml
@@ -0,0 +1,34 @@
+interactions:
+- request:
+ body: '{"messages":[{"role":"user","content":"Tell me a joke about OpenTelemetry"}],"model":"palmyra-x4","max_tokens":340,"n":2,"stop":"I
+ am","stream":false,"temperature":0.7,"top_p":0.9}'
+ headers:
+ accept:
+ - application/json
+ accept-encoding:
+ - gzip, deflate
+ connection:
+ - keep-alive
+ content-length:
+ - '180'
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com/v1/chat
+ response:
+ body:
+ string: '{"id":"f383320f-f6d7-46b6-966b-7877c6fc0e79","object":"chat.completion","choices":[{"index":0,"finish_reason":"stop","message":{"content":"Sure,
+ here''s a joke for you:\n\nWhy did the developer go broke? Because he used
+ up all his metrics on OpenTelemetry and had nothing left to measure his finances!","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null},{"index":1,"finish_reason":"stop","message":{"content":"Sure,
+ here''s a light-hearted joke about OpenTelemetry:\n\nWhy did the developer
+ go broke? Because he used up all his metrics on OpenTelemetry and had nothing
+ left to measure!","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129713,"model":"palmyra-x4","usage":{"prompt_tokens":39,"total_tokens":113,"completion_tokens":74,"prompt_token_details":null,"completion_tokens_details":null},"system_fingerprint":"v1","service_tier":null}'
+ headers:
+ Content-Type:
+ - application/json
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_chat_multiple_choices_with_events_with_content.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_chat_multiple_choices_with_events_with_content.yaml
new file mode 100644
index 0000000000..10dd922fc8
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_chat_multiple_choices_with_events_with_content.yaml
@@ -0,0 +1,34 @@
+interactions:
+- request:
+ body: '{"messages":[{"role":"user","content":"Tell me a joke about OpenTelemetry"}],"model":"palmyra-x4","max_tokens":340,"n":2,"stop":"I
+ am","stream":false,"temperature":0.7,"top_p":0.9}'
+ headers:
+ accept:
+ - application/json
+ accept-encoding:
+ - gzip, deflate
+ connection:
+ - keep-alive
+ content-length:
+ - '180'
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com/v1/chat
+ response:
+ body:
+ string: '{"id":"f383320f-f6d7-46b6-966b-7877c6fc0e79","object":"chat.completion","choices":[{"index":0,"finish_reason":"stop","message":{"content":"Sure,
+ here''s a joke for you:\n\nWhy did the developer go broke? Because he used
+ up all his metrics on OpenTelemetry and had nothing left to measure his finances!","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null},{"index":1,"finish_reason":"stop","message":{"content":"Sure,
+ here''s a light-hearted joke about OpenTelemetry:\n\nWhy did the developer
+ go broke? Because he used up all his metrics on OpenTelemetry and had nothing
+ left to measure!","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129713,"model":"palmyra-x4","usage":{"prompt_tokens":39,"total_tokens":113,"completion_tokens":74,"prompt_token_details":null,"completion_tokens_details":null},"system_fingerprint":"v1","service_tier":null}'
+ headers:
+ Content-Type:
+ - application/json
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_chat_multiple_choices_with_events_with_no_content.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_chat_multiple_choices_with_events_with_no_content.yaml
new file mode 100644
index 0000000000..10dd922fc8
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_chat_multiple_choices_with_events_with_no_content.yaml
@@ -0,0 +1,34 @@
+interactions:
+- request:
+ body: '{"messages":[{"role":"user","content":"Tell me a joke about OpenTelemetry"}],"model":"palmyra-x4","max_tokens":340,"n":2,"stop":"I
+ am","stream":false,"temperature":0.7,"top_p":0.9}'
+ headers:
+ accept:
+ - application/json
+ accept-encoding:
+ - gzip, deflate
+ connection:
+ - keep-alive
+ content-length:
+ - '180'
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com/v1/chat
+ response:
+ body:
+ string: '{"id":"f383320f-f6d7-46b6-966b-7877c6fc0e79","object":"chat.completion","choices":[{"index":0,"finish_reason":"stop","message":{"content":"Sure,
+ here''s a joke for you:\n\nWhy did the developer go broke? Because he used
+ up all his metrics on OpenTelemetry and had nothing left to measure his finances!","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null},{"index":1,"finish_reason":"stop","message":{"content":"Sure,
+ here''s a light-hearted joke about OpenTelemetry:\n\nWhy did the developer
+ go broke? Because he used up all his metrics on OpenTelemetry and had nothing
+ left to measure!","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129713,"model":"palmyra-x4","usage":{"prompt_tokens":39,"total_tokens":113,"completion_tokens":74,"prompt_token_details":null,"completion_tokens_details":null},"system_fingerprint":"v1","service_tier":null}'
+ headers:
+ Content-Type:
+ - application/json
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_chat_multiple_tool_call_requests_legacy.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_chat_multiple_tool_call_requests_legacy.yaml
new file mode 100644
index 0000000000..b9a7da346b
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_chat_multiple_tool_call_requests_legacy.yaml
@@ -0,0 +1,39 @@
+interactions:
+- request:
+ body: '{"messages":[{"role":"user","content":"What is the weather like in Zakopane,
+ Warsaw, Lodz, Katowice, Krakow, Poznan and Lublin today?"}],"model":"palmyra-x4","max_tokens":340,"stop":"I
+ am","stream":false,"temperature":0.7,"tools":[{"function":{"description":"Return
+ weather in the specific location.","name":"get_weather","parameters":{"properties":{"location":{"description":"Location
+ to return weather at","type":"string"}},"required":["location"],"type":"object"}},"type":"function"}],"top_p":0.9}'
+ headers:
+ accept:
+ - application/json
+ accept-encoding:
+ - gzip, deflate
+ connection:
+ - keep-alive
+ content-length:
+ - '500'
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com/v1/chat
+ response:
+ body:
+ string: '{"id":"48dfd042-80b7-49ac-8cd9-ea800839a0dc","object":"chat.completion","choices":[{"index":0,"finish_reason":"tool_calls","message":{"content":null,"role":"assistant","tool_calls":[{"index":null,"id":"chatcmpl-tool-429aded05dbe483697404967c567cbd6","type":"function","function":{"name":"get_weather","arguments":"{\"location\":
+ \"Zakopane\"}"}},{"index":null,"id":"chatcmpl-tool-d5ac8291d8b749cda1d03b18baa013fa","type":"function","function":{"name":"get_weather","arguments":"{\"location\":
+ \"Warsaw\"}"}},{"index":null,"id":"chatcmpl-tool-cd3559179f45440f8b62c90061810568","type":"function","function":{"name":"get_weather","arguments":"{\"location\":
+ \"Lodz\"}"}},{"index":null,"id":"chatcmpl-tool-6d25c273232f49febba77f29ec73f103","type":"function","function":{"name":"get_weather","arguments":"{\"location\":
+ \"Katowice\"}"}},{"index":null,"id":"chatcmpl-tool-f639e3c813c9409baf07d08ca2e2e456","type":"function","function":{"name":"get_weather","arguments":"{\"location\":
+ \"Krakow\"}"}},{"index":null,"id":"chatcmpl-tool-f17729a2f75f46afb9a74d66b80580ff","type":"function","function":{"name":"get_weather","arguments":"{\"location\":
+ \"Poznan\"}"}},{"index":null,"id":"chatcmpl-tool-d3982e8dc28241fbad74d2b7168a3aa6","type":"function","function":{"name":"get_weather","arguments":"{\"location\":
+ \"Lublin\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221098,"model":"palmyra-x4","usage":{"prompt_tokens":212,"total_tokens":365,"completion_tokens":153,"prompt_token_details":null,"completion_tokens_details":null},"system_fingerprint":"v1","service_tier":null}'
+ headers:
+ Content-Type:
+ - application/json
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_chat_multiple_tool_call_requests_with_events_with_content.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_chat_multiple_tool_call_requests_with_events_with_content.yaml
new file mode 100644
index 0000000000..b9a7da346b
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_chat_multiple_tool_call_requests_with_events_with_content.yaml
@@ -0,0 +1,39 @@
+interactions:
+- request:
+ body: '{"messages":[{"role":"user","content":"What is the weather like in Zakopane,
+ Warsaw, Lodz, Katowice, Krakow, Poznan and Lublin today?"}],"model":"palmyra-x4","max_tokens":340,"stop":"I
+ am","stream":false,"temperature":0.7,"tools":[{"function":{"description":"Return
+ weather in the specific location.","name":"get_weather","parameters":{"properties":{"location":{"description":"Location
+ to return weather at","type":"string"}},"required":["location"],"type":"object"}},"type":"function"}],"top_p":0.9}'
+ headers:
+ accept:
+ - application/json
+ accept-encoding:
+ - gzip, deflate
+ connection:
+ - keep-alive
+ content-length:
+ - '500'
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com/v1/chat
+ response:
+ body:
+ string: '{"id":"48dfd042-80b7-49ac-8cd9-ea800839a0dc","object":"chat.completion","choices":[{"index":0,"finish_reason":"tool_calls","message":{"content":null,"role":"assistant","tool_calls":[{"index":null,"id":"chatcmpl-tool-429aded05dbe483697404967c567cbd6","type":"function","function":{"name":"get_weather","arguments":"{\"location\":
+ \"Zakopane\"}"}},{"index":null,"id":"chatcmpl-tool-d5ac8291d8b749cda1d03b18baa013fa","type":"function","function":{"name":"get_weather","arguments":"{\"location\":
+ \"Warsaw\"}"}},{"index":null,"id":"chatcmpl-tool-cd3559179f45440f8b62c90061810568","type":"function","function":{"name":"get_weather","arguments":"{\"location\":
+ \"Lodz\"}"}},{"index":null,"id":"chatcmpl-tool-6d25c273232f49febba77f29ec73f103","type":"function","function":{"name":"get_weather","arguments":"{\"location\":
+ \"Katowice\"}"}},{"index":null,"id":"chatcmpl-tool-f639e3c813c9409baf07d08ca2e2e456","type":"function","function":{"name":"get_weather","arguments":"{\"location\":
+ \"Krakow\"}"}},{"index":null,"id":"chatcmpl-tool-f17729a2f75f46afb9a74d66b80580ff","type":"function","function":{"name":"get_weather","arguments":"{\"location\":
+ \"Poznan\"}"}},{"index":null,"id":"chatcmpl-tool-d3982e8dc28241fbad74d2b7168a3aa6","type":"function","function":{"name":"get_weather","arguments":"{\"location\":
+ \"Lublin\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221098,"model":"palmyra-x4","usage":{"prompt_tokens":212,"total_tokens":365,"completion_tokens":153,"prompt_token_details":null,"completion_tokens_details":null},"system_fingerprint":"v1","service_tier":null}'
+ headers:
+ Content-Type:
+ - application/json
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_chat_multiple_tool_call_requests_with_events_with_no_content.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_chat_multiple_tool_call_requests_with_events_with_no_content.yaml
new file mode 100644
index 0000000000..b9a7da346b
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_chat_multiple_tool_call_requests_with_events_with_no_content.yaml
@@ -0,0 +1,39 @@
+interactions:
+- request:
+ body: '{"messages":[{"role":"user","content":"What is the weather like in Zakopane,
+ Warsaw, Lodz, Katowice, Krakow, Poznan and Lublin today?"}],"model":"palmyra-x4","max_tokens":340,"stop":"I
+ am","stream":false,"temperature":0.7,"tools":[{"function":{"description":"Return
+ weather in the specific location.","name":"get_weather","parameters":{"properties":{"location":{"description":"Location
+ to return weather at","type":"string"}},"required":["location"],"type":"object"}},"type":"function"}],"top_p":0.9}'
+ headers:
+ accept:
+ - application/json
+ accept-encoding:
+ - gzip, deflate
+ connection:
+ - keep-alive
+ content-length:
+ - '500'
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com/v1/chat
+ response:
+ body:
+ string: '{"id":"48dfd042-80b7-49ac-8cd9-ea800839a0dc","object":"chat.completion","choices":[{"index":0,"finish_reason":"tool_calls","message":{"content":null,"role":"assistant","tool_calls":[{"index":null,"id":"chatcmpl-tool-429aded05dbe483697404967c567cbd6","type":"function","function":{"name":"get_weather","arguments":"{\"location\":
+ \"Zakopane\"}"}},{"index":null,"id":"chatcmpl-tool-d5ac8291d8b749cda1d03b18baa013fa","type":"function","function":{"name":"get_weather","arguments":"{\"location\":
+ \"Warsaw\"}"}},{"index":null,"id":"chatcmpl-tool-cd3559179f45440f8b62c90061810568","type":"function","function":{"name":"get_weather","arguments":"{\"location\":
+ \"Lodz\"}"}},{"index":null,"id":"chatcmpl-tool-6d25c273232f49febba77f29ec73f103","type":"function","function":{"name":"get_weather","arguments":"{\"location\":
+ \"Katowice\"}"}},{"index":null,"id":"chatcmpl-tool-f639e3c813c9409baf07d08ca2e2e456","type":"function","function":{"name":"get_weather","arguments":"{\"location\":
+ \"Krakow\"}"}},{"index":null,"id":"chatcmpl-tool-f17729a2f75f46afb9a74d66b80580ff","type":"function","function":{"name":"get_weather","arguments":"{\"location\":
+ \"Poznan\"}"}},{"index":null,"id":"chatcmpl-tool-d3982e8dc28241fbad74d2b7168a3aa6","type":"function","function":{"name":"get_weather","arguments":"{\"location\":
+ \"Lublin\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221098,"model":"palmyra-x4","usage":{"prompt_tokens":212,"total_tokens":365,"completion_tokens":153,"prompt_token_details":null,"completion_tokens_details":null},"system_fingerprint":"v1","service_tier":null}'
+ headers:
+ Content-Type:
+ - application/json
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_chat_tool_call_request_legacy.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_chat_tool_call_request_legacy.yaml
new file mode 100644
index 0000000000..5acb502aa0
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_chat_tool_call_request_legacy.yaml
@@ -0,0 +1,32 @@
+interactions:
+- request:
+ body: '{"messages":[{"role":"user","content":"What is the weather like in Zakopane
+ today?"}],"model":"palmyra-x4","max_tokens":340,"stop":"I am","stream":false,"temperature":0.7,"tools":[{"function":{"description":"Return
+ weather in the specific location.","name":"get_weather","parameters":{"properties":{"location":{"description":"Location
+ to return weather at","type":"string"}},"required":["location"],"type":"object"}},"type":"function"}],"top_p":0.9}'
+ headers:
+ accept:
+ - application/json
+ accept-encoding:
+ - gzip, deflate
+ connection:
+ - keep-alive
+ content-length:
+ - '449'
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com/v1/chat
+ response:
+ body:
+ string: '{"id":"ff64a3d4-01b4-4e7b-80b7-8e2b22d460da","object":"chat.completion","choices":[{"index":0,"finish_reason":"tool_calls","message":{"content":null,"role":"assistant","tool_calls":[{"index":null,"id":"chatcmpl-tool-7e03ea39417447e9a1fe7cd391b16476","type":"function","function":{"name":"get_weather","arguments":"{\"location\":
+ \"Zakopane\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755879022,"model":"palmyra-x4","usage":{"prompt_tokens":194,"total_tokens":216,"completion_tokens":22,"prompt_token_details":null,"completion_tokens_details":null},"system_fingerprint":"v1","service_tier":null}'
+ headers:
+ Content-Type:
+ - application/json
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_chat_tool_call_request_with_events_with_content.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_chat_tool_call_request_with_events_with_content.yaml
new file mode 100644
index 0000000000..5acb502aa0
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_chat_tool_call_request_with_events_with_content.yaml
@@ -0,0 +1,32 @@
+interactions:
+- request:
+ body: '{"messages":[{"role":"user","content":"What is the weather like in Zakopane
+ today?"}],"model":"palmyra-x4","max_tokens":340,"stop":"I am","stream":false,"temperature":0.7,"tools":[{"function":{"description":"Return
+ weather in the specific location.","name":"get_weather","parameters":{"properties":{"location":{"description":"Location
+ to return weather at","type":"string"}},"required":["location"],"type":"object"}},"type":"function"}],"top_p":0.9}'
+ headers:
+ accept:
+ - application/json
+ accept-encoding:
+ - gzip, deflate
+ connection:
+ - keep-alive
+ content-length:
+ - '449'
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com/v1/chat
+ response:
+ body:
+ string: '{"id":"ff64a3d4-01b4-4e7b-80b7-8e2b22d460da","object":"chat.completion","choices":[{"index":0,"finish_reason":"tool_calls","message":{"content":null,"role":"assistant","tool_calls":[{"index":null,"id":"chatcmpl-tool-7e03ea39417447e9a1fe7cd391b16476","type":"function","function":{"name":"get_weather","arguments":"{\"location\":
+ \"Zakopane\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755879022,"model":"palmyra-x4","usage":{"prompt_tokens":194,"total_tokens":216,"completion_tokens":22,"prompt_token_details":null,"completion_tokens_details":null},"system_fingerprint":"v1","service_tier":null}'
+ headers:
+ Content-Type:
+ - application/json
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_chat_tool_call_request_with_events_with_no_content.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_chat_tool_call_request_with_events_with_no_content.yaml
new file mode 100644
index 0000000000..5acb502aa0
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_chat_tool_call_request_with_events_with_no_content.yaml
@@ -0,0 +1,32 @@
+interactions:
+- request:
+ body: '{"messages":[{"role":"user","content":"What is the weather like in Zakopane
+ today?"}],"model":"palmyra-x4","max_tokens":340,"stop":"I am","stream":false,"temperature":0.7,"tools":[{"function":{"description":"Return
+ weather in the specific location.","name":"get_weather","parameters":{"properties":{"location":{"description":"Location
+ to return weather at","type":"string"}},"required":["location"],"type":"object"}},"type":"function"}],"top_p":0.9}'
+ headers:
+ accept:
+ - application/json
+ accept-encoding:
+ - gzip, deflate
+ connection:
+ - keep-alive
+ content-length:
+ - '449'
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com/v1/chat
+ response:
+ body:
+ string: '{"id":"ff64a3d4-01b4-4e7b-80b7-8e2b22d460da","object":"chat.completion","choices":[{"index":0,"finish_reason":"tool_calls","message":{"content":null,"role":"assistant","tool_calls":[{"index":null,"id":"chatcmpl-tool-7e03ea39417447e9a1fe7cd391b16476","type":"function","function":{"name":"get_weather","arguments":"{\"location\":
+ \"Zakopane\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755879022,"model":"palmyra-x4","usage":{"prompt_tokens":194,"total_tokens":216,"completion_tokens":22,"prompt_token_details":null,"completion_tokens_details":null},"system_fingerprint":"v1","service_tier":null}'
+ headers:
+ Content-Type:
+ - application/json
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_chat_tool_calls_legacy.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_chat_tool_calls_legacy.yaml
new file mode 100644
index 0000000000..c38d62fd19
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_chat_tool_calls_legacy.yaml
@@ -0,0 +1,110 @@
+interactions:
+- request:
+ body: '{
+ "model": "palmyra-x4",
+ "messages": [
+ {
+ "role": "user",
+ "content": "What is the weather like today?"
+ },
+ {
+ "role": "assistant",
+ "content": "",
+ "tool_calls": [
+ {
+ "type": "function",
+ "function": {
+ "name": "get_current_weather",
+ "arguments": "{\"location\": \"San Francisco\"}"
+ }
+ }
+ ]
+ },
+ {
+ "role": "tool",
+ "content": "The weather in San Francisco is 70 degrees and sunny."
+ }
+ ],
+ "tools": [
+ {
+ "function": {
+ "description": "Return weather in the specific location.",
+ "name": "get_weather",
+ "parameters": {
+ "properties": {
+ "location": {
+ "description": "Location to return weather at",
+ "type": "string"
+ },
+ },
+ "required": [
+ "location"
+ ],
+ "type": "object"
+ }
+ },
+ "type": "function"
+ }
+ ],
+ "stream": false,
+ "max_tokens": 340,
+ "temperature": 0.7,
+ "top_p": 0.9,
+ "stop": "I am"
+ }'
+ headers:
+ accept:
+ - application/json
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com:443/v1/chat
+ response:
+ body:
+ string: '{
+ "id": "1fc9b079-5315-43d9-a7f2-82c17b065615",
+ "object": "chat.completion",
+ "choices": [
+ {
+ "index": 0,
+ "finish_reason": "stop",
+ "message": {
+ "content": "Today in San Francisco, the weather is 70 degrees and sunny. Enjoy the day!",
+ "role": "assistant",
+ "tool_calls": null,
+ "graph_data": {
+ "sources": null,
+ "status": null,
+ "subqueries": null
+ },
+ "llm_data": null,
+ "image_data": null,
+ "translation_data": null,
+ "web_search_data": null,
+ "refusal": null
+ },
+ "logprobs": null,
+ "trace_details": null
+ }
+ ],
+ "created": 1755767284,
+ "model": "palmyra-x4",
+ "usage": {
+ "prompt_tokens": 244,
+ "total_tokens": 263,
+ "completion_tokens": 19,
+ "prompt_token_details": null,
+ "completion_tokens_details": null
+ },
+ "system_fingerprint": "v1",
+ "service_tier": null
+ }'
+ headers:
+ Content-Type:
+ - application/json; charset=utf-8
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_chat_tool_calls_with_events_with_content.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_chat_tool_calls_with_events_with_content.yaml
new file mode 100644
index 0000000000..c38d62fd19
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_chat_tool_calls_with_events_with_content.yaml
@@ -0,0 +1,110 @@
+interactions:
+- request:
+ body: '{
+ "model": "palmyra-x4",
+ "messages": [
+ {
+ "role": "user",
+ "content": "What is the weather like today?"
+ },
+ {
+ "role": "assistant",
+ "content": "",
+ "tool_calls": [
+ {
+ "type": "function",
+ "function": {
+ "name": "get_current_weather",
+ "arguments": "{\"location\": \"San Francisco\"}"
+ }
+ }
+ ]
+ },
+ {
+ "role": "tool",
+ "content": "The weather in San Francisco is 70 degrees and sunny."
+ }
+ ],
+ "tools": [
+ {
+ "function": {
+ "description": "Return weather in the specific location.",
+ "name": "get_weather",
+ "parameters": {
+ "properties": {
+ "location": {
+ "description": "Location to return weather at",
+ "type": "string"
+ },
+ },
+ "required": [
+ "location"
+ ],
+ "type": "object"
+ }
+ },
+ "type": "function"
+ }
+ ],
+ "stream": false,
+ "max_tokens": 340,
+ "temperature": 0.7,
+ "top_p": 0.9,
+ "stop": "I am"
+ }'
+ headers:
+ accept:
+ - application/json
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com:443/v1/chat
+ response:
+ body:
+ string: '{
+ "id": "1fc9b079-5315-43d9-a7f2-82c17b065615",
+ "object": "chat.completion",
+ "choices": [
+ {
+ "index": 0,
+ "finish_reason": "stop",
+ "message": {
+ "content": "Today in San Francisco, the weather is 70 degrees and sunny. Enjoy the day!",
+ "role": "assistant",
+ "tool_calls": null,
+ "graph_data": {
+ "sources": null,
+ "status": null,
+ "subqueries": null
+ },
+ "llm_data": null,
+ "image_data": null,
+ "translation_data": null,
+ "web_search_data": null,
+ "refusal": null
+ },
+ "logprobs": null,
+ "trace_details": null
+ }
+ ],
+ "created": 1755767284,
+ "model": "palmyra-x4",
+ "usage": {
+ "prompt_tokens": 244,
+ "total_tokens": 263,
+ "completion_tokens": 19,
+ "prompt_token_details": null,
+ "completion_tokens_details": null
+ },
+ "system_fingerprint": "v1",
+ "service_tier": null
+ }'
+ headers:
+ Content-Type:
+ - application/json; charset=utf-8
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_chat_tool_calls_with_events_with_no_content.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_chat_tool_calls_with_events_with_no_content.yaml
new file mode 100644
index 0000000000..c38d62fd19
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_chat_tool_calls_with_events_with_no_content.yaml
@@ -0,0 +1,110 @@
+interactions:
+- request:
+ body: '{
+ "model": "palmyra-x4",
+ "messages": [
+ {
+ "role": "user",
+ "content": "What is the weather like today?"
+ },
+ {
+ "role": "assistant",
+ "content": "",
+ "tool_calls": [
+ {
+ "type": "function",
+ "function": {
+ "name": "get_current_weather",
+ "arguments": "{\"location\": \"San Francisco\"}"
+ }
+ }
+ ]
+ },
+ {
+ "role": "tool",
+ "content": "The weather in San Francisco is 70 degrees and sunny."
+ }
+ ],
+ "tools": [
+ {
+ "function": {
+ "description": "Return weather in the specific location.",
+ "name": "get_weather",
+ "parameters": {
+ "properties": {
+ "location": {
+ "description": "Location to return weather at",
+ "type": "string"
+ },
+ },
+ "required": [
+ "location"
+ ],
+ "type": "object"
+ }
+ },
+ "type": "function"
+ }
+ ],
+ "stream": false,
+ "max_tokens": 340,
+ "temperature": 0.7,
+ "top_p": 0.9,
+ "stop": "I am"
+ }'
+ headers:
+ accept:
+ - application/json
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com:443/v1/chat
+ response:
+ body:
+ string: '{
+ "id": "1fc9b079-5315-43d9-a7f2-82c17b065615",
+ "object": "chat.completion",
+ "choices": [
+ {
+ "index": 0,
+ "finish_reason": "stop",
+ "message": {
+ "content": "Today in San Francisco, the weather is 70 degrees and sunny. Enjoy the day!",
+ "role": "assistant",
+ "tool_calls": null,
+ "graph_data": {
+ "sources": null,
+ "status": null,
+ "subqueries": null
+ },
+ "llm_data": null,
+ "image_data": null,
+ "translation_data": null,
+ "web_search_data": null,
+ "refusal": null
+ },
+ "logprobs": null,
+ "trace_details": null
+ }
+ ],
+ "created": 1755767284,
+ "model": "palmyra-x4",
+ "usage": {
+ "prompt_tokens": 244,
+ "total_tokens": 263,
+ "completion_tokens": 19,
+ "prompt_token_details": null,
+ "completion_tokens_details": null
+ },
+ "system_fingerprint": "v1",
+ "service_tier": null
+ }'
+ headers:
+ Content-Type:
+ - application/json; charset=utf-8
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_chat_with_events_with_content.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_chat_with_events_with_content.yaml
new file mode 100644
index 0000000000..b260192a1b
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_chat_with_events_with_content.yaml
@@ -0,0 +1,73 @@
+interactions:
+- request:
+ body: '{
+ "model": "palmyra-x4",
+ "messages": [
+ {
+ "role": "user",
+ "content": "Tell me a joke about OpenTelemetry"
+ }
+ ],
+ "stream": false,
+ "max_tokens": 340,
+ "temperature": 0.7,
+ "top_p": 0.9,
+ "stop": "I am"
+ }'
+ headers:
+ accept:
+ - application/json
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com:443/v1/chat
+ response:
+ body:
+ string: '{
+ "id": "57e4f58f-f7b1-41d8-be17-a6279c073aad",
+ "object": "chat.completion",
+ "model": "palmyra-x4",
+ "created": "1715361795",
+ "choices": [
+ {
+ "index": 0,
+ "finish_reason": "stop",
+ "message": {
+ "role": "assistant",
+ "content": "A joke about OpenTelemetry! Here it is:\n\nWhy did the OpenTelemetry span go to therapy?\n\nBecause it was struggling to instrument its issues!\n\n(Get it? \"Instrument\" has a double meaning here, referring both to the act of collecting metrics and traces in OpenTelemetry, as well as working through one''s problems... okay, maybe it''s just a techie joke)",
+ "refusal": null,
+ "tool_calls": [],
+ "graph_data": {
+ "sources": [],
+ "status": "finished",
+ "subqueries": []
+ },
+ "llm_data": null,
+ "translation_data": null,
+ "web_search_data": null
+ }
+ }
+ ],
+ "usage": {
+ "prompt_tokens": 40,
+ "total_tokens": 340,
+ "completion_tokens": 300,
+ "prompt_token_details": {
+ "cached_tokens": 0
+ },
+ "completion_token_details": {
+ "reasoning_tokens": 0
+ }
+ },
+ "system_fingerprint": "v1",
+ "service_tier": "standard"
+ }'
+ headers:
+ Content-Type:
+ - application/json; charset=utf-8
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_chat_with_events_with_no_content.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_chat_with_events_with_no_content.yaml
new file mode 100644
index 0000000000..b260192a1b
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_chat_with_events_with_no_content.yaml
@@ -0,0 +1,73 @@
+interactions:
+- request:
+ body: '{
+ "model": "palmyra-x4",
+ "messages": [
+ {
+ "role": "user",
+ "content": "Tell me a joke about OpenTelemetry"
+ }
+ ],
+ "stream": false,
+ "max_tokens": 340,
+ "temperature": 0.7,
+ "top_p": 0.9,
+ "stop": "I am"
+ }'
+ headers:
+ accept:
+ - application/json
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com:443/v1/chat
+ response:
+ body:
+ string: '{
+ "id": "57e4f58f-f7b1-41d8-be17-a6279c073aad",
+ "object": "chat.completion",
+ "model": "palmyra-x4",
+ "created": "1715361795",
+ "choices": [
+ {
+ "index": 0,
+ "finish_reason": "stop",
+ "message": {
+ "role": "assistant",
+ "content": "A joke about OpenTelemetry! Here it is:\n\nWhy did the OpenTelemetry span go to therapy?\n\nBecause it was struggling to instrument its issues!\n\n(Get it? \"Instrument\" has a double meaning here, referring both to the act of collecting metrics and traces in OpenTelemetry, as well as working through one''s problems... okay, maybe it''s just a techie joke)",
+ "refusal": null,
+ "tool_calls": [],
+ "graph_data": {
+ "sources": [],
+ "status": "finished",
+ "subqueries": []
+ },
+ "llm_data": null,
+ "translation_data": null,
+ "web_search_data": null
+ }
+ }
+ ],
+ "usage": {
+ "prompt_tokens": 40,
+ "total_tokens": 340,
+ "completion_tokens": 300,
+ "prompt_token_details": {
+ "cached_tokens": 0
+ },
+ "completion_token_details": {
+ "reasoning_tokens": 0
+ }
+ },
+ "system_fingerprint": "v1",
+ "service_tier": "standard"
+ }'
+ headers:
+ Content-Type:
+ - application/json; charset=utf-8
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_streaming_chat_legacy.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_streaming_chat_legacy.yaml
new file mode 100644
index 0000000000..7388f3fe94
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_streaming_chat_legacy.yaml
@@ -0,0 +1,195 @@
+interactions:
+- request:
+ body: '{"messages":[{"role":"user","content":"Tell me a joke about OpenTelemetry"}],"model":"palmyra-x4","max_tokens":340,"stop":"I
+ am","stream":true,"stream_options":{"include_usage":true},"temperature":0.7,"top_p":0.9}'
+ headers:
+ accept:
+ - application/json
+ accept-encoding:
+ - gzip, deflate
+ connection:
+ - keep-alive
+ content-length:
+ - '213'
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com/v1/chat
+ response:
+ body:
+ string: 'data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"Sure","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Sure","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":",","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":",","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ here","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ here","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"''s","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"''s","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ a","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ a","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ light","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ light","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"-hearted","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"-hearted","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ joke","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ joke","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ about","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ about","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":":\n\n","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":":\n\n","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"Why","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Why","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ did","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ did","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ the","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ the","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ developer","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ developer","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ go","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ go","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ broke","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ broke","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"?","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"?","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ Because","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ Because","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ he","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ he","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ used","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ used","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ and","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ and","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ couldn","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ couldn","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"''t","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"''t","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ keep","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ keep","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ his","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ his","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ expenses","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ expenses","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ under","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ under","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ **","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ **","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"trace","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"trace","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"**","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"**","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"!","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"!","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":"stop","message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[],"created":1755846931,"model":"palmyra-x4","usage":{"prompt_tokens":39,"total_tokens":76,"completion_tokens":37,"prompt_token_details":null,"completion_tokens_details":null},"system_fingerprint":"v1","service_tier":null}
+
+
+ '
+ headers:
+ Content-Type:
+ - text/event-stream
+ Transfer-Encoding:
+ - chunked
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_streaming_chat_multiple_choices_legacy.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_streaming_chat_multiple_choices_legacy.yaml
new file mode 100644
index 0000000000..4ff41e6c9b
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_streaming_chat_multiple_choices_legacy.yaml
@@ -0,0 +1,455 @@
+interactions:
+- request:
+ body: '{"messages":[{"role":"user","content":"Tell me a joke about OpenTelemetry"}],"model":"palmyra-x4","max_tokens":340,"n":2,"stop":"I
+ am","stream":true,"stream_options":{"include_usage":true},"temperature":0.7,"top_p":0.9}'
+ headers:
+ accept:
+ - application/json
+ accept-encoding:
+ - gzip, deflate
+ connection:
+ - keep-alive
+ content-length:
+ - '219'
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com/v1/chat
+ response:
+ body:
+ string: 'data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"Sure","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Sure","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"Sure","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Sure","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":",","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":",","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":",","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":",","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ here","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ here","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ here","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ here","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"''s","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"''s","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"''s","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"''s","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ a","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ a","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ a","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ a","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ light","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ light","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ light","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ light","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"-hearted","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"-hearted","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"-hearted","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"-hearted","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ joke","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ joke","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ joke","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ joke","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ about","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ about","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ about","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ about","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":":\n\n","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":":\n\n","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":":\n\n","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":":\n\n","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"Why","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Why","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"Why","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Why","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ did","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ did","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ did","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ did","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ the","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ the","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ the","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ the","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ developer","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ developer","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ software","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ software","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ break","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ break","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ developer","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ developer","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ up","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ up","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ decide","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ decide","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ with","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ with","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ to","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ to","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ the","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ the","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ use","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ use","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ application","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ application","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"?\n\n","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"?\n\n","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"Because","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Because","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ it","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ it","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"?\n\n","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"?\n\n","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ couldn","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ couldn","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"Because","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Because","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"''t","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"''t","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ he","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ he","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ commit","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ commit","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ wanted","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ wanted","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ to","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ to","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ to","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ to","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ using","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ using","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ trace","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ trace","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ his","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ his","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ bugs","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ bugs","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ back","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ back","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ and","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ and","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ to","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ to","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ was","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ was","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ their","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ their","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ always","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ always","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ roots","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ roots","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ too","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ too","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":",","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":",","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ \"","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ \"","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ and","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ and","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"in","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"in","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ he","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ he","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"secure","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"secure","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ heard","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ heard","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"\"","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"\"","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ about","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ about","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ its","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ its","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ performance","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ performance","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ was","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ was","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"!","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"!","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ the","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ the","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":"stop","message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ best","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ best","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ shovel","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ shovel","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ in","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ in","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ town","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ town","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"!","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"!","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":"stop","message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[],"created":1756129888,"model":"palmyra-x4","usage":{"prompt_tokens":39,"total_tokens":134,"completion_tokens":95,"prompt_token_details":null,"completion_tokens_details":null},"system_fingerprint":"v1","service_tier":null}
+
+
+ '
+ headers:
+ Content-Type:
+ - text/event-stream
+ Transfer-Encoding:
+ - chunked
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_streaming_chat_multiple_choices_with_events_with_content.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_streaming_chat_multiple_choices_with_events_with_content.yaml
new file mode 100644
index 0000000000..4ff41e6c9b
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_streaming_chat_multiple_choices_with_events_with_content.yaml
@@ -0,0 +1,455 @@
+interactions:
+- request:
+ body: '{"messages":[{"role":"user","content":"Tell me a joke about OpenTelemetry"}],"model":"palmyra-x4","max_tokens":340,"n":2,"stop":"I
+ am","stream":true,"stream_options":{"include_usage":true},"temperature":0.7,"top_p":0.9}'
+ headers:
+ accept:
+ - application/json
+ accept-encoding:
+ - gzip, deflate
+ connection:
+ - keep-alive
+ content-length:
+ - '219'
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com/v1/chat
+ response:
+ body:
+ string: 'data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"Sure","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Sure","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"Sure","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Sure","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":",","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":",","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":",","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":",","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ here","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ here","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ here","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ here","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"''s","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"''s","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"''s","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"''s","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ a","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ a","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ a","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ a","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ light","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ light","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ light","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ light","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"-hearted","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"-hearted","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"-hearted","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"-hearted","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ joke","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ joke","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ joke","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ joke","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ about","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ about","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ about","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ about","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":":\n\n","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":":\n\n","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":":\n\n","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":":\n\n","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"Why","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Why","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"Why","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Why","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ did","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ did","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ did","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ did","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ the","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ the","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ the","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ the","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ developer","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ developer","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ software","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ software","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ break","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ break","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ developer","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ developer","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ up","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ up","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ decide","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ decide","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ with","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ with","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ to","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ to","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ the","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ the","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ use","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ use","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ application","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ application","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"?\n\n","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"?\n\n","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"Because","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Because","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ it","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ it","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"?\n\n","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"?\n\n","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ couldn","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ couldn","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"Because","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Because","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"''t","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"''t","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ he","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ he","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ commit","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ commit","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ wanted","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ wanted","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ to","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ to","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ to","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ to","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ using","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ using","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ trace","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ trace","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ his","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ his","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ bugs","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ bugs","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ back","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ back","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ and","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ and","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ to","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ to","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ was","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ was","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ their","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ their","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ always","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ always","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ roots","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ roots","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ too","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ too","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":",","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":",","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ \"","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ \"","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ and","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ and","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"in","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"in","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ he","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ he","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"secure","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"secure","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ heard","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ heard","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"\"","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"\"","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ about","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ about","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ its","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ its","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ performance","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ performance","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ was","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ was","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"!","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"!","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ the","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ the","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":"stop","message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ best","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ best","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ shovel","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ shovel","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ in","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ in","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ town","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ town","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"!","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"!","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":"stop","message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[],"created":1756129888,"model":"palmyra-x4","usage":{"prompt_tokens":39,"total_tokens":134,"completion_tokens":95,"prompt_token_details":null,"completion_tokens_details":null},"system_fingerprint":"v1","service_tier":null}
+
+
+ '
+ headers:
+ Content-Type:
+ - text/event-stream
+ Transfer-Encoding:
+ - chunked
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_streaming_chat_multiple_choices_with_events_with_no_content.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_streaming_chat_multiple_choices_with_events_with_no_content.yaml
new file mode 100644
index 0000000000..4ff41e6c9b
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_streaming_chat_multiple_choices_with_events_with_no_content.yaml
@@ -0,0 +1,455 @@
+interactions:
+- request:
+ body: '{"messages":[{"role":"user","content":"Tell me a joke about OpenTelemetry"}],"model":"palmyra-x4","max_tokens":340,"n":2,"stop":"I
+ am","stream":true,"stream_options":{"include_usage":true},"temperature":0.7,"top_p":0.9}'
+ headers:
+ accept:
+ - application/json
+ accept-encoding:
+ - gzip, deflate
+ connection:
+ - keep-alive
+ content-length:
+ - '219'
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com/v1/chat
+ response:
+ body:
+ string: 'data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"Sure","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Sure","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"Sure","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Sure","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":",","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":",","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":",","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":",","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ here","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ here","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ here","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ here","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"''s","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"''s","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"''s","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"''s","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ a","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ a","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ a","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ a","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ light","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ light","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ light","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ light","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"-hearted","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"-hearted","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"-hearted","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"-hearted","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ joke","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ joke","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ joke","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ joke","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ about","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ about","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ about","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ about","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":":\n\n","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":":\n\n","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":":\n\n","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":":\n\n","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"Why","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Why","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"Why","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Why","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ did","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ did","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ did","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ did","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ the","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ the","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ the","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ the","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ developer","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ developer","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ software","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ software","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ break","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ break","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ developer","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ developer","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ up","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ up","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ decide","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ decide","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ with","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ with","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ to","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ to","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ the","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ the","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ use","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ use","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ application","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ application","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"?\n\n","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"?\n\n","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"Because","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Because","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ it","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ it","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"?\n\n","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"?\n\n","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ couldn","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ couldn","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"Because","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Because","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"''t","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"''t","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ he","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ he","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ commit","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ commit","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ wanted","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ wanted","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ to","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ to","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ to","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ to","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ using","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ using","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ trace","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ trace","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ his","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ his","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ bugs","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ bugs","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ back","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ back","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ and","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ and","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ to","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ to","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ was","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ was","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ their","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ their","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ always","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ always","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ roots","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ roots","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ too","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ too","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":",","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":",","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ \"","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ \"","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ and","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ and","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"in","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"in","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ he","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ he","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"secure","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"secure","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ heard","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ heard","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"\"","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"\"","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ about","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ about","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ its","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ its","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ performance","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ performance","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ was","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ was","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"!","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"!","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ the","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ the","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":"stop","message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ best","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ best","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ shovel","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ shovel","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ in","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ in","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ town","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ town","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"!","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"!","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":"stop","message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[],"created":1756129888,"model":"palmyra-x4","usage":{"prompt_tokens":39,"total_tokens":134,"completion_tokens":95,"prompt_token_details":null,"completion_tokens_details":null},"system_fingerprint":"v1","service_tier":null}
+
+
+ '
+ headers:
+ Content-Type:
+ - text/event-stream
+ Transfer-Encoding:
+ - chunked
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_streaming_chat_multiple_tool_call_requests_legacy.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_streaming_chat_multiple_tool_call_requests_legacy.yaml
new file mode 100644
index 0000000000..33512eda7c
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_streaming_chat_multiple_tool_call_requests_legacy.yaml
@@ -0,0 +1,120 @@
+interactions:
+- request:
+ body: '{"messages":[{"role":"user","content":"What is the weather like in Zakopane,
+ Warsaw, Lodz, Katowice, Krakow, Poznan and Lublin today?"}],"model":"palmyra-x4","max_tokens":340,"stop":"I
+ am","stream":true,"stream_options":{"include_usage":true},"temperature":0.7,"tools":[{"function":{"description":"Return
+ weather in the specific location.","name":"get_weather","parameters":{"properties":{"location":{"description":"Location
+ to return weather at","type":"string"}},"required":["location"],"type":"object"}},"type":"function"}],"top_p":0.9}'
+ headers:
+ accept:
+ - application/json
+ accept-encoding:
+ - gzip, deflate
+ connection:
+ - keep-alive
+ content-length:
+ - '539'
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com/v1/chat
+ response:
+ body:
+ string: 'data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":"chatcmpl-tool-5ac885d9b1b54a66b11f014a1ecb5b9d","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":"chatcmpl-tool-5ac885d9b1b54a66b11f014a1ecb5b9d","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Zakopane\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Zakopane\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":1,"id":"chatcmpl-tool-368eedfd835c4186b5cb97c69d803cf0","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":1,"id":"chatcmpl-tool-368eedfd835c4186b5cb97c69d803cf0","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":1,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":1,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":1,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Warsaw\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":1,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Warsaw\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":2,"id":"chatcmpl-tool-af73f77676e3402e9e04a4f867552ddd","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":2,"id":"chatcmpl-tool-af73f77676e3402e9e04a4f867552ddd","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":2,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":2,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":2,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Lodz\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":2,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Lodz\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":3,"id":"chatcmpl-tool-e9d9b531d7954d789c1ccc21dbdd3be0","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":3,"id":"chatcmpl-tool-e9d9b531d7954d789c1ccc21dbdd3be0","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":3,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":3,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":3,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Katowice\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":3,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Katowice\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":4,"id":"chatcmpl-tool-a5155160b47c4f5c9f02eb234cac9e7c","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":4,"id":"chatcmpl-tool-a5155160b47c4f5c9f02eb234cac9e7c","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":4,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":4,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":4,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Krakow\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":4,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Krakow\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":5,"id":"chatcmpl-tool-aad9face17d14c7296dd569213e61f47","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":5,"id":"chatcmpl-tool-aad9face17d14c7296dd569213e61f47","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":5,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":5,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":5,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Poznan\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":5,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Poznan\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":6,"id":"chatcmpl-tool-938c427496df48f3b2efb60d6a854461","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":6,"id":"chatcmpl-tool-938c427496df48f3b2efb60d6a854461","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":6,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":6,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":6,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Lublin\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":6,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Lublin\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":"tool_calls","message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[],"created":1756221269,"model":"palmyra-x4","usage":{"prompt_tokens":212,"total_tokens":365,"completion_tokens":153,"prompt_token_details":null,"completion_tokens_details":null},"system_fingerprint":"v1","service_tier":null}
+
+
+ '
+ headers:
+ Content-Type:
+ - text/event-stream
+ Transfer-Encoding:
+ - chunked
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_streaming_chat_multiple_tool_call_requests_with_events_with_content.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_streaming_chat_multiple_tool_call_requests_with_events_with_content.yaml
new file mode 100644
index 0000000000..33512eda7c
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_streaming_chat_multiple_tool_call_requests_with_events_with_content.yaml
@@ -0,0 +1,120 @@
+interactions:
+- request:
+ body: '{"messages":[{"role":"user","content":"What is the weather like in Zakopane,
+ Warsaw, Lodz, Katowice, Krakow, Poznan and Lublin today?"}],"model":"palmyra-x4","max_tokens":340,"stop":"I
+ am","stream":true,"stream_options":{"include_usage":true},"temperature":0.7,"tools":[{"function":{"description":"Return
+ weather in the specific location.","name":"get_weather","parameters":{"properties":{"location":{"description":"Location
+ to return weather at","type":"string"}},"required":["location"],"type":"object"}},"type":"function"}],"top_p":0.9}'
+ headers:
+ accept:
+ - application/json
+ accept-encoding:
+ - gzip, deflate
+ connection:
+ - keep-alive
+ content-length:
+ - '539'
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com/v1/chat
+ response:
+ body:
+ string: 'data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":"chatcmpl-tool-5ac885d9b1b54a66b11f014a1ecb5b9d","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":"chatcmpl-tool-5ac885d9b1b54a66b11f014a1ecb5b9d","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Zakopane\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Zakopane\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":1,"id":"chatcmpl-tool-368eedfd835c4186b5cb97c69d803cf0","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":1,"id":"chatcmpl-tool-368eedfd835c4186b5cb97c69d803cf0","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":1,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":1,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":1,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Warsaw\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":1,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Warsaw\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":2,"id":"chatcmpl-tool-af73f77676e3402e9e04a4f867552ddd","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":2,"id":"chatcmpl-tool-af73f77676e3402e9e04a4f867552ddd","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":2,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":2,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":2,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Lodz\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":2,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Lodz\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":3,"id":"chatcmpl-tool-e9d9b531d7954d789c1ccc21dbdd3be0","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":3,"id":"chatcmpl-tool-e9d9b531d7954d789c1ccc21dbdd3be0","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":3,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":3,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":3,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Katowice\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":3,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Katowice\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":4,"id":"chatcmpl-tool-a5155160b47c4f5c9f02eb234cac9e7c","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":4,"id":"chatcmpl-tool-a5155160b47c4f5c9f02eb234cac9e7c","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":4,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":4,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":4,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Krakow\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":4,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Krakow\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":5,"id":"chatcmpl-tool-aad9face17d14c7296dd569213e61f47","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":5,"id":"chatcmpl-tool-aad9face17d14c7296dd569213e61f47","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":5,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":5,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":5,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Poznan\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":5,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Poznan\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":6,"id":"chatcmpl-tool-938c427496df48f3b2efb60d6a854461","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":6,"id":"chatcmpl-tool-938c427496df48f3b2efb60d6a854461","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":6,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":6,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":6,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Lublin\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":6,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Lublin\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":"tool_calls","message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[],"created":1756221269,"model":"palmyra-x4","usage":{"prompt_tokens":212,"total_tokens":365,"completion_tokens":153,"prompt_token_details":null,"completion_tokens_details":null},"system_fingerprint":"v1","service_tier":null}
+
+
+ '
+ headers:
+ Content-Type:
+ - text/event-stream
+ Transfer-Encoding:
+ - chunked
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_streaming_chat_multiple_tool_call_requests_with_events_with_no_content.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_streaming_chat_multiple_tool_call_requests_with_events_with_no_content.yaml
new file mode 100644
index 0000000000..33512eda7c
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_streaming_chat_multiple_tool_call_requests_with_events_with_no_content.yaml
@@ -0,0 +1,120 @@
+interactions:
+- request:
+ body: '{"messages":[{"role":"user","content":"What is the weather like in Zakopane,
+ Warsaw, Lodz, Katowice, Krakow, Poznan and Lublin today?"}],"model":"palmyra-x4","max_tokens":340,"stop":"I
+ am","stream":true,"stream_options":{"include_usage":true},"temperature":0.7,"tools":[{"function":{"description":"Return
+ weather in the specific location.","name":"get_weather","parameters":{"properties":{"location":{"description":"Location
+ to return weather at","type":"string"}},"required":["location"],"type":"object"}},"type":"function"}],"top_p":0.9}'
+ headers:
+ accept:
+ - application/json
+ accept-encoding:
+ - gzip, deflate
+ connection:
+ - keep-alive
+ content-length:
+ - '539'
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com/v1/chat
+ response:
+ body:
+ string: 'data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":"chatcmpl-tool-5ac885d9b1b54a66b11f014a1ecb5b9d","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":"chatcmpl-tool-5ac885d9b1b54a66b11f014a1ecb5b9d","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Zakopane\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Zakopane\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":1,"id":"chatcmpl-tool-368eedfd835c4186b5cb97c69d803cf0","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":1,"id":"chatcmpl-tool-368eedfd835c4186b5cb97c69d803cf0","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":1,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":1,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":1,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Warsaw\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":1,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Warsaw\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":2,"id":"chatcmpl-tool-af73f77676e3402e9e04a4f867552ddd","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":2,"id":"chatcmpl-tool-af73f77676e3402e9e04a4f867552ddd","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":2,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":2,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":2,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Lodz\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":2,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Lodz\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":3,"id":"chatcmpl-tool-e9d9b531d7954d789c1ccc21dbdd3be0","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":3,"id":"chatcmpl-tool-e9d9b531d7954d789c1ccc21dbdd3be0","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":3,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":3,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":3,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Katowice\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":3,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Katowice\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":4,"id":"chatcmpl-tool-a5155160b47c4f5c9f02eb234cac9e7c","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":4,"id":"chatcmpl-tool-a5155160b47c4f5c9f02eb234cac9e7c","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":4,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":4,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":4,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Krakow\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":4,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Krakow\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":5,"id":"chatcmpl-tool-aad9face17d14c7296dd569213e61f47","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":5,"id":"chatcmpl-tool-aad9face17d14c7296dd569213e61f47","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":5,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":5,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":5,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Poznan\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":5,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Poznan\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":6,"id":"chatcmpl-tool-938c427496df48f3b2efb60d6a854461","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":6,"id":"chatcmpl-tool-938c427496df48f3b2efb60d6a854461","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":6,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":6,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":6,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Lublin\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":6,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Lublin\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":"tool_calls","message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[],"created":1756221269,"model":"palmyra-x4","usage":{"prompt_tokens":212,"total_tokens":365,"completion_tokens":153,"prompt_token_details":null,"completion_tokens_details":null},"system_fingerprint":"v1","service_tier":null}
+
+
+ '
+ headers:
+ Content-Type:
+ - text/event-stream
+ Transfer-Encoding:
+ - chunked
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_streaming_chat_tool_call_request_legacy.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_streaming_chat_tool_call_request_legacy.yaml
new file mode 100644
index 0000000000..827cea7580
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_streaming_chat_tool_call_request_legacy.yaml
@@ -0,0 +1,53 @@
+interactions:
+- request:
+ body: '{"messages":[{"role":"user","content":"What is the weather like in Zakopane
+ today?"}],"model":"palmyra-x4","max_tokens":340,"stop":"I am","stream":true,"stream_options":{"include_usage":true},"temperature":0.7,"tools":[{"function":{"description":"Return
+ weather in the specific location.","name":"get_weather","parameters":{"properties":{"location":{"description":"Location
+ to return weather at","type":"string"}},"required":["location"],"type":"object"}},"type":"function"}],"top_p":0.9}'
+ headers:
+ accept:
+ - application/json
+ accept-encoding:
+ - gzip, deflate
+ connection:
+ - keep-alive
+ content-length:
+ - '488'
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com/v1/chat
+ response:
+ body:
+ string: 'data: {"id":"a2c90cfe-1887-47df-9b3b-f8a20ba21ff2","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755878837,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"a2c90cfe-1887-47df-9b3b-f8a20ba21ff2","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":"chatcmpl-tool-a31f1a5690b14b7daf0e78d2a2d23da2","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":"chatcmpl-tool-a31f1a5690b14b7daf0e78d2a2d23da2","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755878837,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"a2c90cfe-1887-47df-9b3b-f8a20ba21ff2","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755878837,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"a2c90cfe-1887-47df-9b3b-f8a20ba21ff2","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Zakopane\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Zakopane\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755878837,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"a2c90cfe-1887-47df-9b3b-f8a20ba21ff2","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":"tool_calls","message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755878837,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"a2c90cfe-1887-47df-9b3b-f8a20ba21ff2","object":"chat.completion.chunk","choices":[],"created":1755878837,"model":"palmyra-x4","usage":{"prompt_tokens":194,"total_tokens":216,"completion_tokens":22,"prompt_token_details":null,"completion_tokens_details":null},"system_fingerprint":"v1","service_tier":null}
+
+
+ '
+ headers:
+ Content-Type:
+ - text/event-stream
+ Transfer-Encoding:
+ - chunked
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_streaming_chat_tool_call_request_with_events_with_content.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_streaming_chat_tool_call_request_with_events_with_content.yaml
new file mode 100644
index 0000000000..827cea7580
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_streaming_chat_tool_call_request_with_events_with_content.yaml
@@ -0,0 +1,53 @@
+interactions:
+- request:
+ body: '{"messages":[{"role":"user","content":"What is the weather like in Zakopane
+ today?"}],"model":"palmyra-x4","max_tokens":340,"stop":"I am","stream":true,"stream_options":{"include_usage":true},"temperature":0.7,"tools":[{"function":{"description":"Return
+ weather in the specific location.","name":"get_weather","parameters":{"properties":{"location":{"description":"Location
+ to return weather at","type":"string"}},"required":["location"],"type":"object"}},"type":"function"}],"top_p":0.9}'
+ headers:
+ accept:
+ - application/json
+ accept-encoding:
+ - gzip, deflate
+ connection:
+ - keep-alive
+ content-length:
+ - '488'
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com/v1/chat
+ response:
+ body:
+ string: 'data: {"id":"a2c90cfe-1887-47df-9b3b-f8a20ba21ff2","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755878837,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"a2c90cfe-1887-47df-9b3b-f8a20ba21ff2","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":"chatcmpl-tool-a31f1a5690b14b7daf0e78d2a2d23da2","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":"chatcmpl-tool-a31f1a5690b14b7daf0e78d2a2d23da2","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755878837,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"a2c90cfe-1887-47df-9b3b-f8a20ba21ff2","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755878837,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"a2c90cfe-1887-47df-9b3b-f8a20ba21ff2","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Zakopane\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Zakopane\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755878837,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"a2c90cfe-1887-47df-9b3b-f8a20ba21ff2","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":"tool_calls","message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755878837,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"a2c90cfe-1887-47df-9b3b-f8a20ba21ff2","object":"chat.completion.chunk","choices":[],"created":1755878837,"model":"palmyra-x4","usage":{"prompt_tokens":194,"total_tokens":216,"completion_tokens":22,"prompt_token_details":null,"completion_tokens_details":null},"system_fingerprint":"v1","service_tier":null}
+
+
+ '
+ headers:
+ Content-Type:
+ - text/event-stream
+ Transfer-Encoding:
+ - chunked
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_streaming_chat_tool_call_request_with_events_with_no_content.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_streaming_chat_tool_call_request_with_events_with_no_content.yaml
new file mode 100644
index 0000000000..827cea7580
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_streaming_chat_tool_call_request_with_events_with_no_content.yaml
@@ -0,0 +1,53 @@
+interactions:
+- request:
+ body: '{"messages":[{"role":"user","content":"What is the weather like in Zakopane
+ today?"}],"model":"palmyra-x4","max_tokens":340,"stop":"I am","stream":true,"stream_options":{"include_usage":true},"temperature":0.7,"tools":[{"function":{"description":"Return
+ weather in the specific location.","name":"get_weather","parameters":{"properties":{"location":{"description":"Location
+ to return weather at","type":"string"}},"required":["location"],"type":"object"}},"type":"function"}],"top_p":0.9}'
+ headers:
+ accept:
+ - application/json
+ accept-encoding:
+ - gzip, deflate
+ connection:
+ - keep-alive
+ content-length:
+ - '488'
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com/v1/chat
+ response:
+ body:
+ string: 'data: {"id":"a2c90cfe-1887-47df-9b3b-f8a20ba21ff2","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755878837,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"a2c90cfe-1887-47df-9b3b-f8a20ba21ff2","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":"chatcmpl-tool-a31f1a5690b14b7daf0e78d2a2d23da2","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":"chatcmpl-tool-a31f1a5690b14b7daf0e78d2a2d23da2","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755878837,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"a2c90cfe-1887-47df-9b3b-f8a20ba21ff2","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755878837,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"a2c90cfe-1887-47df-9b3b-f8a20ba21ff2","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Zakopane\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Zakopane\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755878837,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"a2c90cfe-1887-47df-9b3b-f8a20ba21ff2","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":"tool_calls","message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755878837,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"a2c90cfe-1887-47df-9b3b-f8a20ba21ff2","object":"chat.completion.chunk","choices":[],"created":1755878837,"model":"palmyra-x4","usage":{"prompt_tokens":194,"total_tokens":216,"completion_tokens":22,"prompt_token_details":null,"completion_tokens_details":null},"system_fingerprint":"v1","service_tier":null}
+
+
+ '
+ headers:
+ Content-Type:
+ - text/event-stream
+ Transfer-Encoding:
+ - chunked
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_streaming_chat_tool_calls_legacy.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_streaming_chat_tool_calls_legacy.yaml
new file mode 100644
index 0000000000..32c36e3218
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_streaming_chat_tool_calls_legacy.yaml
@@ -0,0 +1,185 @@
+interactions:
+- request:
+ body: '{"messages":[{"role":"user","content":"What is the weather like today?"},{"role":"assistant","content":"","tool_calls":[{"type":"function","function":{"name":"get_current_weather","arguments":"{\"location\":
+ \"San Francisco\"}"}}]},{"role":"tool","content":"The weather in San Francisco
+ is 70 degrees and sunny."}],"model":"palmyra-x4","max_tokens":340,"stop":"I
+ am","stream":true,"stream_options":{"include_usage":true},"temperature":0.7,"tools":[{"function":{"description":"Return
+ weather in the specific location.","name":"get_weather","parameters":{"properties":{"location":{"description":"Location
+ to return weather at","type":"string"}},"required":["location"],"type":"object"}},"type":"function"}],"top_p":0.9}'
+ headers:
+ accept:
+ - application/json
+ accept-encoding:
+ - gzip, deflate
+ connection:
+ - keep-alive
+ content-length:
+ - '717'
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com/v1/chat
+ response:
+ body:
+ string: 'data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"The","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"The","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ weather","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ weather","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ in","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ in","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ San","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ San","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ Francisco","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ Francisco","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ today","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ today","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ is","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ is","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ ","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ ","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"7","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"7","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"0","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"0","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ degrees","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ degrees","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ and","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ and","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ sunny","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ sunny","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":".","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":".","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ If","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ If","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ you","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ you","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"''re","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"''re","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ planning","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ planning","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ to","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ to","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ go","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ go","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ out","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ out","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":",","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":",","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ it","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ it","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ seems","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ seems","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ like","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ like","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ a","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ a","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ great","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ great","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ day","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ day","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ for","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ for","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ it","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ it","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"!","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"!","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":"stop","message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[],"created":1755858159,"model":"palmyra-x4","usage":{"prompt_tokens":244,"total_tokens":275,"completion_tokens":31,"prompt_token_details":null,"completion_tokens_details":null},"system_fingerprint":"v1","service_tier":null}
+
+
+ '
+ headers:
+ Content-Type:
+ - text/event-stream
+ Transfer-Encoding:
+ - chunked
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_streaming_chat_tool_calls_with_events_with_content.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_streaming_chat_tool_calls_with_events_with_content.yaml
new file mode 100644
index 0000000000..32c36e3218
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_streaming_chat_tool_calls_with_events_with_content.yaml
@@ -0,0 +1,185 @@
+interactions:
+- request:
+ body: '{"messages":[{"role":"user","content":"What is the weather like today?"},{"role":"assistant","content":"","tool_calls":[{"type":"function","function":{"name":"get_current_weather","arguments":"{\"location\":
+ \"San Francisco\"}"}}]},{"role":"tool","content":"The weather in San Francisco
+ is 70 degrees and sunny."}],"model":"palmyra-x4","max_tokens":340,"stop":"I
+ am","stream":true,"stream_options":{"include_usage":true},"temperature":0.7,"tools":[{"function":{"description":"Return
+ weather in the specific location.","name":"get_weather","parameters":{"properties":{"location":{"description":"Location
+ to return weather at","type":"string"}},"required":["location"],"type":"object"}},"type":"function"}],"top_p":0.9}'
+ headers:
+ accept:
+ - application/json
+ accept-encoding:
+ - gzip, deflate
+ connection:
+ - keep-alive
+ content-length:
+ - '717'
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com/v1/chat
+ response:
+ body:
+ string: 'data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"The","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"The","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ weather","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ weather","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ in","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ in","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ San","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ San","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ Francisco","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ Francisco","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ today","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ today","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ is","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ is","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ ","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ ","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"7","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"7","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"0","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"0","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ degrees","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ degrees","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ and","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ and","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ sunny","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ sunny","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":".","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":".","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ If","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ If","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ you","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ you","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"''re","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"''re","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ planning","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ planning","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ to","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ to","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ go","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ go","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ out","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ out","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":",","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":",","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ it","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ it","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ seems","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ seems","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ like","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ like","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ a","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ a","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ great","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ great","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ day","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ day","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ for","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ for","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ it","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ it","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"!","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"!","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":"stop","message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[],"created":1755858159,"model":"palmyra-x4","usage":{"prompt_tokens":244,"total_tokens":275,"completion_tokens":31,"prompt_token_details":null,"completion_tokens_details":null},"system_fingerprint":"v1","service_tier":null}
+
+
+ '
+ headers:
+ Content-Type:
+ - text/event-stream
+ Transfer-Encoding:
+ - chunked
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_streaming_chat_tool_calls_with_events_with_no_content.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_streaming_chat_tool_calls_with_events_with_no_content.yaml
new file mode 100644
index 0000000000..32c36e3218
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_streaming_chat_tool_calls_with_events_with_no_content.yaml
@@ -0,0 +1,185 @@
+interactions:
+- request:
+ body: '{"messages":[{"role":"user","content":"What is the weather like today?"},{"role":"assistant","content":"","tool_calls":[{"type":"function","function":{"name":"get_current_weather","arguments":"{\"location\":
+ \"San Francisco\"}"}}]},{"role":"tool","content":"The weather in San Francisco
+ is 70 degrees and sunny."}],"model":"palmyra-x4","max_tokens":340,"stop":"I
+ am","stream":true,"stream_options":{"include_usage":true},"temperature":0.7,"tools":[{"function":{"description":"Return
+ weather in the specific location.","name":"get_weather","parameters":{"properties":{"location":{"description":"Location
+ to return weather at","type":"string"}},"required":["location"],"type":"object"}},"type":"function"}],"top_p":0.9}'
+ headers:
+ accept:
+ - application/json
+ accept-encoding:
+ - gzip, deflate
+ connection:
+ - keep-alive
+ content-length:
+ - '717'
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com/v1/chat
+ response:
+ body:
+ string: 'data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"The","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"The","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ weather","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ weather","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ in","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ in","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ San","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ San","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ Francisco","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ Francisco","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ today","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ today","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ is","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ is","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ ","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ ","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"7","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"7","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"0","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"0","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ degrees","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ degrees","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ and","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ and","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ sunny","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ sunny","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":".","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":".","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ If","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ If","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ you","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ you","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"''re","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"''re","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ planning","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ planning","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ to","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ to","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ go","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ go","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ out","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ out","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":",","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":",","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ it","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ it","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ seems","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ seems","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ like","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ like","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ a","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ a","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ great","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ great","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ day","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ day","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ for","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ for","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ it","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ it","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"!","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"!","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":"stop","message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[],"created":1755858159,"model":"palmyra-x4","usage":{"prompt_tokens":244,"total_tokens":275,"completion_tokens":31,"prompt_token_details":null,"completion_tokens_details":null},"system_fingerprint":"v1","service_tier":null}
+
+
+ '
+ headers:
+ Content-Type:
+ - text/event-stream
+ Transfer-Encoding:
+ - chunked
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_streaming_chat_with_events_with_content.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_streaming_chat_with_events_with_content.yaml
new file mode 100644
index 0000000000..7388f3fe94
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_streaming_chat_with_events_with_content.yaml
@@ -0,0 +1,195 @@
+interactions:
+- request:
+ body: '{"messages":[{"role":"user","content":"Tell me a joke about OpenTelemetry"}],"model":"palmyra-x4","max_tokens":340,"stop":"I
+ am","stream":true,"stream_options":{"include_usage":true},"temperature":0.7,"top_p":0.9}'
+ headers:
+ accept:
+ - application/json
+ accept-encoding:
+ - gzip, deflate
+ connection:
+ - keep-alive
+ content-length:
+ - '213'
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com/v1/chat
+ response:
+ body:
+ string: 'data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"Sure","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Sure","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":",","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":",","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ here","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ here","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"''s","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"''s","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ a","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ a","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ light","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ light","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"-hearted","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"-hearted","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ joke","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ joke","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ about","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ about","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":":\n\n","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":":\n\n","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"Why","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Why","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ did","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ did","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ the","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ the","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ developer","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ developer","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ go","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ go","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ broke","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ broke","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"?","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"?","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ Because","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ Because","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ he","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ he","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ used","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ used","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ and","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ and","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ couldn","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ couldn","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"''t","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"''t","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ keep","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ keep","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ his","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ his","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ expenses","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ expenses","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ under","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ under","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ **","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ **","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"trace","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"trace","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"**","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"**","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"!","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"!","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":"stop","message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[],"created":1755846931,"model":"palmyra-x4","usage":{"prompt_tokens":39,"total_tokens":76,"completion_tokens":37,"prompt_token_details":null,"completion_tokens_details":null},"system_fingerprint":"v1","service_tier":null}
+
+
+ '
+ headers:
+ Content-Type:
+ - text/event-stream
+ Transfer-Encoding:
+ - chunked
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_streaming_chat_with_events_with_no_content.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_streaming_chat_with_events_with_no_content.yaml
new file mode 100644
index 0000000000..7388f3fe94
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_async_streaming_chat_with_events_with_no_content.yaml
@@ -0,0 +1,195 @@
+interactions:
+- request:
+ body: '{"messages":[{"role":"user","content":"Tell me a joke about OpenTelemetry"}],"model":"palmyra-x4","max_tokens":340,"stop":"I
+ am","stream":true,"stream_options":{"include_usage":true},"temperature":0.7,"top_p":0.9}'
+ headers:
+ accept:
+ - application/json
+ accept-encoding:
+ - gzip, deflate
+ connection:
+ - keep-alive
+ content-length:
+ - '213'
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com/v1/chat
+ response:
+ body:
+ string: 'data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"Sure","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Sure","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":",","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":",","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ here","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ here","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"''s","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"''s","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ a","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ a","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ light","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ light","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"-hearted","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"-hearted","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ joke","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ joke","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ about","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ about","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":":\n\n","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":":\n\n","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"Why","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Why","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ did","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ did","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ the","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ the","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ developer","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ developer","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ go","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ go","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ broke","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ broke","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"?","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"?","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ Because","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ Because","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ he","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ he","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ used","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ used","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ and","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ and","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ couldn","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ couldn","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"''t","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"''t","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ keep","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ keep","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ his","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ his","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ expenses","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ expenses","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ under","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ under","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ **","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ **","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"trace","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"trace","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"**","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"**","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"!","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"!","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":"stop","message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[],"created":1755846931,"model":"palmyra-x4","usage":{"prompt_tokens":39,"total_tokens":76,"completion_tokens":37,"prompt_token_details":null,"completion_tokens_details":null},"system_fingerprint":"v1","service_tier":null}
+
+
+ '
+ headers:
+ Content-Type:
+ - text/event-stream
+ Transfer-Encoding:
+ - chunked
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_chat_legacy.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_chat_legacy.yaml
new file mode 100644
index 0000000000..b260192a1b
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_chat_legacy.yaml
@@ -0,0 +1,73 @@
+interactions:
+- request:
+ body: '{
+ "model": "palmyra-x4",
+ "messages": [
+ {
+ "role": "user",
+ "content": "Tell me a joke about OpenTelemetry"
+ }
+ ],
+ "stream": false,
+ "max_tokens": 340,
+ "temperature": 0.7,
+ "top_p": 0.9,
+ "stop": "I am"
+ }'
+ headers:
+ accept:
+ - application/json
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com:443/v1/chat
+ response:
+ body:
+ string: '{
+ "id": "57e4f58f-f7b1-41d8-be17-a6279c073aad",
+ "object": "chat.completion",
+ "model": "palmyra-x4",
+ "created": "1715361795",
+ "choices": [
+ {
+ "index": 0,
+ "finish_reason": "stop",
+ "message": {
+ "role": "assistant",
+ "content": "A joke about OpenTelemetry! Here it is:\n\nWhy did the OpenTelemetry span go to therapy?\n\nBecause it was struggling to instrument its issues!\n\n(Get it? \"Instrument\" has a double meaning here, referring both to the act of collecting metrics and traces in OpenTelemetry, as well as working through one''s problems... okay, maybe it''s just a techie joke)",
+ "refusal": null,
+ "tool_calls": [],
+ "graph_data": {
+ "sources": [],
+ "status": "finished",
+ "subqueries": []
+ },
+ "llm_data": null,
+ "translation_data": null,
+ "web_search_data": null
+ }
+ }
+ ],
+ "usage": {
+ "prompt_tokens": 40,
+ "total_tokens": 340,
+ "completion_tokens": 300,
+ "prompt_token_details": {
+ "cached_tokens": 0
+ },
+ "completion_token_details": {
+ "reasoning_tokens": 0
+ }
+ },
+ "system_fingerprint": "v1",
+ "service_tier": "standard"
+ }'
+ headers:
+ Content-Type:
+ - application/json; charset=utf-8
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_chat_multiple_choices_legacy.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_chat_multiple_choices_legacy.yaml
new file mode 100644
index 0000000000..10dd922fc8
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_chat_multiple_choices_legacy.yaml
@@ -0,0 +1,34 @@
+interactions:
+- request:
+ body: '{"messages":[{"role":"user","content":"Tell me a joke about OpenTelemetry"}],"model":"palmyra-x4","max_tokens":340,"n":2,"stop":"I
+ am","stream":false,"temperature":0.7,"top_p":0.9}'
+ headers:
+ accept:
+ - application/json
+ accept-encoding:
+ - gzip, deflate
+ connection:
+ - keep-alive
+ content-length:
+ - '180'
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com/v1/chat
+ response:
+ body:
+ string: '{"id":"f383320f-f6d7-46b6-966b-7877c6fc0e79","object":"chat.completion","choices":[{"index":0,"finish_reason":"stop","message":{"content":"Sure,
+ here''s a joke for you:\n\nWhy did the developer go broke? Because he used
+ up all his metrics on OpenTelemetry and had nothing left to measure his finances!","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null},{"index":1,"finish_reason":"stop","message":{"content":"Sure,
+ here''s a light-hearted joke about OpenTelemetry:\n\nWhy did the developer
+ go broke? Because he used up all his metrics on OpenTelemetry and had nothing
+ left to measure!","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129713,"model":"palmyra-x4","usage":{"prompt_tokens":39,"total_tokens":113,"completion_tokens":74,"prompt_token_details":null,"completion_tokens_details":null},"system_fingerprint":"v1","service_tier":null}'
+ headers:
+ Content-Type:
+ - application/json
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_chat_multiple_choices_with_events_with_content.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_chat_multiple_choices_with_events_with_content.yaml
new file mode 100644
index 0000000000..10dd922fc8
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_chat_multiple_choices_with_events_with_content.yaml
@@ -0,0 +1,34 @@
+interactions:
+- request:
+ body: '{"messages":[{"role":"user","content":"Tell me a joke about OpenTelemetry"}],"model":"palmyra-x4","max_tokens":340,"n":2,"stop":"I
+ am","stream":false,"temperature":0.7,"top_p":0.9}'
+ headers:
+ accept:
+ - application/json
+ accept-encoding:
+ - gzip, deflate
+ connection:
+ - keep-alive
+ content-length:
+ - '180'
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com/v1/chat
+ response:
+ body:
+ string: '{"id":"f383320f-f6d7-46b6-966b-7877c6fc0e79","object":"chat.completion","choices":[{"index":0,"finish_reason":"stop","message":{"content":"Sure,
+ here''s a joke for you:\n\nWhy did the developer go broke? Because he used
+ up all his metrics on OpenTelemetry and had nothing left to measure his finances!","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null},{"index":1,"finish_reason":"stop","message":{"content":"Sure,
+ here''s a light-hearted joke about OpenTelemetry:\n\nWhy did the developer
+ go broke? Because he used up all his metrics on OpenTelemetry and had nothing
+ left to measure!","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129713,"model":"palmyra-x4","usage":{"prompt_tokens":39,"total_tokens":113,"completion_tokens":74,"prompt_token_details":null,"completion_tokens_details":null},"system_fingerprint":"v1","service_tier":null}'
+ headers:
+ Content-Type:
+ - application/json
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_chat_multiple_choices_with_events_with_no_content.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_chat_multiple_choices_with_events_with_no_content.yaml
new file mode 100644
index 0000000000..10dd922fc8
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_chat_multiple_choices_with_events_with_no_content.yaml
@@ -0,0 +1,34 @@
+interactions:
+- request:
+ body: '{"messages":[{"role":"user","content":"Tell me a joke about OpenTelemetry"}],"model":"palmyra-x4","max_tokens":340,"n":2,"stop":"I
+ am","stream":false,"temperature":0.7,"top_p":0.9}'
+ headers:
+ accept:
+ - application/json
+ accept-encoding:
+ - gzip, deflate
+ connection:
+ - keep-alive
+ content-length:
+ - '180'
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com/v1/chat
+ response:
+ body:
+ string: '{"id":"f383320f-f6d7-46b6-966b-7877c6fc0e79","object":"chat.completion","choices":[{"index":0,"finish_reason":"stop","message":{"content":"Sure,
+ here''s a joke for you:\n\nWhy did the developer go broke? Because he used
+ up all his metrics on OpenTelemetry and had nothing left to measure his finances!","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null},{"index":1,"finish_reason":"stop","message":{"content":"Sure,
+ here''s a light-hearted joke about OpenTelemetry:\n\nWhy did the developer
+ go broke? Because he used up all his metrics on OpenTelemetry and had nothing
+ left to measure!","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129713,"model":"palmyra-x4","usage":{"prompt_tokens":39,"total_tokens":113,"completion_tokens":74,"prompt_token_details":null,"completion_tokens_details":null},"system_fingerprint":"v1","service_tier":null}'
+ headers:
+ Content-Type:
+ - application/json
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_chat_multiple_tool_call_requests_legacy.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_chat_multiple_tool_call_requests_legacy.yaml
new file mode 100644
index 0000000000..b9a7da346b
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_chat_multiple_tool_call_requests_legacy.yaml
@@ -0,0 +1,39 @@
+interactions:
+- request:
+ body: '{"messages":[{"role":"user","content":"What is the weather like in Zakopane,
+ Warsaw, Lodz, Katowice, Krakow, Poznan and Lublin today?"}],"model":"palmyra-x4","max_tokens":340,"stop":"I
+ am","stream":false,"temperature":0.7,"tools":[{"function":{"description":"Return
+ weather in the specific location.","name":"get_weather","parameters":{"properties":{"location":{"description":"Location
+ to return weather at","type":"string"}},"required":["location"],"type":"object"}},"type":"function"}],"top_p":0.9}'
+ headers:
+ accept:
+ - application/json
+ accept-encoding:
+ - gzip, deflate
+ connection:
+ - keep-alive
+ content-length:
+ - '500'
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com/v1/chat
+ response:
+ body:
+ string: '{"id":"48dfd042-80b7-49ac-8cd9-ea800839a0dc","object":"chat.completion","choices":[{"index":0,"finish_reason":"tool_calls","message":{"content":null,"role":"assistant","tool_calls":[{"index":null,"id":"chatcmpl-tool-429aded05dbe483697404967c567cbd6","type":"function","function":{"name":"get_weather","arguments":"{\"location\":
+ \"Zakopane\"}"}},{"index":null,"id":"chatcmpl-tool-d5ac8291d8b749cda1d03b18baa013fa","type":"function","function":{"name":"get_weather","arguments":"{\"location\":
+ \"Warsaw\"}"}},{"index":null,"id":"chatcmpl-tool-cd3559179f45440f8b62c90061810568","type":"function","function":{"name":"get_weather","arguments":"{\"location\":
+ \"Lodz\"}"}},{"index":null,"id":"chatcmpl-tool-6d25c273232f49febba77f29ec73f103","type":"function","function":{"name":"get_weather","arguments":"{\"location\":
+ \"Katowice\"}"}},{"index":null,"id":"chatcmpl-tool-f639e3c813c9409baf07d08ca2e2e456","type":"function","function":{"name":"get_weather","arguments":"{\"location\":
+ \"Krakow\"}"}},{"index":null,"id":"chatcmpl-tool-f17729a2f75f46afb9a74d66b80580ff","type":"function","function":{"name":"get_weather","arguments":"{\"location\":
+ \"Poznan\"}"}},{"index":null,"id":"chatcmpl-tool-d3982e8dc28241fbad74d2b7168a3aa6","type":"function","function":{"name":"get_weather","arguments":"{\"location\":
+ \"Lublin\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221098,"model":"palmyra-x4","usage":{"prompt_tokens":212,"total_tokens":365,"completion_tokens":153,"prompt_token_details":null,"completion_tokens_details":null},"system_fingerprint":"v1","service_tier":null}'
+ headers:
+ Content-Type:
+ - application/json
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_chat_multiple_tool_call_requests_with_events_with_content.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_chat_multiple_tool_call_requests_with_events_with_content.yaml
new file mode 100644
index 0000000000..b9a7da346b
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_chat_multiple_tool_call_requests_with_events_with_content.yaml
@@ -0,0 +1,39 @@
+interactions:
+- request:
+ body: '{"messages":[{"role":"user","content":"What is the weather like in Zakopane,
+ Warsaw, Lodz, Katowice, Krakow, Poznan and Lublin today?"}],"model":"palmyra-x4","max_tokens":340,"stop":"I
+ am","stream":false,"temperature":0.7,"tools":[{"function":{"description":"Return
+ weather in the specific location.","name":"get_weather","parameters":{"properties":{"location":{"description":"Location
+ to return weather at","type":"string"}},"required":["location"],"type":"object"}},"type":"function"}],"top_p":0.9}'
+ headers:
+ accept:
+ - application/json
+ accept-encoding:
+ - gzip, deflate
+ connection:
+ - keep-alive
+ content-length:
+ - '500'
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com/v1/chat
+ response:
+ body:
+ string: '{"id":"48dfd042-80b7-49ac-8cd9-ea800839a0dc","object":"chat.completion","choices":[{"index":0,"finish_reason":"tool_calls","message":{"content":null,"role":"assistant","tool_calls":[{"index":null,"id":"chatcmpl-tool-429aded05dbe483697404967c567cbd6","type":"function","function":{"name":"get_weather","arguments":"{\"location\":
+ \"Zakopane\"}"}},{"index":null,"id":"chatcmpl-tool-d5ac8291d8b749cda1d03b18baa013fa","type":"function","function":{"name":"get_weather","arguments":"{\"location\":
+ \"Warsaw\"}"}},{"index":null,"id":"chatcmpl-tool-cd3559179f45440f8b62c90061810568","type":"function","function":{"name":"get_weather","arguments":"{\"location\":
+ \"Lodz\"}"}},{"index":null,"id":"chatcmpl-tool-6d25c273232f49febba77f29ec73f103","type":"function","function":{"name":"get_weather","arguments":"{\"location\":
+ \"Katowice\"}"}},{"index":null,"id":"chatcmpl-tool-f639e3c813c9409baf07d08ca2e2e456","type":"function","function":{"name":"get_weather","arguments":"{\"location\":
+ \"Krakow\"}"}},{"index":null,"id":"chatcmpl-tool-f17729a2f75f46afb9a74d66b80580ff","type":"function","function":{"name":"get_weather","arguments":"{\"location\":
+ \"Poznan\"}"}},{"index":null,"id":"chatcmpl-tool-d3982e8dc28241fbad74d2b7168a3aa6","type":"function","function":{"name":"get_weather","arguments":"{\"location\":
+ \"Lublin\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221098,"model":"palmyra-x4","usage":{"prompt_tokens":212,"total_tokens":365,"completion_tokens":153,"prompt_token_details":null,"completion_tokens_details":null},"system_fingerprint":"v1","service_tier":null}'
+ headers:
+ Content-Type:
+ - application/json
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_chat_multiple_tool_call_requests_with_events_with_no_content.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_chat_multiple_tool_call_requests_with_events_with_no_content.yaml
new file mode 100644
index 0000000000..b9a7da346b
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_chat_multiple_tool_call_requests_with_events_with_no_content.yaml
@@ -0,0 +1,39 @@
+interactions:
+- request:
+ body: '{"messages":[{"role":"user","content":"What is the weather like in Zakopane,
+ Warsaw, Lodz, Katowice, Krakow, Poznan and Lublin today?"}],"model":"palmyra-x4","max_tokens":340,"stop":"I
+ am","stream":false,"temperature":0.7,"tools":[{"function":{"description":"Return
+ weather in the specific location.","name":"get_weather","parameters":{"properties":{"location":{"description":"Location
+ to return weather at","type":"string"}},"required":["location"],"type":"object"}},"type":"function"}],"top_p":0.9}'
+ headers:
+ accept:
+ - application/json
+ accept-encoding:
+ - gzip, deflate
+ connection:
+ - keep-alive
+ content-length:
+ - '500'
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com/v1/chat
+ response:
+ body:
+ string: '{"id":"48dfd042-80b7-49ac-8cd9-ea800839a0dc","object":"chat.completion","choices":[{"index":0,"finish_reason":"tool_calls","message":{"content":null,"role":"assistant","tool_calls":[{"index":null,"id":"chatcmpl-tool-429aded05dbe483697404967c567cbd6","type":"function","function":{"name":"get_weather","arguments":"{\"location\":
+ \"Zakopane\"}"}},{"index":null,"id":"chatcmpl-tool-d5ac8291d8b749cda1d03b18baa013fa","type":"function","function":{"name":"get_weather","arguments":"{\"location\":
+ \"Warsaw\"}"}},{"index":null,"id":"chatcmpl-tool-cd3559179f45440f8b62c90061810568","type":"function","function":{"name":"get_weather","arguments":"{\"location\":
+ \"Lodz\"}"}},{"index":null,"id":"chatcmpl-tool-6d25c273232f49febba77f29ec73f103","type":"function","function":{"name":"get_weather","arguments":"{\"location\":
+ \"Katowice\"}"}},{"index":null,"id":"chatcmpl-tool-f639e3c813c9409baf07d08ca2e2e456","type":"function","function":{"name":"get_weather","arguments":"{\"location\":
+ \"Krakow\"}"}},{"index":null,"id":"chatcmpl-tool-f17729a2f75f46afb9a74d66b80580ff","type":"function","function":{"name":"get_weather","arguments":"{\"location\":
+ \"Poznan\"}"}},{"index":null,"id":"chatcmpl-tool-d3982e8dc28241fbad74d2b7168a3aa6","type":"function","function":{"name":"get_weather","arguments":"{\"location\":
+ \"Lublin\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221098,"model":"palmyra-x4","usage":{"prompt_tokens":212,"total_tokens":365,"completion_tokens":153,"prompt_token_details":null,"completion_tokens_details":null},"system_fingerprint":"v1","service_tier":null}'
+ headers:
+ Content-Type:
+ - application/json
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_chat_tool_call_request_legacy.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_chat_tool_call_request_legacy.yaml
new file mode 100644
index 0000000000..5acb502aa0
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_chat_tool_call_request_legacy.yaml
@@ -0,0 +1,32 @@
+interactions:
+- request:
+ body: '{"messages":[{"role":"user","content":"What is the weather like in Zakopane
+ today?"}],"model":"palmyra-x4","max_tokens":340,"stop":"I am","stream":false,"temperature":0.7,"tools":[{"function":{"description":"Return
+ weather in the specific location.","name":"get_weather","parameters":{"properties":{"location":{"description":"Location
+ to return weather at","type":"string"}},"required":["location"],"type":"object"}},"type":"function"}],"top_p":0.9}'
+ headers:
+ accept:
+ - application/json
+ accept-encoding:
+ - gzip, deflate
+ connection:
+ - keep-alive
+ content-length:
+ - '449'
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com/v1/chat
+ response:
+ body:
+ string: '{"id":"ff64a3d4-01b4-4e7b-80b7-8e2b22d460da","object":"chat.completion","choices":[{"index":0,"finish_reason":"tool_calls","message":{"content":null,"role":"assistant","tool_calls":[{"index":null,"id":"chatcmpl-tool-7e03ea39417447e9a1fe7cd391b16476","type":"function","function":{"name":"get_weather","arguments":"{\"location\":
+ \"Zakopane\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755879022,"model":"palmyra-x4","usage":{"prompt_tokens":194,"total_tokens":216,"completion_tokens":22,"prompt_token_details":null,"completion_tokens_details":null},"system_fingerprint":"v1","service_tier":null}'
+ headers:
+ Content-Type:
+ - application/json
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_chat_tool_call_request_with_events_with_content.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_chat_tool_call_request_with_events_with_content.yaml
new file mode 100644
index 0000000000..5acb502aa0
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_chat_tool_call_request_with_events_with_content.yaml
@@ -0,0 +1,32 @@
+interactions:
+- request:
+ body: '{"messages":[{"role":"user","content":"What is the weather like in Zakopane
+ today?"}],"model":"palmyra-x4","max_tokens":340,"stop":"I am","stream":false,"temperature":0.7,"tools":[{"function":{"description":"Return
+ weather in the specific location.","name":"get_weather","parameters":{"properties":{"location":{"description":"Location
+ to return weather at","type":"string"}},"required":["location"],"type":"object"}},"type":"function"}],"top_p":0.9}'
+ headers:
+ accept:
+ - application/json
+ accept-encoding:
+ - gzip, deflate
+ connection:
+ - keep-alive
+ content-length:
+ - '449'
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com/v1/chat
+ response:
+ body:
+ string: '{"id":"ff64a3d4-01b4-4e7b-80b7-8e2b22d460da","object":"chat.completion","choices":[{"index":0,"finish_reason":"tool_calls","message":{"content":null,"role":"assistant","tool_calls":[{"index":null,"id":"chatcmpl-tool-7e03ea39417447e9a1fe7cd391b16476","type":"function","function":{"name":"get_weather","arguments":"{\"location\":
+ \"Zakopane\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755879022,"model":"palmyra-x4","usage":{"prompt_tokens":194,"total_tokens":216,"completion_tokens":22,"prompt_token_details":null,"completion_tokens_details":null},"system_fingerprint":"v1","service_tier":null}'
+ headers:
+ Content-Type:
+ - application/json
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_chat_tool_call_request_with_events_with_no_content.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_chat_tool_call_request_with_events_with_no_content.yaml
new file mode 100644
index 0000000000..5acb502aa0
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_chat_tool_call_request_with_events_with_no_content.yaml
@@ -0,0 +1,32 @@
+interactions:
+- request:
+ body: '{"messages":[{"role":"user","content":"What is the weather like in Zakopane
+ today?"}],"model":"palmyra-x4","max_tokens":340,"stop":"I am","stream":false,"temperature":0.7,"tools":[{"function":{"description":"Return
+ weather in the specific location.","name":"get_weather","parameters":{"properties":{"location":{"description":"Location
+ to return weather at","type":"string"}},"required":["location"],"type":"object"}},"type":"function"}],"top_p":0.9}'
+ headers:
+ accept:
+ - application/json
+ accept-encoding:
+ - gzip, deflate
+ connection:
+ - keep-alive
+ content-length:
+ - '449'
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com/v1/chat
+ response:
+ body:
+ string: '{"id":"ff64a3d4-01b4-4e7b-80b7-8e2b22d460da","object":"chat.completion","choices":[{"index":0,"finish_reason":"tool_calls","message":{"content":null,"role":"assistant","tool_calls":[{"index":null,"id":"chatcmpl-tool-7e03ea39417447e9a1fe7cd391b16476","type":"function","function":{"name":"get_weather","arguments":"{\"location\":
+ \"Zakopane\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755879022,"model":"palmyra-x4","usage":{"prompt_tokens":194,"total_tokens":216,"completion_tokens":22,"prompt_token_details":null,"completion_tokens_details":null},"system_fingerprint":"v1","service_tier":null}'
+ headers:
+ Content-Type:
+ - application/json
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_chat_tool_calls_legacy.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_chat_tool_calls_legacy.yaml
new file mode 100644
index 0000000000..c38d62fd19
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_chat_tool_calls_legacy.yaml
@@ -0,0 +1,110 @@
+interactions:
+- request:
+ body: '{
+ "model": "palmyra-x4",
+ "messages": [
+ {
+ "role": "user",
+ "content": "What is the weather like today?"
+ },
+ {
+ "role": "assistant",
+ "content": "",
+ "tool_calls": [
+ {
+ "type": "function",
+ "function": {
+ "name": "get_current_weather",
+ "arguments": "{\"location\": \"San Francisco\"}"
+ }
+ }
+ ]
+ },
+ {
+ "role": "tool",
+ "content": "The weather in San Francisco is 70 degrees and sunny."
+ }
+ ],
+ "tools": [
+ {
+ "function": {
+ "description": "Return weather in the specific location.",
+ "name": "get_weather",
+ "parameters": {
+ "properties": {
+ "location": {
+ "description": "Location to return weather at",
+ "type": "string"
+ },
+ },
+ "required": [
+ "location"
+ ],
+ "type": "object"
+ }
+ },
+ "type": "function"
+ }
+ ],
+ "stream": false,
+ "max_tokens": 340,
+ "temperature": 0.7,
+ "top_p": 0.9,
+ "stop": "I am"
+ }'
+ headers:
+ accept:
+ - application/json
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com:443/v1/chat
+ response:
+ body:
+ string: '{
+ "id": "1fc9b079-5315-43d9-a7f2-82c17b065615",
+ "object": "chat.completion",
+ "choices": [
+ {
+ "index": 0,
+ "finish_reason": "stop",
+ "message": {
+ "content": "Today in San Francisco, the weather is 70 degrees and sunny. Enjoy the day!",
+ "role": "assistant",
+ "tool_calls": null,
+ "graph_data": {
+ "sources": null,
+ "status": null,
+ "subqueries": null
+ },
+ "llm_data": null,
+ "image_data": null,
+ "translation_data": null,
+ "web_search_data": null,
+ "refusal": null
+ },
+ "logprobs": null,
+ "trace_details": null
+ }
+ ],
+ "created": 1755767284,
+ "model": "palmyra-x4",
+ "usage": {
+ "prompt_tokens": 244,
+ "total_tokens": 263,
+ "completion_tokens": 19,
+ "prompt_token_details": null,
+ "completion_tokens_details": null
+ },
+ "system_fingerprint": "v1",
+ "service_tier": null
+ }'
+ headers:
+ Content-Type:
+ - application/json; charset=utf-8
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_chat_tool_calls_with_events_with_content.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_chat_tool_calls_with_events_with_content.yaml
new file mode 100644
index 0000000000..c38d62fd19
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_chat_tool_calls_with_events_with_content.yaml
@@ -0,0 +1,110 @@
+interactions:
+- request:
+ body: '{
+ "model": "palmyra-x4",
+ "messages": [
+ {
+ "role": "user",
+ "content": "What is the weather like today?"
+ },
+ {
+ "role": "assistant",
+ "content": "",
+ "tool_calls": [
+ {
+ "type": "function",
+ "function": {
+ "name": "get_current_weather",
+ "arguments": "{\"location\": \"San Francisco\"}"
+ }
+ }
+ ]
+ },
+ {
+ "role": "tool",
+ "content": "The weather in San Francisco is 70 degrees and sunny."
+ }
+ ],
+ "tools": [
+ {
+ "function": {
+ "description": "Return weather in the specific location.",
+ "name": "get_weather",
+ "parameters": {
+ "properties": {
+ "location": {
+ "description": "Location to return weather at",
+ "type": "string"
+ },
+ },
+ "required": [
+ "location"
+ ],
+ "type": "object"
+ }
+ },
+ "type": "function"
+ }
+ ],
+ "stream": false,
+ "max_tokens": 340,
+ "temperature": 0.7,
+ "top_p": 0.9,
+ "stop": "I am"
+ }'
+ headers:
+ accept:
+ - application/json
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com:443/v1/chat
+ response:
+ body:
+ string: '{
+ "id": "1fc9b079-5315-43d9-a7f2-82c17b065615",
+ "object": "chat.completion",
+ "choices": [
+ {
+ "index": 0,
+ "finish_reason": "stop",
+ "message": {
+ "content": "Today in San Francisco, the weather is 70 degrees and sunny. Enjoy the day!",
+ "role": "assistant",
+ "tool_calls": null,
+ "graph_data": {
+ "sources": null,
+ "status": null,
+ "subqueries": null
+ },
+ "llm_data": null,
+ "image_data": null,
+ "translation_data": null,
+ "web_search_data": null,
+ "refusal": null
+ },
+ "logprobs": null,
+ "trace_details": null
+ }
+ ],
+ "created": 1755767284,
+ "model": "palmyra-x4",
+ "usage": {
+ "prompt_tokens": 244,
+ "total_tokens": 263,
+ "completion_tokens": 19,
+ "prompt_token_details": null,
+ "completion_tokens_details": null
+ },
+ "system_fingerprint": "v1",
+ "service_tier": null
+ }'
+ headers:
+ Content-Type:
+ - application/json; charset=utf-8
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_chat_tool_calls_with_events_with_no_content.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_chat_tool_calls_with_events_with_no_content.yaml
new file mode 100644
index 0000000000..c38d62fd19
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_chat_tool_calls_with_events_with_no_content.yaml
@@ -0,0 +1,110 @@
+interactions:
+- request:
+ body: '{
+ "model": "palmyra-x4",
+ "messages": [
+ {
+ "role": "user",
+ "content": "What is the weather like today?"
+ },
+ {
+ "role": "assistant",
+ "content": "",
+ "tool_calls": [
+ {
+ "type": "function",
+ "function": {
+ "name": "get_current_weather",
+ "arguments": "{\"location\": \"San Francisco\"}"
+ }
+ }
+ ]
+ },
+ {
+ "role": "tool",
+ "content": "The weather in San Francisco is 70 degrees and sunny."
+ }
+ ],
+ "tools": [
+ {
+ "function": {
+ "description": "Return weather in the specific location.",
+ "name": "get_weather",
+ "parameters": {
+ "properties": {
+ "location": {
+ "description": "Location to return weather at",
+ "type": "string"
+ },
+ },
+ "required": [
+ "location"
+ ],
+ "type": "object"
+ }
+ },
+ "type": "function"
+ }
+ ],
+ "stream": false,
+ "max_tokens": 340,
+ "temperature": 0.7,
+ "top_p": 0.9,
+ "stop": "I am"
+ }'
+ headers:
+ accept:
+ - application/json
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com:443/v1/chat
+ response:
+ body:
+ string: '{
+ "id": "1fc9b079-5315-43d9-a7f2-82c17b065615",
+ "object": "chat.completion",
+ "choices": [
+ {
+ "index": 0,
+ "finish_reason": "stop",
+ "message": {
+ "content": "Today in San Francisco, the weather is 70 degrees and sunny. Enjoy the day!",
+ "role": "assistant",
+ "tool_calls": null,
+ "graph_data": {
+ "sources": null,
+ "status": null,
+ "subqueries": null
+ },
+ "llm_data": null,
+ "image_data": null,
+ "translation_data": null,
+ "web_search_data": null,
+ "refusal": null
+ },
+ "logprobs": null,
+ "trace_details": null
+ }
+ ],
+ "created": 1755767284,
+ "model": "palmyra-x4",
+ "usage": {
+ "prompt_tokens": 244,
+ "total_tokens": 263,
+ "completion_tokens": 19,
+ "prompt_token_details": null,
+ "completion_tokens_details": null
+ },
+ "system_fingerprint": "v1",
+ "service_tier": null
+ }'
+ headers:
+ Content-Type:
+ - application/json; charset=utf-8
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_chat_with_events_with_content.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_chat_with_events_with_content.yaml
new file mode 100644
index 0000000000..b260192a1b
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_chat_with_events_with_content.yaml
@@ -0,0 +1,73 @@
+interactions:
+- request:
+ body: '{
+ "model": "palmyra-x4",
+ "messages": [
+ {
+ "role": "user",
+ "content": "Tell me a joke about OpenTelemetry"
+ }
+ ],
+ "stream": false,
+ "max_tokens": 340,
+ "temperature": 0.7,
+ "top_p": 0.9,
+ "stop": "I am"
+ }'
+ headers:
+ accept:
+ - application/json
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com:443/v1/chat
+ response:
+ body:
+ string: '{
+ "id": "57e4f58f-f7b1-41d8-be17-a6279c073aad",
+ "object": "chat.completion",
+ "model": "palmyra-x4",
+ "created": "1715361795",
+ "choices": [
+ {
+ "index": 0,
+ "finish_reason": "stop",
+ "message": {
+ "role": "assistant",
+ "content": "A joke about OpenTelemetry! Here it is:\n\nWhy did the OpenTelemetry span go to therapy?\n\nBecause it was struggling to instrument its issues!\n\n(Get it? \"Instrument\" has a double meaning here, referring both to the act of collecting metrics and traces in OpenTelemetry, as well as working through one''s problems... okay, maybe it''s just a techie joke)",
+ "refusal": null,
+ "tool_calls": [],
+ "graph_data": {
+ "sources": [],
+ "status": "finished",
+ "subqueries": []
+ },
+ "llm_data": null,
+ "translation_data": null,
+ "web_search_data": null
+ }
+ }
+ ],
+ "usage": {
+ "prompt_tokens": 40,
+ "total_tokens": 340,
+ "completion_tokens": 300,
+ "prompt_token_details": {
+ "cached_tokens": 0
+ },
+ "completion_token_details": {
+ "reasoning_tokens": 0
+ }
+ },
+ "system_fingerprint": "v1",
+ "service_tier": "standard"
+ }'
+ headers:
+ Content-Type:
+ - application/json; charset=utf-8
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_chat_with_events_with_no_content.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_chat_with_events_with_no_content.yaml
new file mode 100644
index 0000000000..b260192a1b
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_chat_with_events_with_no_content.yaml
@@ -0,0 +1,73 @@
+interactions:
+- request:
+ body: '{
+ "model": "palmyra-x4",
+ "messages": [
+ {
+ "role": "user",
+ "content": "Tell me a joke about OpenTelemetry"
+ }
+ ],
+ "stream": false,
+ "max_tokens": 340,
+ "temperature": 0.7,
+ "top_p": 0.9,
+ "stop": "I am"
+ }'
+ headers:
+ accept:
+ - application/json
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com:443/v1/chat
+ response:
+ body:
+ string: '{
+ "id": "57e4f58f-f7b1-41d8-be17-a6279c073aad",
+ "object": "chat.completion",
+ "model": "palmyra-x4",
+ "created": "1715361795",
+ "choices": [
+ {
+ "index": 0,
+ "finish_reason": "stop",
+ "message": {
+ "role": "assistant",
+ "content": "A joke about OpenTelemetry! Here it is:\n\nWhy did the OpenTelemetry span go to therapy?\n\nBecause it was struggling to instrument its issues!\n\n(Get it? \"Instrument\" has a double meaning here, referring both to the act of collecting metrics and traces in OpenTelemetry, as well as working through one''s problems... okay, maybe it''s just a techie joke)",
+ "refusal": null,
+ "tool_calls": [],
+ "graph_data": {
+ "sources": [],
+ "status": "finished",
+ "subqueries": []
+ },
+ "llm_data": null,
+ "translation_data": null,
+ "web_search_data": null
+ }
+ }
+ ],
+ "usage": {
+ "prompt_tokens": 40,
+ "total_tokens": 340,
+ "completion_tokens": 300,
+ "prompt_token_details": {
+ "cached_tokens": 0
+ },
+ "completion_token_details": {
+ "reasoning_tokens": 0
+ }
+ },
+ "system_fingerprint": "v1",
+ "service_tier": "standard"
+ }'
+ headers:
+ Content-Type:
+ - application/json; charset=utf-8
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_streaming_chat_legacy.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_streaming_chat_legacy.yaml
new file mode 100644
index 0000000000..7388f3fe94
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_streaming_chat_legacy.yaml
@@ -0,0 +1,195 @@
+interactions:
+- request:
+ body: '{"messages":[{"role":"user","content":"Tell me a joke about OpenTelemetry"}],"model":"palmyra-x4","max_tokens":340,"stop":"I
+ am","stream":true,"stream_options":{"include_usage":true},"temperature":0.7,"top_p":0.9}'
+ headers:
+ accept:
+ - application/json
+ accept-encoding:
+ - gzip, deflate
+ connection:
+ - keep-alive
+ content-length:
+ - '213'
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com/v1/chat
+ response:
+ body:
+ string: 'data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"Sure","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Sure","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":",","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":",","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ here","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ here","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"''s","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"''s","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ a","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ a","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ light","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ light","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"-hearted","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"-hearted","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ joke","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ joke","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ about","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ about","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":":\n\n","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":":\n\n","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"Why","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Why","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ did","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ did","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ the","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ the","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ developer","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ developer","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ go","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ go","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ broke","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ broke","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"?","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"?","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ Because","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ Because","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ he","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ he","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ used","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ used","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ and","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ and","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ couldn","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ couldn","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"''t","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"''t","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ keep","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ keep","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ his","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ his","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ expenses","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ expenses","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ under","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ under","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ **","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ **","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"trace","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"trace","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"**","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"**","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"!","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"!","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":"stop","message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[],"created":1755846931,"model":"palmyra-x4","usage":{"prompt_tokens":39,"total_tokens":76,"completion_tokens":37,"prompt_token_details":null,"completion_tokens_details":null},"system_fingerprint":"v1","service_tier":null}
+
+
+ '
+ headers:
+ Content-Type:
+ - text/event-stream
+ Transfer-Encoding:
+ - chunked
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_streaming_chat_multiple_choices_legacy.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_streaming_chat_multiple_choices_legacy.yaml
new file mode 100644
index 0000000000..4ff41e6c9b
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_streaming_chat_multiple_choices_legacy.yaml
@@ -0,0 +1,455 @@
+interactions:
+- request:
+ body: '{"messages":[{"role":"user","content":"Tell me a joke about OpenTelemetry"}],"model":"palmyra-x4","max_tokens":340,"n":2,"stop":"I
+ am","stream":true,"stream_options":{"include_usage":true},"temperature":0.7,"top_p":0.9}'
+ headers:
+ accept:
+ - application/json
+ accept-encoding:
+ - gzip, deflate
+ connection:
+ - keep-alive
+ content-length:
+ - '219'
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com/v1/chat
+ response:
+ body:
+ string: 'data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"Sure","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Sure","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"Sure","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Sure","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":",","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":",","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":",","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":",","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ here","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ here","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ here","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ here","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"''s","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"''s","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"''s","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"''s","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ a","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ a","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ a","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ a","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ light","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ light","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ light","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ light","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"-hearted","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"-hearted","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"-hearted","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"-hearted","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ joke","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ joke","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ joke","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ joke","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ about","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ about","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ about","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ about","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":":\n\n","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":":\n\n","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":":\n\n","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":":\n\n","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"Why","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Why","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"Why","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Why","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ did","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ did","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ did","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ did","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ the","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ the","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ the","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ the","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ developer","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ developer","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ software","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ software","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ break","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ break","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ developer","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ developer","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ up","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ up","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ decide","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ decide","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ with","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ with","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ to","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ to","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ the","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ the","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ use","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ use","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ application","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ application","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"?\n\n","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"?\n\n","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"Because","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Because","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ it","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ it","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"?\n\n","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"?\n\n","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ couldn","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ couldn","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"Because","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Because","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"''t","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"''t","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ he","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ he","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ commit","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ commit","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ wanted","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ wanted","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ to","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ to","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ to","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ to","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ using","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ using","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ trace","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ trace","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ his","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ his","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ bugs","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ bugs","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ back","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ back","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ and","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ and","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ to","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ to","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ was","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ was","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ their","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ their","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ always","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ always","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ roots","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ roots","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ too","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ too","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":",","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":",","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ \"","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ \"","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ and","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ and","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"in","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"in","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ he","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ he","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"secure","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"secure","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ heard","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ heard","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"\"","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"\"","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ about","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ about","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ its","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ its","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ performance","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ performance","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ was","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ was","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"!","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"!","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ the","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ the","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":"stop","message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ best","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ best","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ shovel","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ shovel","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ in","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ in","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ town","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ town","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"!","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"!","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":"stop","message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[],"created":1756129888,"model":"palmyra-x4","usage":{"prompt_tokens":39,"total_tokens":134,"completion_tokens":95,"prompt_token_details":null,"completion_tokens_details":null},"system_fingerprint":"v1","service_tier":null}
+
+
+ '
+ headers:
+ Content-Type:
+ - text/event-stream
+ Transfer-Encoding:
+ - chunked
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_streaming_chat_multiple_choices_with_events_with_content.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_streaming_chat_multiple_choices_with_events_with_content.yaml
new file mode 100644
index 0000000000..4ff41e6c9b
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_streaming_chat_multiple_choices_with_events_with_content.yaml
@@ -0,0 +1,455 @@
+interactions:
+- request:
+ body: '{"messages":[{"role":"user","content":"Tell me a joke about OpenTelemetry"}],"model":"palmyra-x4","max_tokens":340,"n":2,"stop":"I
+ am","stream":true,"stream_options":{"include_usage":true},"temperature":0.7,"top_p":0.9}'
+ headers:
+ accept:
+ - application/json
+ accept-encoding:
+ - gzip, deflate
+ connection:
+ - keep-alive
+ content-length:
+ - '219'
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com/v1/chat
+ response:
+ body:
+ string: 'data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"Sure","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Sure","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"Sure","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Sure","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":",","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":",","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":",","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":",","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ here","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ here","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ here","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ here","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"''s","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"''s","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"''s","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"''s","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ a","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ a","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ a","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ a","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ light","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ light","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ light","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ light","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"-hearted","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"-hearted","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"-hearted","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"-hearted","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ joke","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ joke","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ joke","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ joke","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ about","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ about","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ about","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ about","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":":\n\n","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":":\n\n","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":":\n\n","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":":\n\n","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"Why","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Why","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"Why","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Why","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ did","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ did","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ did","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ did","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ the","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ the","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ the","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ the","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ developer","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ developer","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ software","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ software","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ break","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ break","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ developer","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ developer","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ up","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ up","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ decide","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ decide","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ with","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ with","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ to","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ to","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ the","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ the","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ use","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ use","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ application","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ application","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"?\n\n","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"?\n\n","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"Because","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Because","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ it","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ it","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"?\n\n","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"?\n\n","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ couldn","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ couldn","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"Because","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Because","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"''t","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"''t","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ he","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ he","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ commit","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ commit","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ wanted","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ wanted","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ to","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ to","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ to","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ to","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ using","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ using","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ trace","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ trace","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ his","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ his","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ bugs","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ bugs","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ back","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ back","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ and","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ and","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ to","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ to","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ was","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ was","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ their","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ their","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ always","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ always","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ roots","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ roots","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ too","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ too","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":",","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":",","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ \"","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ \"","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ and","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ and","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"in","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"in","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ he","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ he","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"secure","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"secure","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ heard","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ heard","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"\"","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"\"","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ about","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ about","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ its","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ its","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ performance","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ performance","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ was","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ was","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"!","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"!","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ the","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ the","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":"stop","message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ best","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ best","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ shovel","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ shovel","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ in","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ in","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ town","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ town","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"!","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"!","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":"stop","message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[],"created":1756129888,"model":"palmyra-x4","usage":{"prompt_tokens":39,"total_tokens":134,"completion_tokens":95,"prompt_token_details":null,"completion_tokens_details":null},"system_fingerprint":"v1","service_tier":null}
+
+
+ '
+ headers:
+ Content-Type:
+ - text/event-stream
+ Transfer-Encoding:
+ - chunked
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_streaming_chat_multiple_choices_with_events_with_no_content.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_streaming_chat_multiple_choices_with_events_with_no_content.yaml
new file mode 100644
index 0000000000..4ff41e6c9b
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_streaming_chat_multiple_choices_with_events_with_no_content.yaml
@@ -0,0 +1,455 @@
+interactions:
+- request:
+ body: '{"messages":[{"role":"user","content":"Tell me a joke about OpenTelemetry"}],"model":"palmyra-x4","max_tokens":340,"n":2,"stop":"I
+ am","stream":true,"stream_options":{"include_usage":true},"temperature":0.7,"top_p":0.9}'
+ headers:
+ accept:
+ - application/json
+ accept-encoding:
+ - gzip, deflate
+ connection:
+ - keep-alive
+ content-length:
+ - '219'
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com/v1/chat
+ response:
+ body:
+ string: 'data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"Sure","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Sure","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"Sure","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Sure","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":",","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":",","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":",","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":",","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ here","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ here","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ here","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ here","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"''s","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"''s","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"''s","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"''s","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ a","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ a","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ a","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ a","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ light","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ light","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ light","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ light","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"-hearted","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"-hearted","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"-hearted","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"-hearted","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ joke","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ joke","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ joke","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ joke","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ about","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ about","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ about","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ about","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":":\n\n","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":":\n\n","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":":\n\n","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":":\n\n","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"Why","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Why","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"Why","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Why","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ did","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ did","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ did","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ did","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ the","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ the","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ the","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ the","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ developer","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ developer","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ software","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ software","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ break","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ break","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ developer","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ developer","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ up","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ up","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ decide","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ decide","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ with","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ with","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ to","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ to","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ the","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ the","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ use","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ use","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ application","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ application","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"?\n\n","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"?\n\n","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"Because","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Because","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ it","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ it","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"?\n\n","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"?\n\n","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ couldn","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ couldn","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"Because","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Because","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"''t","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"''t","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ he","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ he","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ commit","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ commit","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ wanted","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ wanted","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ to","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ to","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ to","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ to","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ using","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ using","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ trace","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ trace","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ his","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ his","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ bugs","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ bugs","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ back","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ back","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ and","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ and","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ to","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ to","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ was","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ was","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ their","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ their","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ always","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ always","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ roots","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ roots","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ too","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ too","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":",","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":",","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ \"","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ \"","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ and","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ and","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"in","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"in","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ he","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ he","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"secure","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"secure","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ heard","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ heard","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"\"","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"\"","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ about","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ about","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ its","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ its","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ performance","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ performance","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ was","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ was","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"!","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"!","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ the","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ the","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":"stop","message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ best","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ best","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ shovel","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ shovel","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ in","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ in","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"
+ town","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ town","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":null,"message":{"content":"!","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"!","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[{"index":1,"finish_reason":"stop","message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756129888,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"d6d24844-6bce-4b9a-a601-ed43f8679ed3","object":"chat.completion.chunk","choices":[],"created":1756129888,"model":"palmyra-x4","usage":{"prompt_tokens":39,"total_tokens":134,"completion_tokens":95,"prompt_token_details":null,"completion_tokens_details":null},"system_fingerprint":"v1","service_tier":null}
+
+
+ '
+ headers:
+ Content-Type:
+ - text/event-stream
+ Transfer-Encoding:
+ - chunked
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_streaming_chat_multiple_tool_call_requests_legacy.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_streaming_chat_multiple_tool_call_requests_legacy.yaml
new file mode 100644
index 0000000000..33512eda7c
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_streaming_chat_multiple_tool_call_requests_legacy.yaml
@@ -0,0 +1,120 @@
+interactions:
+- request:
+ body: '{"messages":[{"role":"user","content":"What is the weather like in Zakopane,
+ Warsaw, Lodz, Katowice, Krakow, Poznan and Lublin today?"}],"model":"palmyra-x4","max_tokens":340,"stop":"I
+ am","stream":true,"stream_options":{"include_usage":true},"temperature":0.7,"tools":[{"function":{"description":"Return
+ weather in the specific location.","name":"get_weather","parameters":{"properties":{"location":{"description":"Location
+ to return weather at","type":"string"}},"required":["location"],"type":"object"}},"type":"function"}],"top_p":0.9}'
+ headers:
+ accept:
+ - application/json
+ accept-encoding:
+ - gzip, deflate
+ connection:
+ - keep-alive
+ content-length:
+ - '539'
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com/v1/chat
+ response:
+ body:
+ string: 'data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":"chatcmpl-tool-5ac885d9b1b54a66b11f014a1ecb5b9d","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":"chatcmpl-tool-5ac885d9b1b54a66b11f014a1ecb5b9d","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Zakopane\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Zakopane\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":1,"id":"chatcmpl-tool-368eedfd835c4186b5cb97c69d803cf0","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":1,"id":"chatcmpl-tool-368eedfd835c4186b5cb97c69d803cf0","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":1,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":1,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":1,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Warsaw\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":1,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Warsaw\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":2,"id":"chatcmpl-tool-af73f77676e3402e9e04a4f867552ddd","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":2,"id":"chatcmpl-tool-af73f77676e3402e9e04a4f867552ddd","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":2,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":2,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":2,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Lodz\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":2,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Lodz\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":3,"id":"chatcmpl-tool-e9d9b531d7954d789c1ccc21dbdd3be0","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":3,"id":"chatcmpl-tool-e9d9b531d7954d789c1ccc21dbdd3be0","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":3,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":3,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":3,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Katowice\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":3,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Katowice\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":4,"id":"chatcmpl-tool-a5155160b47c4f5c9f02eb234cac9e7c","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":4,"id":"chatcmpl-tool-a5155160b47c4f5c9f02eb234cac9e7c","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":4,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":4,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":4,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Krakow\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":4,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Krakow\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":5,"id":"chatcmpl-tool-aad9face17d14c7296dd569213e61f47","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":5,"id":"chatcmpl-tool-aad9face17d14c7296dd569213e61f47","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":5,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":5,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":5,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Poznan\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":5,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Poznan\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":6,"id":"chatcmpl-tool-938c427496df48f3b2efb60d6a854461","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":6,"id":"chatcmpl-tool-938c427496df48f3b2efb60d6a854461","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":6,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":6,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":6,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Lublin\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":6,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Lublin\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":"tool_calls","message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[],"created":1756221269,"model":"palmyra-x4","usage":{"prompt_tokens":212,"total_tokens":365,"completion_tokens":153,"prompt_token_details":null,"completion_tokens_details":null},"system_fingerprint":"v1","service_tier":null}
+
+
+ '
+ headers:
+ Content-Type:
+ - text/event-stream
+ Transfer-Encoding:
+ - chunked
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_streaming_chat_multiple_tool_call_requests_with_events_with_content.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_streaming_chat_multiple_tool_call_requests_with_events_with_content.yaml
new file mode 100644
index 0000000000..33512eda7c
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_streaming_chat_multiple_tool_call_requests_with_events_with_content.yaml
@@ -0,0 +1,120 @@
+interactions:
+- request:
+ body: '{"messages":[{"role":"user","content":"What is the weather like in Zakopane,
+ Warsaw, Lodz, Katowice, Krakow, Poznan and Lublin today?"}],"model":"palmyra-x4","max_tokens":340,"stop":"I
+ am","stream":true,"stream_options":{"include_usage":true},"temperature":0.7,"tools":[{"function":{"description":"Return
+ weather in the specific location.","name":"get_weather","parameters":{"properties":{"location":{"description":"Location
+ to return weather at","type":"string"}},"required":["location"],"type":"object"}},"type":"function"}],"top_p":0.9}'
+ headers:
+ accept:
+ - application/json
+ accept-encoding:
+ - gzip, deflate
+ connection:
+ - keep-alive
+ content-length:
+ - '539'
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com/v1/chat
+ response:
+ body:
+ string: 'data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":"chatcmpl-tool-5ac885d9b1b54a66b11f014a1ecb5b9d","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":"chatcmpl-tool-5ac885d9b1b54a66b11f014a1ecb5b9d","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Zakopane\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Zakopane\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":1,"id":"chatcmpl-tool-368eedfd835c4186b5cb97c69d803cf0","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":1,"id":"chatcmpl-tool-368eedfd835c4186b5cb97c69d803cf0","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":1,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":1,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":1,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Warsaw\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":1,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Warsaw\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":2,"id":"chatcmpl-tool-af73f77676e3402e9e04a4f867552ddd","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":2,"id":"chatcmpl-tool-af73f77676e3402e9e04a4f867552ddd","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":2,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":2,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":2,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Lodz\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":2,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Lodz\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":3,"id":"chatcmpl-tool-e9d9b531d7954d789c1ccc21dbdd3be0","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":3,"id":"chatcmpl-tool-e9d9b531d7954d789c1ccc21dbdd3be0","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":3,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":3,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":3,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Katowice\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":3,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Katowice\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":4,"id":"chatcmpl-tool-a5155160b47c4f5c9f02eb234cac9e7c","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":4,"id":"chatcmpl-tool-a5155160b47c4f5c9f02eb234cac9e7c","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":4,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":4,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":4,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Krakow\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":4,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Krakow\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":5,"id":"chatcmpl-tool-aad9face17d14c7296dd569213e61f47","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":5,"id":"chatcmpl-tool-aad9face17d14c7296dd569213e61f47","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":5,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":5,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":5,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Poznan\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":5,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Poznan\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":6,"id":"chatcmpl-tool-938c427496df48f3b2efb60d6a854461","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":6,"id":"chatcmpl-tool-938c427496df48f3b2efb60d6a854461","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":6,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":6,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":6,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Lublin\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":6,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Lublin\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":"tool_calls","message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[],"created":1756221269,"model":"palmyra-x4","usage":{"prompt_tokens":212,"total_tokens":365,"completion_tokens":153,"prompt_token_details":null,"completion_tokens_details":null},"system_fingerprint":"v1","service_tier":null}
+
+
+ '
+ headers:
+ Content-Type:
+ - text/event-stream
+ Transfer-Encoding:
+ - chunked
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_streaming_chat_multiple_tool_call_requests_with_events_with_no_content.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_streaming_chat_multiple_tool_call_requests_with_events_with_no_content.yaml
new file mode 100644
index 0000000000..33512eda7c
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_streaming_chat_multiple_tool_call_requests_with_events_with_no_content.yaml
@@ -0,0 +1,120 @@
+interactions:
+- request:
+ body: '{"messages":[{"role":"user","content":"What is the weather like in Zakopane,
+ Warsaw, Lodz, Katowice, Krakow, Poznan and Lublin today?"}],"model":"palmyra-x4","max_tokens":340,"stop":"I
+ am","stream":true,"stream_options":{"include_usage":true},"temperature":0.7,"tools":[{"function":{"description":"Return
+ weather in the specific location.","name":"get_weather","parameters":{"properties":{"location":{"description":"Location
+ to return weather at","type":"string"}},"required":["location"],"type":"object"}},"type":"function"}],"top_p":0.9}'
+ headers:
+ accept:
+ - application/json
+ accept-encoding:
+ - gzip, deflate
+ connection:
+ - keep-alive
+ content-length:
+ - '539'
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com/v1/chat
+ response:
+ body:
+ string: 'data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":"chatcmpl-tool-5ac885d9b1b54a66b11f014a1ecb5b9d","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":"chatcmpl-tool-5ac885d9b1b54a66b11f014a1ecb5b9d","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Zakopane\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Zakopane\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":1,"id":"chatcmpl-tool-368eedfd835c4186b5cb97c69d803cf0","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":1,"id":"chatcmpl-tool-368eedfd835c4186b5cb97c69d803cf0","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":1,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":1,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":1,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Warsaw\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":1,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Warsaw\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":2,"id":"chatcmpl-tool-af73f77676e3402e9e04a4f867552ddd","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":2,"id":"chatcmpl-tool-af73f77676e3402e9e04a4f867552ddd","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":2,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":2,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":2,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Lodz\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":2,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Lodz\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":3,"id":"chatcmpl-tool-e9d9b531d7954d789c1ccc21dbdd3be0","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":3,"id":"chatcmpl-tool-e9d9b531d7954d789c1ccc21dbdd3be0","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":3,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":3,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":3,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Katowice\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":3,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Katowice\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":4,"id":"chatcmpl-tool-a5155160b47c4f5c9f02eb234cac9e7c","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":4,"id":"chatcmpl-tool-a5155160b47c4f5c9f02eb234cac9e7c","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":4,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":4,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":4,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Krakow\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":4,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Krakow\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":5,"id":"chatcmpl-tool-aad9face17d14c7296dd569213e61f47","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":5,"id":"chatcmpl-tool-aad9face17d14c7296dd569213e61f47","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":5,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":5,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":5,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Poznan\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":5,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Poznan\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":6,"id":"chatcmpl-tool-938c427496df48f3b2efb60d6a854461","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":6,"id":"chatcmpl-tool-938c427496df48f3b2efb60d6a854461","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":6,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":6,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":6,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Lublin\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":6,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Lublin\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":"tool_calls","message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1756221269,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1908e68d-0a48-4394-a155-d160bca81742","object":"chat.completion.chunk","choices":[],"created":1756221269,"model":"palmyra-x4","usage":{"prompt_tokens":212,"total_tokens":365,"completion_tokens":153,"prompt_token_details":null,"completion_tokens_details":null},"system_fingerprint":"v1","service_tier":null}
+
+
+ '
+ headers:
+ Content-Type:
+ - text/event-stream
+ Transfer-Encoding:
+ - chunked
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_streaming_chat_tool_call_request_legacy.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_streaming_chat_tool_call_request_legacy.yaml
new file mode 100644
index 0000000000..827cea7580
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_streaming_chat_tool_call_request_legacy.yaml
@@ -0,0 +1,53 @@
+interactions:
+- request:
+ body: '{"messages":[{"role":"user","content":"What is the weather like in Zakopane
+ today?"}],"model":"palmyra-x4","max_tokens":340,"stop":"I am","stream":true,"stream_options":{"include_usage":true},"temperature":0.7,"tools":[{"function":{"description":"Return
+ weather in the specific location.","name":"get_weather","parameters":{"properties":{"location":{"description":"Location
+ to return weather at","type":"string"}},"required":["location"],"type":"object"}},"type":"function"}],"top_p":0.9}'
+ headers:
+ accept:
+ - application/json
+ accept-encoding:
+ - gzip, deflate
+ connection:
+ - keep-alive
+ content-length:
+ - '488'
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com/v1/chat
+ response:
+ body:
+ string: 'data: {"id":"a2c90cfe-1887-47df-9b3b-f8a20ba21ff2","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755878837,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"a2c90cfe-1887-47df-9b3b-f8a20ba21ff2","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":"chatcmpl-tool-a31f1a5690b14b7daf0e78d2a2d23da2","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":"chatcmpl-tool-a31f1a5690b14b7daf0e78d2a2d23da2","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755878837,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"a2c90cfe-1887-47df-9b3b-f8a20ba21ff2","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755878837,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"a2c90cfe-1887-47df-9b3b-f8a20ba21ff2","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Zakopane\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Zakopane\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755878837,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"a2c90cfe-1887-47df-9b3b-f8a20ba21ff2","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":"tool_calls","message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755878837,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"a2c90cfe-1887-47df-9b3b-f8a20ba21ff2","object":"chat.completion.chunk","choices":[],"created":1755878837,"model":"palmyra-x4","usage":{"prompt_tokens":194,"total_tokens":216,"completion_tokens":22,"prompt_token_details":null,"completion_tokens_details":null},"system_fingerprint":"v1","service_tier":null}
+
+
+ '
+ headers:
+ Content-Type:
+ - text/event-stream
+ Transfer-Encoding:
+ - chunked
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_streaming_chat_tool_call_request_with_events_with_content.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_streaming_chat_tool_call_request_with_events_with_content.yaml
new file mode 100644
index 0000000000..827cea7580
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_streaming_chat_tool_call_request_with_events_with_content.yaml
@@ -0,0 +1,53 @@
+interactions:
+- request:
+ body: '{"messages":[{"role":"user","content":"What is the weather like in Zakopane
+ today?"}],"model":"palmyra-x4","max_tokens":340,"stop":"I am","stream":true,"stream_options":{"include_usage":true},"temperature":0.7,"tools":[{"function":{"description":"Return
+ weather in the specific location.","name":"get_weather","parameters":{"properties":{"location":{"description":"Location
+ to return weather at","type":"string"}},"required":["location"],"type":"object"}},"type":"function"}],"top_p":0.9}'
+ headers:
+ accept:
+ - application/json
+ accept-encoding:
+ - gzip, deflate
+ connection:
+ - keep-alive
+ content-length:
+ - '488'
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com/v1/chat
+ response:
+ body:
+ string: 'data: {"id":"a2c90cfe-1887-47df-9b3b-f8a20ba21ff2","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755878837,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"a2c90cfe-1887-47df-9b3b-f8a20ba21ff2","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":"chatcmpl-tool-a31f1a5690b14b7daf0e78d2a2d23da2","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":"chatcmpl-tool-a31f1a5690b14b7daf0e78d2a2d23da2","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755878837,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"a2c90cfe-1887-47df-9b3b-f8a20ba21ff2","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755878837,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"a2c90cfe-1887-47df-9b3b-f8a20ba21ff2","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Zakopane\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Zakopane\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755878837,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"a2c90cfe-1887-47df-9b3b-f8a20ba21ff2","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":"tool_calls","message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755878837,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"a2c90cfe-1887-47df-9b3b-f8a20ba21ff2","object":"chat.completion.chunk","choices":[],"created":1755878837,"model":"palmyra-x4","usage":{"prompt_tokens":194,"total_tokens":216,"completion_tokens":22,"prompt_token_details":null,"completion_tokens_details":null},"system_fingerprint":"v1","service_tier":null}
+
+
+ '
+ headers:
+ Content-Type:
+ - text/event-stream
+ Transfer-Encoding:
+ - chunked
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_streaming_chat_tool_call_request_with_events_with_no_content.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_streaming_chat_tool_call_request_with_events_with_no_content.yaml
new file mode 100644
index 0000000000..827cea7580
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_streaming_chat_tool_call_request_with_events_with_no_content.yaml
@@ -0,0 +1,53 @@
+interactions:
+- request:
+ body: '{"messages":[{"role":"user","content":"What is the weather like in Zakopane
+ today?"}],"model":"palmyra-x4","max_tokens":340,"stop":"I am","stream":true,"stream_options":{"include_usage":true},"temperature":0.7,"tools":[{"function":{"description":"Return
+ weather in the specific location.","name":"get_weather","parameters":{"properties":{"location":{"description":"Location
+ to return weather at","type":"string"}},"required":["location"],"type":"object"}},"type":"function"}],"top_p":0.9}'
+ headers:
+ accept:
+ - application/json
+ accept-encoding:
+ - gzip, deflate
+ connection:
+ - keep-alive
+ content-length:
+ - '488'
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com/v1/chat
+ response:
+ body:
+ string: 'data: {"id":"a2c90cfe-1887-47df-9b3b-f8a20ba21ff2","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755878837,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"a2c90cfe-1887-47df-9b3b-f8a20ba21ff2","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":"chatcmpl-tool-a31f1a5690b14b7daf0e78d2a2d23da2","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":"chatcmpl-tool-a31f1a5690b14b7daf0e78d2a2d23da2","type":"function","function":{"name":"get_weather","arguments":null}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755878837,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"a2c90cfe-1887-47df-9b3b-f8a20ba21ff2","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":null,"type":null,"function":{"name":null,"arguments":"{\"location\":"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755878837,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"a2c90cfe-1887-47df-9b3b-f8a20ba21ff2","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Zakopane\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":[{"index":0,"id":null,"type":null,"function":{"name":null,"arguments":"
+ \"Zakopane\"}"}}],"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755878837,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"a2c90cfe-1887-47df-9b3b-f8a20ba21ff2","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":"tool_calls","message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755878837,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"a2c90cfe-1887-47df-9b3b-f8a20ba21ff2","object":"chat.completion.chunk","choices":[],"created":1755878837,"model":"palmyra-x4","usage":{"prompt_tokens":194,"total_tokens":216,"completion_tokens":22,"prompt_token_details":null,"completion_tokens_details":null},"system_fingerprint":"v1","service_tier":null}
+
+
+ '
+ headers:
+ Content-Type:
+ - text/event-stream
+ Transfer-Encoding:
+ - chunked
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_streaming_chat_tool_calls_legacy.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_streaming_chat_tool_calls_legacy.yaml
new file mode 100644
index 0000000000..32c36e3218
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_streaming_chat_tool_calls_legacy.yaml
@@ -0,0 +1,185 @@
+interactions:
+- request:
+ body: '{"messages":[{"role":"user","content":"What is the weather like today?"},{"role":"assistant","content":"","tool_calls":[{"type":"function","function":{"name":"get_current_weather","arguments":"{\"location\":
+ \"San Francisco\"}"}}]},{"role":"tool","content":"The weather in San Francisco
+ is 70 degrees and sunny."}],"model":"palmyra-x4","max_tokens":340,"stop":"I
+ am","stream":true,"stream_options":{"include_usage":true},"temperature":0.7,"tools":[{"function":{"description":"Return
+ weather in the specific location.","name":"get_weather","parameters":{"properties":{"location":{"description":"Location
+ to return weather at","type":"string"}},"required":["location"],"type":"object"}},"type":"function"}],"top_p":0.9}'
+ headers:
+ accept:
+ - application/json
+ accept-encoding:
+ - gzip, deflate
+ connection:
+ - keep-alive
+ content-length:
+ - '717'
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com/v1/chat
+ response:
+ body:
+ string: 'data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"The","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"The","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ weather","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ weather","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ in","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ in","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ San","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ San","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ Francisco","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ Francisco","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ today","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ today","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ is","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ is","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ ","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ ","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"7","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"7","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"0","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"0","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ degrees","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ degrees","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ and","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ and","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ sunny","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ sunny","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":".","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":".","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ If","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ If","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ you","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ you","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"''re","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"''re","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ planning","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ planning","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ to","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ to","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ go","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ go","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ out","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ out","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":",","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":",","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ it","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ it","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ seems","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ seems","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ like","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ like","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ a","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ a","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ great","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ great","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ day","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ day","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ for","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ for","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ it","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ it","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"!","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"!","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":"stop","message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[],"created":1755858159,"model":"palmyra-x4","usage":{"prompt_tokens":244,"total_tokens":275,"completion_tokens":31,"prompt_token_details":null,"completion_tokens_details":null},"system_fingerprint":"v1","service_tier":null}
+
+
+ '
+ headers:
+ Content-Type:
+ - text/event-stream
+ Transfer-Encoding:
+ - chunked
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_streaming_chat_tool_calls_with_events_with_content.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_streaming_chat_tool_calls_with_events_with_content.yaml
new file mode 100644
index 0000000000..32c36e3218
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_streaming_chat_tool_calls_with_events_with_content.yaml
@@ -0,0 +1,185 @@
+interactions:
+- request:
+ body: '{"messages":[{"role":"user","content":"What is the weather like today?"},{"role":"assistant","content":"","tool_calls":[{"type":"function","function":{"name":"get_current_weather","arguments":"{\"location\":
+ \"San Francisco\"}"}}]},{"role":"tool","content":"The weather in San Francisco
+ is 70 degrees and sunny."}],"model":"palmyra-x4","max_tokens":340,"stop":"I
+ am","stream":true,"stream_options":{"include_usage":true},"temperature":0.7,"tools":[{"function":{"description":"Return
+ weather in the specific location.","name":"get_weather","parameters":{"properties":{"location":{"description":"Location
+ to return weather at","type":"string"}},"required":["location"],"type":"object"}},"type":"function"}],"top_p":0.9}'
+ headers:
+ accept:
+ - application/json
+ accept-encoding:
+ - gzip, deflate
+ connection:
+ - keep-alive
+ content-length:
+ - '717'
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com/v1/chat
+ response:
+ body:
+ string: 'data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"The","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"The","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ weather","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ weather","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ in","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ in","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ San","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ San","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ Francisco","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ Francisco","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ today","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ today","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ is","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ is","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ ","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ ","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"7","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"7","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"0","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"0","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ degrees","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ degrees","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ and","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ and","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ sunny","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ sunny","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":".","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":".","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ If","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ If","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ you","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ you","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"''re","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"''re","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ planning","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ planning","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ to","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ to","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ go","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ go","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ out","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ out","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":",","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":",","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ it","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ it","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ seems","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ seems","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ like","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ like","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ a","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ a","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ great","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ great","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ day","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ day","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ for","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ for","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ it","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ it","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"!","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"!","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":"stop","message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[],"created":1755858159,"model":"palmyra-x4","usage":{"prompt_tokens":244,"total_tokens":275,"completion_tokens":31,"prompt_token_details":null,"completion_tokens_details":null},"system_fingerprint":"v1","service_tier":null}
+
+
+ '
+ headers:
+ Content-Type:
+ - text/event-stream
+ Transfer-Encoding:
+ - chunked
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_streaming_chat_tool_calls_with_events_with_no_content.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_streaming_chat_tool_calls_with_events_with_no_content.yaml
new file mode 100644
index 0000000000..32c36e3218
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_streaming_chat_tool_calls_with_events_with_no_content.yaml
@@ -0,0 +1,185 @@
+interactions:
+- request:
+ body: '{"messages":[{"role":"user","content":"What is the weather like today?"},{"role":"assistant","content":"","tool_calls":[{"type":"function","function":{"name":"get_current_weather","arguments":"{\"location\":
+ \"San Francisco\"}"}}]},{"role":"tool","content":"The weather in San Francisco
+ is 70 degrees and sunny."}],"model":"palmyra-x4","max_tokens":340,"stop":"I
+ am","stream":true,"stream_options":{"include_usage":true},"temperature":0.7,"tools":[{"function":{"description":"Return
+ weather in the specific location.","name":"get_weather","parameters":{"properties":{"location":{"description":"Location
+ to return weather at","type":"string"}},"required":["location"],"type":"object"}},"type":"function"}],"top_p":0.9}'
+ headers:
+ accept:
+ - application/json
+ accept-encoding:
+ - gzip, deflate
+ connection:
+ - keep-alive
+ content-length:
+ - '717'
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com/v1/chat
+ response:
+ body:
+ string: 'data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"The","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"The","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ weather","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ weather","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ in","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ in","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ San","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ San","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ Francisco","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ Francisco","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ today","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ today","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ is","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ is","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ ","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ ","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"7","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"7","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"0","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"0","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ degrees","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ degrees","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ and","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ and","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ sunny","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ sunny","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":".","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":".","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ If","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ If","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ you","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ you","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"''re","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"''re","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ planning","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ planning","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ to","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ to","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ go","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ go","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ out","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ out","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":",","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":",","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ it","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ it","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ seems","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ seems","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ like","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ like","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ a","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ a","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ great","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ great","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ day","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ day","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ for","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ for","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ it","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ it","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"!","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"!","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":"stop","message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755858159,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"6843b5fa-3506-4df8-9e34-87151e394133","object":"chat.completion.chunk","choices":[],"created":1755858159,"model":"palmyra-x4","usage":{"prompt_tokens":244,"total_tokens":275,"completion_tokens":31,"prompt_token_details":null,"completion_tokens_details":null},"system_fingerprint":"v1","service_tier":null}
+
+
+ '
+ headers:
+ Content-Type:
+ - text/event-stream
+ Transfer-Encoding:
+ - chunked
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_streaming_chat_with_events_with_content.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_streaming_chat_with_events_with_content.yaml
new file mode 100644
index 0000000000..7388f3fe94
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_streaming_chat_with_events_with_content.yaml
@@ -0,0 +1,195 @@
+interactions:
+- request:
+ body: '{"messages":[{"role":"user","content":"Tell me a joke about OpenTelemetry"}],"model":"palmyra-x4","max_tokens":340,"stop":"I
+ am","stream":true,"stream_options":{"include_usage":true},"temperature":0.7,"top_p":0.9}'
+ headers:
+ accept:
+ - application/json
+ accept-encoding:
+ - gzip, deflate
+ connection:
+ - keep-alive
+ content-length:
+ - '213'
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com/v1/chat
+ response:
+ body:
+ string: 'data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"Sure","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Sure","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":",","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":",","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ here","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ here","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"''s","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"''s","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ a","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ a","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ light","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ light","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"-hearted","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"-hearted","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ joke","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ joke","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ about","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ about","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":":\n\n","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":":\n\n","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"Why","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Why","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ did","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ did","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ the","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ the","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ developer","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ developer","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ go","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ go","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ broke","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ broke","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"?","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"?","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ Because","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ Because","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ he","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ he","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ used","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ used","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ and","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ and","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ couldn","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ couldn","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"''t","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"''t","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ keep","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ keep","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ his","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ his","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ expenses","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ expenses","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ under","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ under","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ **","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ **","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"trace","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"trace","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"**","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"**","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"!","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"!","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":"stop","message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[],"created":1755846931,"model":"palmyra-x4","usage":{"prompt_tokens":39,"total_tokens":76,"completion_tokens":37,"prompt_token_details":null,"completion_tokens_details":null},"system_fingerprint":"v1","service_tier":null}
+
+
+ '
+ headers:
+ Content-Type:
+ - text/event-stream
+ Transfer-Encoding:
+ - chunked
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_streaming_chat_with_events_with_no_content.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_streaming_chat_with_events_with_no_content.yaml
new file mode 100644
index 0000000000..7388f3fe94
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_chat/test_writer_streaming_chat_with_events_with_no_content.yaml
@@ -0,0 +1,195 @@
+interactions:
+- request:
+ body: '{"messages":[{"role":"user","content":"Tell me a joke about OpenTelemetry"}],"model":"palmyra-x4","max_tokens":340,"stop":"I
+ am","stream":true,"stream_options":{"include_usage":true},"temperature":0.7,"top_p":0.9}'
+ headers:
+ accept:
+ - application/json
+ accept-encoding:
+ - gzip, deflate
+ connection:
+ - keep-alive
+ content-length:
+ - '213'
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com/v1/chat
+ response:
+ body:
+ string: 'data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"Sure","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Sure","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":",","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":",","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ here","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ here","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"''s","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"''s","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ a","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ a","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ light","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ light","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"-hearted","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"-hearted","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ joke","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ joke","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ about","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ about","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":":\n\n","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":":\n\n","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"Why","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Why","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ did","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ did","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ the","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ the","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ developer","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ developer","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ go","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ go","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ broke","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ broke","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"?","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"?","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ Because","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ Because","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ he","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ he","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ used","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ used","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ and","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ and","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ couldn","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ couldn","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"''t","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"''t","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ keep","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ keep","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ his","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ his","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ expenses","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ expenses","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ under","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ under","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ **","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ **","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"trace","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"trace","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"**","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"**","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"!","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"!","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":"stop","message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[],"created":1755846931,"model":"palmyra-x4","usage":{"prompt_tokens":39,"total_tokens":76,"completion_tokens":37,"prompt_token_details":null,"completion_tokens_details":null},"system_fingerprint":"v1","service_tier":null}
+
+
+ '
+ headers:
+ Content-Type:
+ - text/event-stream
+ Transfer-Encoding:
+ - chunked
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_completions/test_writer_async_completions_legacy.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_completions/test_writer_async_completions_legacy.yaml
new file mode 100644
index 0000000000..247b1c4acb
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_completions/test_writer_async_completions_legacy.yaml
@@ -0,0 +1,42 @@
+interactions:
+- request:
+ body:
+ '{
+ "model": "palmyra-x4",
+ "prompt": "Tell me a joke about OpenTelemetry",
+ "max_tokens": 150,
+ "temperature": 0.7,
+ "top_p": 0.9,
+ "stop": [
+ "."
+ ],
+ "stream": false
+ }'
+ headers:
+ accept:
+ - application/json
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com/v1/completions
+ response:
+ body:
+ string:
+ '{
+ "choices": [
+ {
+ "text": "A joke about OpenTelemetry!\n\nWhy did the OpenTelemetry collector go to therapy?\n\nBecause it was feeling instrumented, but could not seem to get a handle on its spans!",
+ "log_probs": null
+ }
+ ],
+ "model": "palmyra-x4"
+ }'
+ headers:
+ Content-Type:
+ - application/json; charset=utf-8
+ status:
+ code: 200
+ message: OK
+version: 1
\ No newline at end of file
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_completions/test_writer_async_completions_with_events_with_content.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_completions/test_writer_async_completions_with_events_with_content.yaml
new file mode 100644
index 0000000000..247b1c4acb
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_completions/test_writer_async_completions_with_events_with_content.yaml
@@ -0,0 +1,42 @@
+interactions:
+- request:
+ body:
+ '{
+ "model": "palmyra-x4",
+ "prompt": "Tell me a joke about OpenTelemetry",
+ "max_tokens": 150,
+ "temperature": 0.7,
+ "top_p": 0.9,
+ "stop": [
+ "."
+ ],
+ "stream": false
+ }'
+ headers:
+ accept:
+ - application/json
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com/v1/completions
+ response:
+ body:
+ string:
+ '{
+ "choices": [
+ {
+ "text": "A joke about OpenTelemetry!\n\nWhy did the OpenTelemetry collector go to therapy?\n\nBecause it was feeling instrumented, but could not seem to get a handle on its spans!",
+ "log_probs": null
+ }
+ ],
+ "model": "palmyra-x4"
+ }'
+ headers:
+ Content-Type:
+ - application/json; charset=utf-8
+ status:
+ code: 200
+ message: OK
+version: 1
\ No newline at end of file
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_completions/test_writer_async_completions_with_events_with_no_content.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_completions/test_writer_async_completions_with_events_with_no_content.yaml
new file mode 100644
index 0000000000..247b1c4acb
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_completions/test_writer_async_completions_with_events_with_no_content.yaml
@@ -0,0 +1,42 @@
+interactions:
+- request:
+ body:
+ '{
+ "model": "palmyra-x4",
+ "prompt": "Tell me a joke about OpenTelemetry",
+ "max_tokens": 150,
+ "temperature": 0.7,
+ "top_p": 0.9,
+ "stop": [
+ "."
+ ],
+ "stream": false
+ }'
+ headers:
+ accept:
+ - application/json
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com/v1/completions
+ response:
+ body:
+ string:
+ '{
+ "choices": [
+ {
+ "text": "A joke about OpenTelemetry!\n\nWhy did the OpenTelemetry collector go to therapy?\n\nBecause it was feeling instrumented, but could not seem to get a handle on its spans!",
+ "log_probs": null
+ }
+ ],
+ "model": "palmyra-x4"
+ }'
+ headers:
+ Content-Type:
+ - application/json; charset=utf-8
+ status:
+ code: 200
+ message: OK
+version: 1
\ No newline at end of file
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_completions/test_writer_async_streaming_completions_legacy.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_completions/test_writer_async_streaming_completions_legacy.yaml
new file mode 100644
index 0000000000..ac6862a2bd
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_completions/test_writer_async_streaming_completions_legacy.yaml
@@ -0,0 +1,205 @@
+interactions:
+- request:
+ body: '{"model":"palmyra-x4","prompt":"Tell me a joke about OpenTelemetry","max_tokens":340,"stop":["I
+ am"],"stream":true,"temperature":0.7,"top_p":0.9}'
+ headers:
+ accept:
+ - application/json
+ accept-encoding:
+ - gzip, deflate
+ connection:
+ - keep-alive
+ content-length:
+ - '145'
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com/v1/completions
+ response:
+ body:
+ string: 'data: {"value":"Sure"}
+
+
+ data: {"value":","}
+
+
+ data: {"value":" here"}
+
+
+ data: {"value":"''s"}
+
+
+ data: {"value":" a"}
+
+
+ data: {"value":" light"}
+
+
+ data: {"value":"-hearted"}
+
+
+ data: {"value":" joke"}
+
+
+ data: {"value":" about"}
+
+
+ data: {"value":" Open"}
+
+
+ data: {"value":"Te"}
+
+
+ data: {"value":"lemetry"}
+
+
+ data: {"value":":\n\n"}
+
+
+ data: {"value":"Why"}
+
+
+ data: {"value":" did"}
+
+
+ data: {"value":" the"}
+
+
+ data: {"value":" developer"}
+
+
+ data: {"value":" decide"}
+
+
+ data: {"value":" to"}
+
+
+ data: {"value":" use"}
+
+
+ data: {"value":" Open"}
+
+
+ data: {"value":"Te"}
+
+
+ data: {"value":"lemetry"}
+
+
+ data: {"value":" for"}
+
+
+ data: {"value":" his"}
+
+
+ data: {"value":" project"}
+
+
+ data: {"value":"?\n\n"}
+
+
+ data: {"value":"Because"}
+
+
+ data: {"value":" he"}
+
+
+ data: {"value":" wanted"}
+
+
+ data: {"value":" to"}
+
+
+ data: {"value":" make"}
+
+
+ data: {"value":" sure"}
+
+
+ data: {"value":" his"}
+
+
+ data: {"value":" application"}
+
+
+ data: {"value":" was"}
+
+
+ data: {"value":" fully"}
+
+
+ data: {"value":" instrument"}
+
+
+ data: {"value":"ed"}
+
+
+ data: {"value":","}
+
+
+ data: {"value":" and"}
+
+
+ data: {"value":" he"}
+
+
+ data: {"value":" didn"}
+
+
+ data: {"value":"''t"}
+
+
+ data: {"value":" want"}
+
+
+ data: {"value":" to"}
+
+
+ data: {"value":" trace"}
+
+
+ data: {"value":" back"}
+
+
+ data: {"value":" his"}
+
+
+ data: {"value":" steps"}
+
+
+ data: {"value":" to"}
+
+
+ data: {"value":" find"}
+
+
+ data: {"value":" out"}
+
+
+ data: {"value":" why"}
+
+
+ data: {"value":" it"}
+
+
+ data: {"value":" wasn"}
+
+
+ data: {"value":"''t"}
+
+
+ data: {"value":"!"}
+
+
+ '
+ headers:
+ Content-Type:
+ - text/event-stream
+ Transfer-Encoding:
+ - chunked
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_completions/test_writer_async_streaming_completions_with_events_with_content.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_completions/test_writer_async_streaming_completions_with_events_with_content.yaml
new file mode 100644
index 0000000000..ac6862a2bd
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_completions/test_writer_async_streaming_completions_with_events_with_content.yaml
@@ -0,0 +1,205 @@
+interactions:
+- request:
+ body: '{"model":"palmyra-x4","prompt":"Tell me a joke about OpenTelemetry","max_tokens":340,"stop":["I
+ am"],"stream":true,"temperature":0.7,"top_p":0.9}'
+ headers:
+ accept:
+ - application/json
+ accept-encoding:
+ - gzip, deflate
+ connection:
+ - keep-alive
+ content-length:
+ - '145'
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com/v1/completions
+ response:
+ body:
+ string: 'data: {"value":"Sure"}
+
+
+ data: {"value":","}
+
+
+ data: {"value":" here"}
+
+
+ data: {"value":"''s"}
+
+
+ data: {"value":" a"}
+
+
+ data: {"value":" light"}
+
+
+ data: {"value":"-hearted"}
+
+
+ data: {"value":" joke"}
+
+
+ data: {"value":" about"}
+
+
+ data: {"value":" Open"}
+
+
+ data: {"value":"Te"}
+
+
+ data: {"value":"lemetry"}
+
+
+ data: {"value":":\n\n"}
+
+
+ data: {"value":"Why"}
+
+
+ data: {"value":" did"}
+
+
+ data: {"value":" the"}
+
+
+ data: {"value":" developer"}
+
+
+ data: {"value":" decide"}
+
+
+ data: {"value":" to"}
+
+
+ data: {"value":" use"}
+
+
+ data: {"value":" Open"}
+
+
+ data: {"value":"Te"}
+
+
+ data: {"value":"lemetry"}
+
+
+ data: {"value":" for"}
+
+
+ data: {"value":" his"}
+
+
+ data: {"value":" project"}
+
+
+ data: {"value":"?\n\n"}
+
+
+ data: {"value":"Because"}
+
+
+ data: {"value":" he"}
+
+
+ data: {"value":" wanted"}
+
+
+ data: {"value":" to"}
+
+
+ data: {"value":" make"}
+
+
+ data: {"value":" sure"}
+
+
+ data: {"value":" his"}
+
+
+ data: {"value":" application"}
+
+
+ data: {"value":" was"}
+
+
+ data: {"value":" fully"}
+
+
+ data: {"value":" instrument"}
+
+
+ data: {"value":"ed"}
+
+
+ data: {"value":","}
+
+
+ data: {"value":" and"}
+
+
+ data: {"value":" he"}
+
+
+ data: {"value":" didn"}
+
+
+ data: {"value":"''t"}
+
+
+ data: {"value":" want"}
+
+
+ data: {"value":" to"}
+
+
+ data: {"value":" trace"}
+
+
+ data: {"value":" back"}
+
+
+ data: {"value":" his"}
+
+
+ data: {"value":" steps"}
+
+
+ data: {"value":" to"}
+
+
+ data: {"value":" find"}
+
+
+ data: {"value":" out"}
+
+
+ data: {"value":" why"}
+
+
+ data: {"value":" it"}
+
+
+ data: {"value":" wasn"}
+
+
+ data: {"value":"''t"}
+
+
+ data: {"value":"!"}
+
+
+ '
+ headers:
+ Content-Type:
+ - text/event-stream
+ Transfer-Encoding:
+ - chunked
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_completions/test_writer_async_streaming_completions_with_events_with_no_content.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_completions/test_writer_async_streaming_completions_with_events_with_no_content.yaml
new file mode 100644
index 0000000000..ac6862a2bd
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_completions/test_writer_async_streaming_completions_with_events_with_no_content.yaml
@@ -0,0 +1,205 @@
+interactions:
+- request:
+ body: '{"model":"palmyra-x4","prompt":"Tell me a joke about OpenTelemetry","max_tokens":340,"stop":["I
+ am"],"stream":true,"temperature":0.7,"top_p":0.9}'
+ headers:
+ accept:
+ - application/json
+ accept-encoding:
+ - gzip, deflate
+ connection:
+ - keep-alive
+ content-length:
+ - '145'
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com/v1/completions
+ response:
+ body:
+ string: 'data: {"value":"Sure"}
+
+
+ data: {"value":","}
+
+
+ data: {"value":" here"}
+
+
+ data: {"value":"''s"}
+
+
+ data: {"value":" a"}
+
+
+ data: {"value":" light"}
+
+
+ data: {"value":"-hearted"}
+
+
+ data: {"value":" joke"}
+
+
+ data: {"value":" about"}
+
+
+ data: {"value":" Open"}
+
+
+ data: {"value":"Te"}
+
+
+ data: {"value":"lemetry"}
+
+
+ data: {"value":":\n\n"}
+
+
+ data: {"value":"Why"}
+
+
+ data: {"value":" did"}
+
+
+ data: {"value":" the"}
+
+
+ data: {"value":" developer"}
+
+
+ data: {"value":" decide"}
+
+
+ data: {"value":" to"}
+
+
+ data: {"value":" use"}
+
+
+ data: {"value":" Open"}
+
+
+ data: {"value":"Te"}
+
+
+ data: {"value":"lemetry"}
+
+
+ data: {"value":" for"}
+
+
+ data: {"value":" his"}
+
+
+ data: {"value":" project"}
+
+
+ data: {"value":"?\n\n"}
+
+
+ data: {"value":"Because"}
+
+
+ data: {"value":" he"}
+
+
+ data: {"value":" wanted"}
+
+
+ data: {"value":" to"}
+
+
+ data: {"value":" make"}
+
+
+ data: {"value":" sure"}
+
+
+ data: {"value":" his"}
+
+
+ data: {"value":" application"}
+
+
+ data: {"value":" was"}
+
+
+ data: {"value":" fully"}
+
+
+ data: {"value":" instrument"}
+
+
+ data: {"value":"ed"}
+
+
+ data: {"value":","}
+
+
+ data: {"value":" and"}
+
+
+ data: {"value":" he"}
+
+
+ data: {"value":" didn"}
+
+
+ data: {"value":"''t"}
+
+
+ data: {"value":" want"}
+
+
+ data: {"value":" to"}
+
+
+ data: {"value":" trace"}
+
+
+ data: {"value":" back"}
+
+
+ data: {"value":" his"}
+
+
+ data: {"value":" steps"}
+
+
+ data: {"value":" to"}
+
+
+ data: {"value":" find"}
+
+
+ data: {"value":" out"}
+
+
+ data: {"value":" why"}
+
+
+ data: {"value":" it"}
+
+
+ data: {"value":" wasn"}
+
+
+ data: {"value":"''t"}
+
+
+ data: {"value":"!"}
+
+
+ '
+ headers:
+ Content-Type:
+ - text/event-stream
+ Transfer-Encoding:
+ - chunked
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_completions/test_writer_completions_legacy.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_completions/test_writer_completions_legacy.yaml
new file mode 100644
index 0000000000..247b1c4acb
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_completions/test_writer_completions_legacy.yaml
@@ -0,0 +1,42 @@
+interactions:
+- request:
+ body:
+ '{
+ "model": "palmyra-x4",
+ "prompt": "Tell me a joke about OpenTelemetry",
+ "max_tokens": 150,
+ "temperature": 0.7,
+ "top_p": 0.9,
+ "stop": [
+ "."
+ ],
+ "stream": false
+ }'
+ headers:
+ accept:
+ - application/json
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com/v1/completions
+ response:
+ body:
+ string:
+ '{
+ "choices": [
+ {
+ "text": "A joke about OpenTelemetry!\n\nWhy did the OpenTelemetry collector go to therapy?\n\nBecause it was feeling instrumented, but could not seem to get a handle on its spans!",
+ "log_probs": null
+ }
+ ],
+ "model": "palmyra-x4"
+ }'
+ headers:
+ Content-Type:
+ - application/json; charset=utf-8
+ status:
+ code: 200
+ message: OK
+version: 1
\ No newline at end of file
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_completions/test_writer_completions_with_events_with_content.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_completions/test_writer_completions_with_events_with_content.yaml
new file mode 100644
index 0000000000..247b1c4acb
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_completions/test_writer_completions_with_events_with_content.yaml
@@ -0,0 +1,42 @@
+interactions:
+- request:
+ body:
+ '{
+ "model": "palmyra-x4",
+ "prompt": "Tell me a joke about OpenTelemetry",
+ "max_tokens": 150,
+ "temperature": 0.7,
+ "top_p": 0.9,
+ "stop": [
+ "."
+ ],
+ "stream": false
+ }'
+ headers:
+ accept:
+ - application/json
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com/v1/completions
+ response:
+ body:
+ string:
+ '{
+ "choices": [
+ {
+ "text": "A joke about OpenTelemetry!\n\nWhy did the OpenTelemetry collector go to therapy?\n\nBecause it was feeling instrumented, but could not seem to get a handle on its spans!",
+ "log_probs": null
+ }
+ ],
+ "model": "palmyra-x4"
+ }'
+ headers:
+ Content-Type:
+ - application/json; charset=utf-8
+ status:
+ code: 200
+ message: OK
+version: 1
\ No newline at end of file
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_completions/test_writer_completions_with_events_with_no_content.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_completions/test_writer_completions_with_events_with_no_content.yaml
new file mode 100644
index 0000000000..247b1c4acb
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_completions/test_writer_completions_with_events_with_no_content.yaml
@@ -0,0 +1,42 @@
+interactions:
+- request:
+ body:
+ '{
+ "model": "palmyra-x4",
+ "prompt": "Tell me a joke about OpenTelemetry",
+ "max_tokens": 150,
+ "temperature": 0.7,
+ "top_p": 0.9,
+ "stop": [
+ "."
+ ],
+ "stream": false
+ }'
+ headers:
+ accept:
+ - application/json
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com/v1/completions
+ response:
+ body:
+ string:
+ '{
+ "choices": [
+ {
+ "text": "A joke about OpenTelemetry!\n\nWhy did the OpenTelemetry collector go to therapy?\n\nBecause it was feeling instrumented, but could not seem to get a handle on its spans!",
+ "log_probs": null
+ }
+ ],
+ "model": "palmyra-x4"
+ }'
+ headers:
+ Content-Type:
+ - application/json; charset=utf-8
+ status:
+ code: 200
+ message: OK
+version: 1
\ No newline at end of file
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_completions/test_writer_streaming_completions_legacy.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_completions/test_writer_streaming_completions_legacy.yaml
new file mode 100644
index 0000000000..ac6862a2bd
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_completions/test_writer_streaming_completions_legacy.yaml
@@ -0,0 +1,205 @@
+interactions:
+- request:
+ body: '{"model":"palmyra-x4","prompt":"Tell me a joke about OpenTelemetry","max_tokens":340,"stop":["I
+ am"],"stream":true,"temperature":0.7,"top_p":0.9}'
+ headers:
+ accept:
+ - application/json
+ accept-encoding:
+ - gzip, deflate
+ connection:
+ - keep-alive
+ content-length:
+ - '145'
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com/v1/completions
+ response:
+ body:
+ string: 'data: {"value":"Sure"}
+
+
+ data: {"value":","}
+
+
+ data: {"value":" here"}
+
+
+ data: {"value":"''s"}
+
+
+ data: {"value":" a"}
+
+
+ data: {"value":" light"}
+
+
+ data: {"value":"-hearted"}
+
+
+ data: {"value":" joke"}
+
+
+ data: {"value":" about"}
+
+
+ data: {"value":" Open"}
+
+
+ data: {"value":"Te"}
+
+
+ data: {"value":"lemetry"}
+
+
+ data: {"value":":\n\n"}
+
+
+ data: {"value":"Why"}
+
+
+ data: {"value":" did"}
+
+
+ data: {"value":" the"}
+
+
+ data: {"value":" developer"}
+
+
+ data: {"value":" decide"}
+
+
+ data: {"value":" to"}
+
+
+ data: {"value":" use"}
+
+
+ data: {"value":" Open"}
+
+
+ data: {"value":"Te"}
+
+
+ data: {"value":"lemetry"}
+
+
+ data: {"value":" for"}
+
+
+ data: {"value":" his"}
+
+
+ data: {"value":" project"}
+
+
+ data: {"value":"?\n\n"}
+
+
+ data: {"value":"Because"}
+
+
+ data: {"value":" he"}
+
+
+ data: {"value":" wanted"}
+
+
+ data: {"value":" to"}
+
+
+ data: {"value":" make"}
+
+
+ data: {"value":" sure"}
+
+
+ data: {"value":" his"}
+
+
+ data: {"value":" application"}
+
+
+ data: {"value":" was"}
+
+
+ data: {"value":" fully"}
+
+
+ data: {"value":" instrument"}
+
+
+ data: {"value":"ed"}
+
+
+ data: {"value":","}
+
+
+ data: {"value":" and"}
+
+
+ data: {"value":" he"}
+
+
+ data: {"value":" didn"}
+
+
+ data: {"value":"''t"}
+
+
+ data: {"value":" want"}
+
+
+ data: {"value":" to"}
+
+
+ data: {"value":" trace"}
+
+
+ data: {"value":" back"}
+
+
+ data: {"value":" his"}
+
+
+ data: {"value":" steps"}
+
+
+ data: {"value":" to"}
+
+
+ data: {"value":" find"}
+
+
+ data: {"value":" out"}
+
+
+ data: {"value":" why"}
+
+
+ data: {"value":" it"}
+
+
+ data: {"value":" wasn"}
+
+
+ data: {"value":"''t"}
+
+
+ data: {"value":"!"}
+
+
+ '
+ headers:
+ Content-Type:
+ - text/event-stream
+ Transfer-Encoding:
+ - chunked
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_completions/test_writer_streaming_completions_with_events_with_content.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_completions/test_writer_streaming_completions_with_events_with_content.yaml
new file mode 100644
index 0000000000..ac6862a2bd
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_completions/test_writer_streaming_completions_with_events_with_content.yaml
@@ -0,0 +1,205 @@
+interactions:
+- request:
+ body: '{"model":"palmyra-x4","prompt":"Tell me a joke about OpenTelemetry","max_tokens":340,"stop":["I
+ am"],"stream":true,"temperature":0.7,"top_p":0.9}'
+ headers:
+ accept:
+ - application/json
+ accept-encoding:
+ - gzip, deflate
+ connection:
+ - keep-alive
+ content-length:
+ - '145'
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com/v1/completions
+ response:
+ body:
+ string: 'data: {"value":"Sure"}
+
+
+ data: {"value":","}
+
+
+ data: {"value":" here"}
+
+
+ data: {"value":"''s"}
+
+
+ data: {"value":" a"}
+
+
+ data: {"value":" light"}
+
+
+ data: {"value":"-hearted"}
+
+
+ data: {"value":" joke"}
+
+
+ data: {"value":" about"}
+
+
+ data: {"value":" Open"}
+
+
+ data: {"value":"Te"}
+
+
+ data: {"value":"lemetry"}
+
+
+ data: {"value":":\n\n"}
+
+
+ data: {"value":"Why"}
+
+
+ data: {"value":" did"}
+
+
+ data: {"value":" the"}
+
+
+ data: {"value":" developer"}
+
+
+ data: {"value":" decide"}
+
+
+ data: {"value":" to"}
+
+
+ data: {"value":" use"}
+
+
+ data: {"value":" Open"}
+
+
+ data: {"value":"Te"}
+
+
+ data: {"value":"lemetry"}
+
+
+ data: {"value":" for"}
+
+
+ data: {"value":" his"}
+
+
+ data: {"value":" project"}
+
+
+ data: {"value":"?\n\n"}
+
+
+ data: {"value":"Because"}
+
+
+ data: {"value":" he"}
+
+
+ data: {"value":" wanted"}
+
+
+ data: {"value":" to"}
+
+
+ data: {"value":" make"}
+
+
+ data: {"value":" sure"}
+
+
+ data: {"value":" his"}
+
+
+ data: {"value":" application"}
+
+
+ data: {"value":" was"}
+
+
+ data: {"value":" fully"}
+
+
+ data: {"value":" instrument"}
+
+
+ data: {"value":"ed"}
+
+
+ data: {"value":","}
+
+
+ data: {"value":" and"}
+
+
+ data: {"value":" he"}
+
+
+ data: {"value":" didn"}
+
+
+ data: {"value":"''t"}
+
+
+ data: {"value":" want"}
+
+
+ data: {"value":" to"}
+
+
+ data: {"value":" trace"}
+
+
+ data: {"value":" back"}
+
+
+ data: {"value":" his"}
+
+
+ data: {"value":" steps"}
+
+
+ data: {"value":" to"}
+
+
+ data: {"value":" find"}
+
+
+ data: {"value":" out"}
+
+
+ data: {"value":" why"}
+
+
+ data: {"value":" it"}
+
+
+ data: {"value":" wasn"}
+
+
+ data: {"value":"''t"}
+
+
+ data: {"value":"!"}
+
+
+ '
+ headers:
+ Content-Type:
+ - text/event-stream
+ Transfer-Encoding:
+ - chunked
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_completions/test_writer_streaming_completions_with_events_with_no_content.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_completions/test_writer_streaming_completions_with_events_with_no_content.yaml
new file mode 100644
index 0000000000..ac6862a2bd
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_completions/test_writer_streaming_completions_with_events_with_no_content.yaml
@@ -0,0 +1,205 @@
+interactions:
+- request:
+ body: '{"model":"palmyra-x4","prompt":"Tell me a joke about OpenTelemetry","max_tokens":340,"stop":["I
+ am"],"stream":true,"temperature":0.7,"top_p":0.9}'
+ headers:
+ accept:
+ - application/json
+ accept-encoding:
+ - gzip, deflate
+ connection:
+ - keep-alive
+ content-length:
+ - '145'
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com/v1/completions
+ response:
+ body:
+ string: 'data: {"value":"Sure"}
+
+
+ data: {"value":","}
+
+
+ data: {"value":" here"}
+
+
+ data: {"value":"''s"}
+
+
+ data: {"value":" a"}
+
+
+ data: {"value":" light"}
+
+
+ data: {"value":"-hearted"}
+
+
+ data: {"value":" joke"}
+
+
+ data: {"value":" about"}
+
+
+ data: {"value":" Open"}
+
+
+ data: {"value":"Te"}
+
+
+ data: {"value":"lemetry"}
+
+
+ data: {"value":":\n\n"}
+
+
+ data: {"value":"Why"}
+
+
+ data: {"value":" did"}
+
+
+ data: {"value":" the"}
+
+
+ data: {"value":" developer"}
+
+
+ data: {"value":" decide"}
+
+
+ data: {"value":" to"}
+
+
+ data: {"value":" use"}
+
+
+ data: {"value":" Open"}
+
+
+ data: {"value":"Te"}
+
+
+ data: {"value":"lemetry"}
+
+
+ data: {"value":" for"}
+
+
+ data: {"value":" his"}
+
+
+ data: {"value":" project"}
+
+
+ data: {"value":"?\n\n"}
+
+
+ data: {"value":"Because"}
+
+
+ data: {"value":" he"}
+
+
+ data: {"value":" wanted"}
+
+
+ data: {"value":" to"}
+
+
+ data: {"value":" make"}
+
+
+ data: {"value":" sure"}
+
+
+ data: {"value":" his"}
+
+
+ data: {"value":" application"}
+
+
+ data: {"value":" was"}
+
+
+ data: {"value":" fully"}
+
+
+ data: {"value":" instrument"}
+
+
+ data: {"value":"ed"}
+
+
+ data: {"value":","}
+
+
+ data: {"value":" and"}
+
+
+ data: {"value":" he"}
+
+
+ data: {"value":" didn"}
+
+
+ data: {"value":"''t"}
+
+
+ data: {"value":" want"}
+
+
+ data: {"value":" to"}
+
+
+ data: {"value":" trace"}
+
+
+ data: {"value":" back"}
+
+
+ data: {"value":" his"}
+
+
+ data: {"value":" steps"}
+
+
+ data: {"value":" to"}
+
+
+ data: {"value":" find"}
+
+
+ data: {"value":" out"}
+
+
+ data: {"value":" why"}
+
+
+ data: {"value":" it"}
+
+
+ data: {"value":" wasn"}
+
+
+ data: {"value":"''t"}
+
+
+ data: {"value":"!"}
+
+
+ '
+ headers:
+ Content-Type:
+ - text/event-stream
+ Transfer-Encoding:
+ - chunked
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_metrics/test_writer_async_metrics.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_metrics/test_writer_async_metrics.yaml
new file mode 100644
index 0000000000..b260192a1b
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_metrics/test_writer_async_metrics.yaml
@@ -0,0 +1,73 @@
+interactions:
+- request:
+ body: '{
+ "model": "palmyra-x4",
+ "messages": [
+ {
+ "role": "user",
+ "content": "Tell me a joke about OpenTelemetry"
+ }
+ ],
+ "stream": false,
+ "max_tokens": 340,
+ "temperature": 0.7,
+ "top_p": 0.9,
+ "stop": "I am"
+ }'
+ headers:
+ accept:
+ - application/json
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com:443/v1/chat
+ response:
+ body:
+ string: '{
+ "id": "57e4f58f-f7b1-41d8-be17-a6279c073aad",
+ "object": "chat.completion",
+ "model": "palmyra-x4",
+ "created": "1715361795",
+ "choices": [
+ {
+ "index": 0,
+ "finish_reason": "stop",
+ "message": {
+ "role": "assistant",
+ "content": "A joke about OpenTelemetry! Here it is:\n\nWhy did the OpenTelemetry span go to therapy?\n\nBecause it was struggling to instrument its issues!\n\n(Get it? \"Instrument\" has a double meaning here, referring both to the act of collecting metrics and traces in OpenTelemetry, as well as working through one''s problems... okay, maybe it''s just a techie joke)",
+ "refusal": null,
+ "tool_calls": [],
+ "graph_data": {
+ "sources": [],
+ "status": "finished",
+ "subqueries": []
+ },
+ "llm_data": null,
+ "translation_data": null,
+ "web_search_data": null
+ }
+ }
+ ],
+ "usage": {
+ "prompt_tokens": 40,
+ "total_tokens": 340,
+ "completion_tokens": 300,
+ "prompt_token_details": {
+ "cached_tokens": 0
+ },
+ "completion_token_details": {
+ "reasoning_tokens": 0
+ }
+ },
+ "system_fingerprint": "v1",
+ "service_tier": "standard"
+ }'
+ headers:
+ Content-Type:
+ - application/json; charset=utf-8
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_metrics/test_writer_async_streaming_metrics.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_metrics/test_writer_async_streaming_metrics.yaml
new file mode 100644
index 0000000000..7388f3fe94
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_metrics/test_writer_async_streaming_metrics.yaml
@@ -0,0 +1,195 @@
+interactions:
+- request:
+ body: '{"messages":[{"role":"user","content":"Tell me a joke about OpenTelemetry"}],"model":"palmyra-x4","max_tokens":340,"stop":"I
+ am","stream":true,"stream_options":{"include_usage":true},"temperature":0.7,"top_p":0.9}'
+ headers:
+ accept:
+ - application/json
+ accept-encoding:
+ - gzip, deflate
+ connection:
+ - keep-alive
+ content-length:
+ - '213'
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com/v1/chat
+ response:
+ body:
+ string: 'data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"Sure","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Sure","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":",","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":",","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ here","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ here","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"''s","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"''s","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ a","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ a","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ light","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ light","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"-hearted","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"-hearted","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ joke","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ joke","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ about","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ about","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":":\n\n","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":":\n\n","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"Why","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Why","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ did","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ did","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ the","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ the","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ developer","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ developer","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ go","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ go","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ broke","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ broke","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"?","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"?","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ Because","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ Because","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ he","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ he","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ used","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ used","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ and","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ and","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ couldn","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ couldn","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"''t","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"''t","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ keep","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ keep","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ his","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ his","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ expenses","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ expenses","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ under","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ under","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ **","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ **","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"trace","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"trace","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"**","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"**","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"!","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"!","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":"stop","message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[],"created":1755846931,"model":"palmyra-x4","usage":{"prompt_tokens":39,"total_tokens":76,"completion_tokens":37,"prompt_token_details":null,"completion_tokens_details":null},"system_fingerprint":"v1","service_tier":null}
+
+
+ '
+ headers:
+ Content-Type:
+ - text/event-stream
+ Transfer-Encoding:
+ - chunked
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_metrics/test_writer_metrics.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_metrics/test_writer_metrics.yaml
new file mode 100644
index 0000000000..b260192a1b
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_metrics/test_writer_metrics.yaml
@@ -0,0 +1,73 @@
+interactions:
+- request:
+ body: '{
+ "model": "palmyra-x4",
+ "messages": [
+ {
+ "role": "user",
+ "content": "Tell me a joke about OpenTelemetry"
+ }
+ ],
+ "stream": false,
+ "max_tokens": 340,
+ "temperature": 0.7,
+ "top_p": 0.9,
+ "stop": "I am"
+ }'
+ headers:
+ accept:
+ - application/json
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com:443/v1/chat
+ response:
+ body:
+ string: '{
+ "id": "57e4f58f-f7b1-41d8-be17-a6279c073aad",
+ "object": "chat.completion",
+ "model": "palmyra-x4",
+ "created": "1715361795",
+ "choices": [
+ {
+ "index": 0,
+ "finish_reason": "stop",
+ "message": {
+ "role": "assistant",
+ "content": "A joke about OpenTelemetry! Here it is:\n\nWhy did the OpenTelemetry span go to therapy?\n\nBecause it was struggling to instrument its issues!\n\n(Get it? \"Instrument\" has a double meaning here, referring both to the act of collecting metrics and traces in OpenTelemetry, as well as working through one''s problems... okay, maybe it''s just a techie joke)",
+ "refusal": null,
+ "tool_calls": [],
+ "graph_data": {
+ "sources": [],
+ "status": "finished",
+ "subqueries": []
+ },
+ "llm_data": null,
+ "translation_data": null,
+ "web_search_data": null
+ }
+ }
+ ],
+ "usage": {
+ "prompt_tokens": 40,
+ "total_tokens": 340,
+ "completion_tokens": 300,
+ "prompt_token_details": {
+ "cached_tokens": 0
+ },
+ "completion_token_details": {
+ "reasoning_tokens": 0
+ }
+ },
+ "system_fingerprint": "v1",
+ "service_tier": "standard"
+ }'
+ headers:
+ Content-Type:
+ - application/json; charset=utf-8
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_metrics/test_writer_streaming_metrics.yaml b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_metrics/test_writer_streaming_metrics.yaml
new file mode 100644
index 0000000000..7388f3fe94
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/cassettes/test_metrics/test_writer_streaming_metrics.yaml
@@ -0,0 +1,195 @@
+interactions:
+- request:
+ body: '{"messages":[{"role":"user","content":"Tell me a joke about OpenTelemetry"}],"model":"palmyra-x4","max_tokens":340,"stop":"I
+ am","stream":true,"stream_options":{"include_usage":true},"temperature":0.7,"top_p":0.9}'
+ headers:
+ accept:
+ - application/json
+ accept-encoding:
+ - gzip, deflate
+ connection:
+ - keep-alive
+ content-length:
+ - '213'
+ content-type:
+ - application/json
+ host:
+ - api.writer.com
+ method: POST
+ uri: https://api.writer.com/v1/chat
+ response:
+ body:
+ string: 'data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"Sure","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Sure","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":",","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":",","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ here","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ here","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"''s","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"''s","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ a","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ a","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ light","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ light","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"-hearted","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"-hearted","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ joke","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ joke","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ about","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ about","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":":\n\n","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":":\n\n","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"Why","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Why","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ did","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ did","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ the","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ the","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ developer","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ developer","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ go","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ go","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ broke","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ broke","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"?","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"?","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ Because","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ Because","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ he","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ he","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ used","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ used","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ Open","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"Te","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"lemetry","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ and","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ and","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ couldn","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ couldn","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"''t","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"''t","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ keep","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ keep","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ his","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ his","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ expenses","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ expenses","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ under","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ under","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"
+ **","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"
+ **","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"trace","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"trace","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"**","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"**","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":null,"message":{"content":"!","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":"!","role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[{"index":0,"finish_reason":"stop","message":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"delta":{"content":null,"role":"assistant","tool_calls":null,"graph_data":{"sources":null,"status":null,"subqueries":null},"llm_data":null,"image_data":null,"translation_data":null,"web_search_data":null,"refusal":null},"logprobs":null,"trace_details":null}],"created":1755846931,"model":"palmyra-x4","usage":null,"system_fingerprint":"v1","service_tier":null}
+
+
+ data: {"id":"1533878c-5636-44cf-a696-6a7b02304607","object":"chat.completion.chunk","choices":[],"created":1755846931,"model":"palmyra-x4","usage":{"prompt_tokens":39,"total_tokens":76,"completion_tokens":37,"prompt_token_details":null,"completion_tokens_details":null},"system_fingerprint":"v1","service_tier":null}
+
+
+ '
+ headers:
+ Content-Type:
+ - text/event-stream
+ Transfer-Encoding:
+ - chunked
+ status:
+ code: 200
+ message: OK
+version: 1
diff --git a/packages/opentelemetry-instrumentation-writer/tests/conftest.py b/packages/opentelemetry-instrumentation-writer/tests/conftest.py
new file mode 100644
index 0000000000..98c2250896
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/conftest.py
@@ -0,0 +1,129 @@
+"""Unit tests configuration module."""
+
+import os
+
+import pytest
+from opentelemetry.sdk._events import EventLoggerProvider
+from opentelemetry.sdk._logs import LoggerProvider
+from opentelemetry.sdk._logs.export import (InMemoryLogExporter,
+ SimpleLogRecordProcessor)
+from opentelemetry.sdk.metrics import Counter, Histogram, MeterProvider
+from opentelemetry.sdk.metrics.export import (AggregationTemporality,
+ InMemoryMetricReader)
+from opentelemetry.sdk.resources import Resource
+from opentelemetry.sdk.trace import TracerProvider
+from opentelemetry.sdk.trace.export import SimpleSpanProcessor
+from opentelemetry.sdk.trace.export.in_memory_span_exporter import \
+ InMemorySpanExporter
+from writerai import AsyncWriter, Writer
+
+from opentelemetry.instrumentation.writer import WriterInstrumentor
+from opentelemetry.instrumentation.writer.utils import TRACELOOP_TRACE_CONTENT
+
+if "WRITER_API_KEY" not in os.environ:
+ os.environ["WRITER_API_KEY"] = "test_api_key"
+
+
+@pytest.fixture(scope="function", name="span_exporter")
+def fixture_span_exporter():
+ exporter = InMemorySpanExporter()
+ yield exporter
+
+
+@pytest.fixture(scope="function", name="tracer_provider")
+def fixture_tracer_provider(span_exporter):
+ provider = TracerProvider()
+ provider.add_span_processor(SimpleSpanProcessor(span_exporter))
+ return provider
+
+
+@pytest.fixture(scope="function", name="log_exporter")
+def fixture_log_exporter():
+ exporter = InMemoryLogExporter()
+ yield exporter
+
+
+@pytest.fixture(scope="function", name="event_logger_provider")
+def fixture_event_logger_provider(log_exporter):
+ provider = LoggerProvider()
+ provider.add_log_record_processor(SimpleLogRecordProcessor(log_exporter))
+ event_logger_provider = EventLoggerProvider(provider)
+
+ return event_logger_provider
+
+
+@pytest.fixture(scope="function", name="reader")
+def fixture_reader():
+ reader = InMemoryMetricReader(
+ {Counter: AggregationTemporality.DELTA, Histogram: AggregationTemporality.DELTA}
+ )
+ return reader
+
+
+@pytest.fixture(scope="function", name="meter_provider")
+def fixture_meter_provider(reader):
+ resource = Resource.create()
+ meter_provider = MeterProvider(metric_readers=[reader], resource=resource)
+
+ return meter_provider
+
+
+@pytest.fixture
+def writer_client():
+ return Writer()
+
+
+@pytest.fixture
+def writer_client_async():
+ return AsyncWriter()
+
+
+@pytest.fixture(scope="function")
+def instrument_legacy(reader, tracer_provider, meter_provider):
+ instrumentor = WriterInstrumentor()
+ instrumentor.instrument(
+ tracer_provider=tracer_provider,
+ meter_provider=meter_provider,
+ )
+
+ yield instrumentor
+
+ instrumentor.uninstrument()
+
+
+@pytest.fixture(scope="function")
+def instrument_with_content(
+ reader, tracer_provider, event_logger_provider, meter_provider
+):
+ os.environ.update({TRACELOOP_TRACE_CONTENT: "True"})
+
+ instrumentor = WriterInstrumentor(use_legacy_attributes=False)
+ instrumentor.instrument(
+ tracer_provider=tracer_provider,
+ event_logger_provider=event_logger_provider,
+ meter_provider=meter_provider,
+ )
+
+ yield instrumentor
+
+ os.environ.pop(TRACELOOP_TRACE_CONTENT, None)
+ instrumentor.uninstrument()
+
+
+@pytest.fixture(scope="function")
+def instrument_with_no_content(
+ reader, tracer_provider, event_logger_provider, meter_provider
+):
+ os.environ.update({TRACELOOP_TRACE_CONTENT: "False"})
+
+ instrumentor = WriterInstrumentor(use_legacy_attributes=False)
+ instrumentor.instrument(
+ tracer_provider=tracer_provider,
+ event_logger_provider=event_logger_provider,
+ meter_provider=meter_provider,
+ )
+
+ yield instrumentor
+
+ os.environ.pop(TRACELOOP_TRACE_CONTENT, None)
+ instrumentor.uninstrument()
diff --git a/packages/opentelemetry-instrumentation-writer/tests/test_chat.py b/packages/opentelemetry-instrumentation-writer/tests/test_chat.py
new file mode 100644
index 0000000000..e6c22ea416
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/test_chat.py
@@ -0,0 +1,5527 @@
+import pytest
+from opentelemetry.sdk._logs import LogData
+from opentelemetry.semconv._incubating.attributes import \
+ event_attributes as EventAttributes
+from opentelemetry.semconv._incubating.attributes import \
+ gen_ai_attributes as GenAIAttributes
+from opentelemetry.semconv_ai import SpanAttributes
+from writerai.types import ChatCompletion
+
+from opentelemetry.instrumentation.writer import _update_accumulated_response
+
+
+def assert_message_in_logs(log: LogData, event_name: str, expected_content: dict):
+ assert log.log_record.attributes.get(EventAttributes.EVENT_NAME) == event_name
+ assert log.log_record.attributes.get(GenAIAttributes.GEN_AI_SYSTEM) == "writer"
+
+ if not expected_content:
+ assert not log.log_record.body
+ else:
+ assert log.log_record.body
+ assert dict(log.log_record.body) == expected_content
+
+
+@pytest.mark.vcr
+def test_writer_chat_legacy(
+ instrument_legacy, writer_client, span_exporter, log_exporter
+):
+ response = writer_client.chat.chat(
+ model="palmyra-x4",
+ messages=[
+ {
+ "role": "user",
+ "content": "Tell me a joke about OpenTelemetry",
+ },
+ ],
+ temperature=0.7,
+ top_p=0.9,
+ max_tokens=340,
+ stop="I am",
+ )
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+
+ assert writer_span.name == "writerai.chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "chat"
+ assert not writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}")
+ == "I am"
+ )
+
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_PROMPTS}.0.content")
+ == "Tell me a joke about OpenTelemetry"
+ )
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_COMPLETIONS}.0.content")
+ == response.choices[0].message.content
+ )
+ assert writer_span.attributes.get(SpanAttributes.LLM_USAGE_PROMPT_TOKENS) == 40
+ assert writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_TOTAL_TOKENS
+ ) == writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_COMPLETION_TOKENS
+ ) + writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_PROMPT_TOKENS
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert (
+ len(logs) == 0
+ ), "Assert that it doesn't emit logs when use_legacy_attributes is True"
+
+
+@pytest.mark.vcr
+def test_writer_chat_with_events_with_content(
+ instrument_with_content, writer_client, span_exporter, log_exporter
+):
+ response = writer_client.chat.chat(
+ model="palmyra-x4",
+ messages=[
+ {
+ "role": "user",
+ "content": "Tell me a joke about OpenTelemetry",
+ },
+ ],
+ temperature=0.7,
+ top_p=0.9,
+ max_tokens=340,
+ stop="I am",
+ )
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+
+ assert writer_span.name == "writerai.chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "chat"
+ assert not writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}")
+ == "I am"
+ )
+
+ assert writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_TOTAL_TOKENS
+ ) == writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_COMPLETION_TOKENS
+ ) + writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_PROMPT_TOKENS
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert len(logs) == 2
+
+ assert_message_in_logs(
+ logs[0],
+ "gen_ai.user.message",
+ {"content": "Tell me a joke about OpenTelemetry"},
+ )
+
+ choice_event = {
+ "index": 0,
+ "finish_reason": "stop",
+ "message": {"content": response.choices[0].message.content, "tool_calls": []},
+ }
+ assert_message_in_logs(logs[1], "gen_ai.choice", choice_event)
+
+
+@pytest.mark.vcr
+def test_writer_chat_with_events_with_no_content(
+ instrument_with_no_content, writer_client, span_exporter, log_exporter
+):
+ writer_client.chat.chat(
+ model="palmyra-x4",
+ messages=[
+ {
+ "role": "user",
+ "content": "Tell me a joke about OpenTelemetry",
+ },
+ ],
+ temperature=0.7,
+ top_p=0.9,
+ max_tokens=340,
+ stop="I am",
+ )
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+
+ assert writer_span.name == "writerai.chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "chat"
+ assert not writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}")
+ == "I am"
+ )
+
+ assert writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_TOTAL_TOKENS
+ ) == writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_COMPLETION_TOKENS
+ ) + writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_PROMPT_TOKENS
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert len(logs) == 2
+
+ assert_message_in_logs(logs[0], "gen_ai.user.message", {})
+
+ choice_event = {
+ "index": 0,
+ "finish_reason": "stop",
+ "message": {"tool_calls": []},
+ }
+ assert_message_in_logs(logs[1], "gen_ai.choice", choice_event)
+
+
+@pytest.mark.vcr
+def test_writer_chat_tool_calls_legacy(
+ instrument_legacy, writer_client, span_exporter, log_exporter
+):
+ response = writer_client.chat.chat(
+ model="palmyra-x4",
+ messages=[
+ {"role": "user", "content": "What is the weather like today?"},
+ {
+ "role": "assistant",
+ "content": "",
+ "tool_calls": [
+ {
+ "type": "function",
+ "function": {
+ "name": "get_current_weather",
+ "arguments": '{"location": "San Francisco"}',
+ },
+ }
+ ],
+ },
+ {
+ "role": "tool",
+ "content": "The weather in San Francisco is 70 degrees and sunny.",
+ },
+ ],
+ tools=[
+ {
+ "function": {
+ "description": "Return weather in the specific location.",
+ "name": "get_weather",
+ "parameters": {
+ "properties": {
+ "location": {
+ "description": "Location to return weather at",
+ "type": "string",
+ },
+ },
+ "required": ["location"],
+ "type": "object",
+ },
+ },
+ "type": "function",
+ }
+ ],
+ stream=False,
+ max_tokens=340,
+ temperature=0.7,
+ top_p=0.9,
+ stop="I am",
+ )
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+ assert writer_span.name == "writerai.chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "chat"
+ assert not writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}")
+ == "I am"
+ )
+
+ assert writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_TOTAL_TOKENS
+ ) == writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_COMPLETION_TOKENS
+ ) + writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_PROMPT_TOKENS
+ )
+
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_PROMPTS}.0.content")
+ == "What is the weather like today?"
+ )
+ assert (
+ f"{SpanAttributes.LLM_REQUEST_FUNCTIONS}.1.content"
+ not in writer_span.attributes
+ )
+
+ assert (
+ writer_span.attributes[f"{SpanAttributes.LLM_PROMPTS}.1.tool_calls.0.name"]
+ == "get_current_weather"
+ )
+ assert (
+ writer_span.attributes[f"{SpanAttributes.LLM_PROMPTS}.1.tool_calls.0.arguments"]
+ == '{"location": "San Francisco"}'
+ )
+
+ assert (
+ writer_span.attributes[f"{SpanAttributes.LLM_PROMPTS}.2.content"]
+ == "The weather in San Francisco is 70 degrees and sunny."
+ )
+
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_COMPLETIONS}.0.content")
+ == response.choices[0].message.content
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert (
+ len(logs) == 0
+ ), "Assert that it doesn't emit logs when use_legacy_attributes is True"
+
+
+@pytest.mark.vcr
+def test_writer_chat_tool_calls_with_events_with_content(
+ instrument_with_content, writer_client, span_exporter, log_exporter
+):
+ response = writer_client.chat.chat(
+ model="palmyra-x4",
+ messages=[
+ {"role": "user", "content": "What is the weather like today?"},
+ {
+ "role": "assistant",
+ "content": "",
+ "tool_calls": [
+ {
+ "type": "function",
+ "function": {
+ "name": "get_current_weather",
+ "arguments": '{"location": "San Francisco"}',
+ },
+ }
+ ],
+ },
+ {
+ "role": "tool",
+ "content": "The weather in San Francisco is 70 degrees and sunny.",
+ },
+ ],
+ tools=[
+ {
+ "function": {
+ "description": "Return weather in the specific location.",
+ "name": "get_weather",
+ "parameters": {
+ "properties": {
+ "location": {
+ "description": "Location to return weather at",
+ "type": "string",
+ },
+ },
+ "required": ["location"],
+ "type": "object",
+ },
+ },
+ "type": "function",
+ }
+ ],
+ stream=False,
+ max_tokens=340,
+ temperature=0.7,
+ top_p=0.9,
+ stop="I am",
+ )
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+
+ assert writer_span.name == "writerai.chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "chat"
+ assert not writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}")
+ == "I am"
+ )
+
+ assert writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_TOTAL_TOKENS
+ ) == writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_COMPLETION_TOKENS
+ ) + writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_PROMPT_TOKENS
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert len(logs) == 4
+
+ assert_message_in_logs(
+ logs[0],
+ "gen_ai.user.message",
+ {"content": "What is the weather like today?"},
+ )
+
+ assistant_message = {
+ "content": "",
+ "tool_calls": [
+ {
+ "function": {
+ "arguments": '{"location": "San Francisco"}',
+ "name": "get_current_weather",
+ },
+ "type": "function",
+ }
+ ],
+ }
+ assert_message_in_logs(logs[1], "gen_ai.assistant.message", assistant_message)
+
+ assert_message_in_logs(
+ logs[2],
+ "gen_ai.tool.message",
+ {"content": "The weather in San Francisco is 70 degrees and sunny."},
+ )
+
+ choice_event = {
+ "index": 0,
+ "finish_reason": "stop",
+ "message": {"content": response.choices[0].message.content, "tool_calls": []},
+ }
+ assert_message_in_logs(logs[3], "gen_ai.choice", choice_event)
+
+
+@pytest.mark.vcr
+def test_writer_chat_tool_calls_with_events_with_no_content(
+ instrument_with_no_content, writer_client, span_exporter, log_exporter
+):
+ writer_client.chat.chat(
+ model="palmyra-x4",
+ messages=[
+ {"role": "user", "content": "What is the weather like today?"},
+ {
+ "role": "assistant",
+ "content": "",
+ "tool_calls": [
+ {
+ "type": "function",
+ "function": {
+ "name": "get_current_weather",
+ "arguments": '{"location": "San Francisco"}',
+ },
+ }
+ ],
+ },
+ {
+ "role": "tool",
+ "content": "The weather in San Francisco is 70 degrees and sunny.",
+ },
+ ],
+ tools=[
+ {
+ "function": {
+ "description": "Return weather in the specific location.",
+ "name": "get_weather",
+ "parameters": {
+ "properties": {
+ "location": {
+ "description": "Location to return weather at",
+ "type": "string",
+ },
+ },
+ "required": ["location"],
+ "type": "object",
+ },
+ },
+ "type": "function",
+ }
+ ],
+ stream=False,
+ max_tokens=340,
+ temperature=0.7,
+ top_p=0.9,
+ stop="I am",
+ )
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+
+ assert writer_span.name == "writerai.chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "chat"
+ assert not writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}")
+ == "I am"
+ )
+
+ assert writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_TOTAL_TOKENS
+ ) == writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_COMPLETION_TOKENS
+ ) + writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_PROMPT_TOKENS
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert len(logs) == 4
+
+ assert_message_in_logs(logs[0], "gen_ai.user.message", {})
+
+ assert_message_in_logs(
+ logs[1],
+ "gen_ai.assistant.message",
+ {
+ "tool_calls": [
+ {
+ "function": {"name": "get_current_weather"},
+ "type": "function",
+ }
+ ],
+ },
+ )
+
+ assert_message_in_logs(logs[2], "gen_ai.tool.message", {})
+
+ choice_event = {
+ "index": 0,
+ "finish_reason": "stop",
+ "message": {"tool_calls": []},
+ }
+ assert_message_in_logs(logs[3], "gen_ai.choice", choice_event)
+
+
+@pytest.mark.vcr
+def test_writer_streaming_chat_legacy(
+ instrument_legacy, writer_client, span_exporter, log_exporter
+):
+ gen = writer_client.chat.chat(
+ model="palmyra-x4",
+ messages=[
+ {
+ "role": "user",
+ "content": "Tell me a joke about OpenTelemetry",
+ },
+ ],
+ temperature=0.7,
+ top_p=0.9,
+ max_tokens=340,
+ stop="I am",
+ stream=True,
+ stream_options={"include_usage": True},
+ )
+
+ response = ""
+ for res in gen:
+ if res.choices and res.choices[0].message.content:
+ response += res.choices[0].message.content
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+ assert writer_span.name == "writerai.chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}")
+ == "I am"
+ )
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_PROMPTS}.0.content")
+ == "Tell me a joke about OpenTelemetry"
+ )
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_COMPLETIONS}.0.content")
+ == response
+ )
+ assert writer_span.attributes.get(SpanAttributes.LLM_USAGE_PROMPT_TOKENS) == 39
+ assert writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_TOTAL_TOKENS
+ ) == writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_COMPLETION_TOKENS
+ ) + writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_PROMPT_TOKENS
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert (
+ len(logs) == 0
+ ), "Assert that it doesn't emit logs when use_legacy_attributes is True"
+
+
+@pytest.mark.vcr
+def test_writer_streaming_chat_with_events_with_content(
+ instrument_with_content, writer_client, span_exporter, log_exporter
+):
+ gen = writer_client.chat.chat(
+ model="palmyra-x4",
+ messages=[
+ {
+ "role": "user",
+ "content": "Tell me a joke about OpenTelemetry",
+ },
+ ],
+ temperature=0.7,
+ top_p=0.9,
+ max_tokens=340,
+ stop="I am",
+ stream=True,
+ stream_options={"include_usage": True},
+ )
+
+ response = ""
+ for res in gen:
+ if res.choices and res.choices[0].message.content:
+ response += res.choices[0].message.content
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+ assert writer_span.name == "writerai.chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}")
+ == "I am"
+ )
+
+ assert writer_span.attributes.get(SpanAttributes.LLM_USAGE_PROMPT_TOKENS) == 39
+ assert writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_TOTAL_TOKENS
+ ) == writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_COMPLETION_TOKENS
+ ) + writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_PROMPT_TOKENS
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert len(logs) == 2
+
+ assert_message_in_logs(
+ logs[0],
+ "gen_ai.user.message",
+ {"content": "Tell me a joke about OpenTelemetry"},
+ )
+
+ choice_event = {
+ "index": 0,
+ "finish_reason": "stop",
+ "message": {"content": response, "tool_calls": []},
+ }
+ assert_message_in_logs(logs[1], "gen_ai.choice", choice_event)
+
+
+@pytest.mark.vcr
+def test_writer_streaming_chat_with_events_with_no_content(
+ instrument_with_no_content, writer_client, span_exporter, log_exporter
+):
+ gen = writer_client.chat.chat(
+ model="palmyra-x4",
+ messages=[
+ {
+ "role": "user",
+ "content": "Tell me a joke about OpenTelemetry",
+ },
+ ],
+ temperature=0.7,
+ top_p=0.9,
+ max_tokens=340,
+ stop="I am",
+ stream=True,
+ stream_options={"include_usage": True},
+ )
+
+ response = ""
+ for res in gen:
+ if res.choices and res.choices[0].message.content:
+ response += res.choices[0].message.content
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+ assert writer_span.name == "writerai.chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}")
+ == "I am"
+ )
+
+ assert writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_TOTAL_TOKENS
+ ) == writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_COMPLETION_TOKENS
+ ) + writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_PROMPT_TOKENS
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert len(logs) == 2
+
+ assert_message_in_logs(logs[0], "gen_ai.user.message", {})
+
+ choice_event = {
+ "index": 0,
+ "finish_reason": "stop",
+ "message": {"tool_calls": []},
+ }
+ assert_message_in_logs(logs[1], "gen_ai.choice", choice_event)
+
+
+@pytest.mark.vcr
+def test_writer_streaming_chat_tool_calls_legacy(
+ instrument_legacy, writer_client, span_exporter, log_exporter
+):
+ gen = writer_client.chat.chat(
+ model="palmyra-x4",
+ messages=[
+ {"role": "user", "content": "What is the weather like today?"},
+ {
+ "role": "assistant",
+ "content": "",
+ "tool_calls": [
+ {
+ "type": "function",
+ "function": {
+ "name": "get_current_weather",
+ "arguments": '{"location": "San Francisco"}',
+ },
+ }
+ ],
+ },
+ {
+ "role": "tool",
+ "content": "The weather in San Francisco is 70 degrees and sunny.",
+ },
+ ],
+ tools=[
+ {
+ "function": {
+ "description": "Return weather in the specific location.",
+ "name": "get_weather",
+ "parameters": {
+ "properties": {
+ "location": {
+ "description": "Location to return weather at",
+ "type": "string",
+ },
+ },
+ "required": ["location"],
+ "type": "object",
+ },
+ },
+ "type": "function",
+ }
+ ],
+ stream=True,
+ max_tokens=340,
+ temperature=0.7,
+ top_p=0.9,
+ stop="I am",
+ stream_options={"include_usage": True},
+ )
+
+ response = ""
+ for res in gen:
+ if res.choices and res.choices[0].message.content:
+ response += res.choices[0].message.content
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+ assert writer_span.name == "writerai.chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}")
+ == "I am"
+ )
+
+ assert writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_TOTAL_TOKENS
+ ) == writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_COMPLETION_TOKENS
+ ) + writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_PROMPT_TOKENS
+ )
+
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_PROMPTS}.0.content")
+ == "What is the weather like today?"
+ )
+ assert (
+ f"{SpanAttributes.LLM_REQUEST_FUNCTIONS}.1.content"
+ not in writer_span.attributes
+ )
+
+ assert (
+ writer_span.attributes[f"{SpanAttributes.LLM_PROMPTS}.1.tool_calls.0.name"]
+ == "get_current_weather"
+ )
+ assert (
+ writer_span.attributes[f"{SpanAttributes.LLM_PROMPTS}.1.tool_calls.0.arguments"]
+ == '{"location": "San Francisco"}'
+ )
+
+ assert (
+ writer_span.attributes[f"{SpanAttributes.LLM_PROMPTS}.2.content"]
+ == "The weather in San Francisco is 70 degrees and sunny."
+ )
+
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_COMPLETIONS}.0.content")
+ == response
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert (
+ len(logs) == 0
+ ), "Assert that it doesn't emit logs when use_legacy_attributes is True"
+
+
+@pytest.mark.vcr
+def test_writer_streaming_chat_tool_calls_with_events_with_content(
+ instrument_with_content, writer_client, span_exporter, log_exporter
+):
+ gen = writer_client.chat.chat(
+ model="palmyra-x4",
+ messages=[
+ {"role": "user", "content": "What is the weather like today?"},
+ {
+ "role": "assistant",
+ "content": "",
+ "tool_calls": [
+ {
+ "type": "function",
+ "function": {
+ "name": "get_current_weather",
+ "arguments": '{"location": "San Francisco"}',
+ },
+ }
+ ],
+ },
+ {
+ "role": "tool",
+ "content": "The weather in San Francisco is 70 degrees and sunny.",
+ },
+ ],
+ tools=[
+ {
+ "function": {
+ "description": "Return weather in the specific location.",
+ "name": "get_weather",
+ "parameters": {
+ "properties": {
+ "location": {
+ "description": "Location to return weather at",
+ "type": "string",
+ },
+ },
+ "required": ["location"],
+ "type": "object",
+ },
+ },
+ "type": "function",
+ }
+ ],
+ stream=True,
+ max_tokens=340,
+ temperature=0.7,
+ top_p=0.9,
+ stop="I am",
+ stream_options={"include_usage": True},
+ )
+
+ response = ""
+ for res in gen:
+ if res.choices and res.choices[0].message.content:
+ response += res.choices[0].message.content
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+
+ assert writer_span.name == "writerai.chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}")
+ == "I am"
+ )
+
+ assert writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_TOTAL_TOKENS
+ ) == writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_COMPLETION_TOKENS
+ ) + writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_PROMPT_TOKENS
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert len(logs) == 4
+
+ assert_message_in_logs(
+ logs[0],
+ "gen_ai.user.message",
+ {"content": "What is the weather like today?"},
+ )
+
+ assistant_message = {
+ "content": "",
+ "tool_calls": [
+ {
+ "function": {
+ "arguments": '{"location": "San Francisco"}',
+ "name": "get_current_weather",
+ },
+ "type": "function",
+ }
+ ],
+ }
+ assert_message_in_logs(logs[1], "gen_ai.assistant.message", assistant_message)
+
+ assert_message_in_logs(
+ logs[2],
+ "gen_ai.tool.message",
+ {"content": "The weather in San Francisco is 70 degrees and sunny."},
+ )
+
+ choice_event = {
+ "index": 0,
+ "finish_reason": "stop",
+ "message": {"content": response, "tool_calls": []},
+ }
+ assert_message_in_logs(logs[3], "gen_ai.choice", choice_event)
+
+
+@pytest.mark.vcr
+def test_writer_streaming_chat_tool_calls_with_events_with_no_content(
+ instrument_with_no_content, writer_client, span_exporter, log_exporter
+):
+ gen = writer_client.chat.chat(
+ model="palmyra-x4",
+ messages=[
+ {"role": "user", "content": "What is the weather like today?"},
+ {
+ "role": "assistant",
+ "content": "",
+ "tool_calls": [
+ {
+ "type": "function",
+ "function": {
+ "name": "get_current_weather",
+ "arguments": '{"location": "San Francisco"}',
+ },
+ }
+ ],
+ },
+ {
+ "role": "tool",
+ "content": "The weather in San Francisco is 70 degrees and sunny.",
+ },
+ ],
+ tools=[
+ {
+ "function": {
+ "description": "Return weather in the specific location.",
+ "name": "get_weather",
+ "parameters": {
+ "properties": {
+ "location": {
+ "description": "Location to return weather at",
+ "type": "string",
+ },
+ },
+ "required": ["location"],
+ "type": "object",
+ },
+ },
+ "type": "function",
+ }
+ ],
+ stream=True,
+ max_tokens=340,
+ temperature=0.7,
+ top_p=0.9,
+ stop="I am",
+ stream_options={"include_usage": True},
+ )
+
+ response = ""
+ for res in gen:
+ if res.choices and res.choices[0].message.content:
+ response += res.choices[0].message.content
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+
+ assert writer_span.name == "writerai.chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}")
+ == "I am"
+ )
+
+ assert writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_TOTAL_TOKENS
+ ) == writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_COMPLETION_TOKENS
+ ) + writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_PROMPT_TOKENS
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert len(logs) == 4
+
+ assert_message_in_logs(logs[0], "gen_ai.user.message", {})
+
+ assert_message_in_logs(
+ logs[1],
+ "gen_ai.assistant.message",
+ {
+ "tool_calls": [
+ {
+ "function": {"name": "get_current_weather"},
+ "type": "function",
+ }
+ ],
+ },
+ )
+
+ assert_message_in_logs(logs[2], "gen_ai.tool.message", {})
+
+ choice_event = {
+ "index": 0,
+ "finish_reason": "stop",
+ "message": {"tool_calls": []},
+ }
+ assert_message_in_logs(logs[3], "gen_ai.choice", choice_event)
+
+
+@pytest.mark.vcr
+def test_writer_chat_tool_call_request_legacy(
+ instrument_legacy, writer_client, span_exporter, log_exporter
+):
+ response = writer_client.chat.chat(
+ model="palmyra-x4",
+ messages=[
+ {"role": "user", "content": "What is the weather like in Zakopane today?"},
+ ],
+ tools=[
+ {
+ "function": {
+ "description": "Return weather in the specific location.",
+ "name": "get_weather",
+ "parameters": {
+ "properties": {
+ "location": {
+ "description": "Location to return weather at",
+ "type": "string",
+ },
+ },
+ "required": ["location"],
+ "type": "object",
+ },
+ },
+ "type": "function",
+ }
+ ],
+ stream=False,
+ max_tokens=340,
+ temperature=0.7,
+ top_p=0.9,
+ stop="I am",
+ )
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+ assert writer_span.name == "writerai.chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "chat"
+ assert not writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}")
+ == "I am"
+ )
+
+ assert writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_TOTAL_TOKENS
+ ) == writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_COMPLETION_TOKENS
+ ) + writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_PROMPT_TOKENS
+ )
+
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_PROMPTS}.0.content")
+ == "What is the weather like in Zakopane today?"
+ )
+
+ assert (
+ writer_span.attributes[f"{SpanAttributes.LLM_COMPLETIONS}.0.finish_reason"]
+ == response.choices[0].finish_reason
+ )
+ assert (
+ writer_span.attributes[f"{SpanAttributes.LLM_COMPLETIONS}.0.tool_calls.0.id"]
+ == response.choices[0].message.tool_calls[0].id
+ )
+ assert (
+ writer_span.attributes[f"{SpanAttributes.LLM_COMPLETIONS}.0.tool_calls.0.name"]
+ == response.choices[0].message.tool_calls[0].function.name
+ )
+ assert (
+ writer_span.attributes[
+ f"{SpanAttributes.LLM_COMPLETIONS}.0.tool_calls.0.arguments"
+ ]
+ == response.choices[0].message.tool_calls[0].function.arguments
+ )
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_COMPLETIONS}.0.role")
+ == response.choices[0].message.role
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert (
+ len(logs) == 0
+ ), "Assert that it doesn't emit logs when use_legacy_attributes is True"
+
+
+@pytest.mark.vcr
+def test_writer_chat_tool_call_request_with_events_with_content(
+ instrument_with_content, writer_client, span_exporter, log_exporter
+):
+ response = writer_client.chat.chat(
+ model="palmyra-x4",
+ messages=[
+ {"role": "user", "content": "What is the weather like in Zakopane today?"},
+ ],
+ tools=[
+ {
+ "function": {
+ "description": "Return weather in the specific location.",
+ "name": "get_weather",
+ "parameters": {
+ "properties": {
+ "location": {
+ "description": "Location to return weather at",
+ "type": "string",
+ },
+ },
+ "required": ["location"],
+ "type": "object",
+ },
+ },
+ "type": "function",
+ }
+ ],
+ stream=False,
+ max_tokens=340,
+ temperature=0.7,
+ top_p=0.9,
+ stop="I am",
+ )
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+
+ assert writer_span.name == "writerai.chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "chat"
+ assert not writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}")
+ == "I am"
+ )
+
+ assert writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_TOTAL_TOKENS
+ ) == writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_COMPLETION_TOKENS
+ ) + writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_PROMPT_TOKENS
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert len(logs) == 2
+
+ assert_message_in_logs(
+ logs[0],
+ "gen_ai.user.message",
+ {"content": "What is the weather like in Zakopane today?"},
+ )
+
+ choice_event = {
+ "index": 0,
+ "finish_reason": response.choices[0].finish_reason,
+ "message": {
+ "content": response.choices[0].message.content,
+ "tool_calls": [
+ {
+ "id": response.choices[0].message.tool_calls[0].id,
+ "function": {
+ "arguments": response.choices[0]
+ .message.tool_calls[0]
+ .function.arguments,
+ "name": response.choices[0].message.tool_calls[0].function.name,
+ },
+ "type": response.choices[0].message.tool_calls[0].type,
+ "index": None,
+ }
+ ],
+ },
+ }
+ assert_message_in_logs(logs[1], "gen_ai.choice", choice_event)
+
+
+@pytest.mark.vcr
+def test_writer_chat_tool_call_request_with_events_with_no_content(
+ instrument_with_no_content, writer_client, span_exporter, log_exporter
+):
+ response = writer_client.chat.chat(
+ model="palmyra-x4",
+ messages=[
+ {"role": "user", "content": "What is the weather like in Zakopane today?"},
+ ],
+ tools=[
+ {
+ "function": {
+ "description": "Return weather in the specific location.",
+ "name": "get_weather",
+ "parameters": {
+ "properties": {
+ "location": {
+ "description": "Location to return weather at",
+ "type": "string",
+ },
+ },
+ "required": ["location"],
+ "type": "object",
+ },
+ },
+ "type": "function",
+ }
+ ],
+ stream=False,
+ max_tokens=340,
+ temperature=0.7,
+ top_p=0.9,
+ stop="I am",
+ )
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+
+ assert writer_span.name == "writerai.chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "chat"
+ assert not writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}")
+ == "I am"
+ )
+
+ assert writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_TOTAL_TOKENS
+ ) == writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_COMPLETION_TOKENS
+ ) + writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_PROMPT_TOKENS
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert len(logs) == 2
+
+ assert_message_in_logs(logs[0], "gen_ai.user.message", {})
+
+ choice_event = {
+ "index": 0,
+ "finish_reason": response.choices[0].finish_reason,
+ "message": {
+ "tool_calls": [
+ {
+ "id": response.choices[0].message.tool_calls[0].id,
+ "function": {
+ "name": response.choices[0].message.tool_calls[0].function.name,
+ },
+ "type": response.choices[0].message.tool_calls[0].type,
+ "index": None,
+ }
+ ],
+ },
+ }
+ assert_message_in_logs(logs[1], "gen_ai.choice", choice_event)
+
+
+@pytest.mark.vcr
+def test_writer_streaming_chat_tool_call_request_legacy(
+ instrument_legacy, writer_client, span_exporter, log_exporter
+):
+ gen = writer_client.chat.chat(
+ model="palmyra-x4",
+ messages=[
+ {"role": "user", "content": "What is the weather like in Zakopane today?"},
+ ],
+ tools=[
+ {
+ "function": {
+ "description": "Return weather in the specific location.",
+ "name": "get_weather",
+ "parameters": {
+ "properties": {
+ "location": {
+ "description": "Location to return weather at",
+ "type": "string",
+ },
+ },
+ "required": ["location"],
+ "type": "object",
+ },
+ },
+ "type": "function",
+ }
+ ],
+ stream=True,
+ max_tokens=340,
+ temperature=0.7,
+ top_p=0.9,
+ stop="I am",
+ stream_options={"include_usage": True},
+ )
+
+ for _ in gen:
+ ...
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+ assert writer_span.name == "writerai.chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}")
+ == "I am"
+ )
+
+ assert writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_TOTAL_TOKENS
+ ) == writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_COMPLETION_TOKENS
+ ) + writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_PROMPT_TOKENS
+ )
+
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_PROMPTS}.0.content")
+ == "What is the weather like in Zakopane today?"
+ )
+
+ assert (
+ writer_span.attributes[f"{SpanAttributes.LLM_COMPLETIONS}.0.finish_reason"]
+ == "tool_calls"
+ )
+ assert (
+ writer_span.attributes[f"{SpanAttributes.LLM_COMPLETIONS}.0.tool_calls.0.id"]
+ == "chatcmpl-tool-a31f1a5690b14b7daf0e78d2a2d23da2"
+ )
+ assert (
+ writer_span.attributes[f"{SpanAttributes.LLM_COMPLETIONS}.0.tool_calls.0.name"]
+ == "get_weather"
+ )
+ assert (
+ writer_span.attributes[
+ f"{SpanAttributes.LLM_COMPLETIONS}.0.tool_calls.0.arguments"
+ ]
+ == '{"location": "Zakopane"}'
+ )
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_COMPLETIONS}.0.role")
+ == "assistant"
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert (
+ len(logs) == 0
+ ), "Assert that it doesn't emit logs when use_legacy_attributes is True"
+
+
+@pytest.mark.vcr
+def test_writer_streaming_chat_tool_call_request_with_events_with_content(
+ instrument_with_content, writer_client, span_exporter, log_exporter
+):
+ gen = writer_client.chat.chat(
+ model="palmyra-x4",
+ messages=[
+ {"role": "user", "content": "What is the weather like in Zakopane today?"},
+ ],
+ tools=[
+ {
+ "function": {
+ "description": "Return weather in the specific location.",
+ "name": "get_weather",
+ "parameters": {
+ "properties": {
+ "location": {
+ "description": "Location to return weather at",
+ "type": "string",
+ },
+ },
+ "required": ["location"],
+ "type": "object",
+ },
+ },
+ "type": "function",
+ }
+ ],
+ stream=True,
+ max_tokens=340,
+ temperature=0.7,
+ top_p=0.9,
+ stop="I am",
+ stream_options={"include_usage": True},
+ )
+
+ for _ in gen:
+ ...
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+
+ assert writer_span.name == "writerai.chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}")
+ == "I am"
+ )
+
+ assert writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_TOTAL_TOKENS
+ ) == writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_COMPLETION_TOKENS
+ ) + writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_PROMPT_TOKENS
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert len(logs) == 2
+
+ assert_message_in_logs(
+ logs[0],
+ "gen_ai.user.message",
+ {"content": "What is the weather like in Zakopane today?"},
+ )
+
+ choice_event = {
+ "index": 0,
+ "finish_reason": "tool_calls",
+ "message": {
+ "content": "",
+ "tool_calls": [
+ {
+ "id": "chatcmpl-tool-a31f1a5690b14b7daf0e78d2a2d23da2",
+ "function": {
+ "arguments": '{"location": "Zakopane"}',
+ "name": "get_weather",
+ },
+ "type": "function",
+ "index": 0,
+ }
+ ],
+ },
+ }
+ assert_message_in_logs(logs[1], "gen_ai.choice", choice_event)
+
+
+@pytest.mark.vcr
+def test_writer_streaming_chat_tool_call_request_with_events_with_no_content(
+ instrument_with_no_content, writer_client, span_exporter, log_exporter
+):
+ gen = writer_client.chat.chat(
+ model="palmyra-x4",
+ messages=[
+ {"role": "user", "content": "What is the weather like in Zakopane today?"},
+ ],
+ tools=[
+ {
+ "function": {
+ "description": "Return weather in the specific location.",
+ "name": "get_weather",
+ "parameters": {
+ "properties": {
+ "location": {
+ "description": "Location to return weather at",
+ "type": "string",
+ },
+ },
+ "required": ["location"],
+ "type": "object",
+ },
+ },
+ "type": "function",
+ }
+ ],
+ stream=True,
+ max_tokens=340,
+ temperature=0.7,
+ top_p=0.9,
+ stop="I am",
+ stream_options={"include_usage": True},
+ )
+
+ for _ in gen:
+ ...
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+
+ assert writer_span.name == "writerai.chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}")
+ == "I am"
+ )
+
+ assert writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_TOTAL_TOKENS
+ ) == writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_COMPLETION_TOKENS
+ ) + writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_PROMPT_TOKENS
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert len(logs) == 2
+
+ assert_message_in_logs(logs[0], "gen_ai.user.message", {})
+
+ choice_event = {
+ "index": 0,
+ "finish_reason": "tool_calls",
+ "message": {
+ "tool_calls": [
+ {
+ "id": "chatcmpl-tool-a31f1a5690b14b7daf0e78d2a2d23da2",
+ "function": {
+ "name": "get_weather",
+ },
+ "type": "function",
+ "index": 0,
+ }
+ ],
+ },
+ }
+ assert_message_in_logs(logs[1], "gen_ai.choice", choice_event)
+
+
+@pytest.mark.vcr
+def test_writer_chat_multiple_choices_legacy(
+ instrument_legacy, writer_client, span_exporter, log_exporter
+):
+ response = writer_client.chat.chat(
+ model="palmyra-x4",
+ messages=[
+ {
+ "role": "user",
+ "content": "Tell me a joke about OpenTelemetry",
+ },
+ ],
+ stream=False,
+ temperature=0.7,
+ top_p=0.9,
+ max_tokens=340,
+ stop="I am",
+ n=2,
+ )
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+
+ assert writer_span.name == "writerai.chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "chat"
+ assert not writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}")
+ == "I am"
+ )
+
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_PROMPTS}.0.content")
+ == "Tell me a joke about OpenTelemetry"
+ )
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_COMPLETIONS}.0.content")
+ == response.choices[0].message.content
+ )
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_COMPLETIONS}.1.content")
+ == response.choices[1].message.content
+ )
+ assert writer_span.attributes.get(SpanAttributes.LLM_USAGE_PROMPT_TOKENS) == 39
+ assert writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_TOTAL_TOKENS
+ ) == writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_COMPLETION_TOKENS
+ ) + writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_PROMPT_TOKENS
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert (
+ len(logs) == 0
+ ), "Assert that it doesn't emit logs when use_legacy_attributes is True"
+
+
+@pytest.mark.vcr
+def test_writer_chat_multiple_choices_with_events_with_content(
+ instrument_with_content, writer_client, span_exporter, log_exporter
+):
+ response = writer_client.chat.chat(
+ model="palmyra-x4",
+ messages=[
+ {
+ "role": "user",
+ "content": "Tell me a joke about OpenTelemetry",
+ },
+ ],
+ stream=False,
+ temperature=0.7,
+ top_p=0.9,
+ max_tokens=340,
+ stop="I am",
+ n=2,
+ )
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+
+ assert writer_span.name == "writerai.chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "chat"
+ assert not writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}")
+ == "I am"
+ )
+
+ assert writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_TOTAL_TOKENS
+ ) == writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_COMPLETION_TOKENS
+ ) + writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_PROMPT_TOKENS
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert len(logs) == 3
+
+ assert_message_in_logs(
+ logs[0],
+ "gen_ai.user.message",
+ {"content": "Tell me a joke about OpenTelemetry"},
+ )
+
+ choice_event = {
+ "index": 0,
+ "finish_reason": "stop",
+ "message": {"content": response.choices[0].message.content, "tool_calls": []},
+ }
+ assert_message_in_logs(logs[1], "gen_ai.choice", choice_event)
+
+ choice_event = {
+ "index": 1,
+ "finish_reason": "stop",
+ "message": {"content": response.choices[1].message.content, "tool_calls": []},
+ }
+ assert_message_in_logs(logs[2], "gen_ai.choice", choice_event)
+
+
+@pytest.mark.vcr
+def test_writer_chat_multiple_choices_with_events_with_no_content(
+ instrument_with_no_content, writer_client, span_exporter, log_exporter
+):
+ writer_client.chat.chat(
+ model="palmyra-x4",
+ messages=[
+ {
+ "role": "user",
+ "content": "Tell me a joke about OpenTelemetry",
+ },
+ ],
+ stream=False,
+ temperature=0.7,
+ top_p=0.9,
+ max_tokens=340,
+ stop="I am",
+ n=2,
+ )
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+
+ assert writer_span.name == "writerai.chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "chat"
+ assert not writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}")
+ == "I am"
+ )
+
+ assert writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_TOTAL_TOKENS
+ ) == writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_COMPLETION_TOKENS
+ ) + writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_PROMPT_TOKENS
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert len(logs) == 3
+
+ assert_message_in_logs(logs[0], "gen_ai.user.message", {})
+
+ choice_event = {
+ "index": 0,
+ "finish_reason": "stop",
+ "message": {"tool_calls": []},
+ }
+ assert_message_in_logs(logs[1], "gen_ai.choice", choice_event)
+
+ choice_event = {
+ "index": 1,
+ "finish_reason": "stop",
+ "message": {"tool_calls": []},
+ }
+ assert_message_in_logs(logs[2], "gen_ai.choice", choice_event)
+
+
+@pytest.mark.vcr
+def test_writer_streaming_chat_multiple_choices_legacy(
+ instrument_legacy, writer_client, span_exporter, log_exporter
+):
+ gen = writer_client.chat.chat(
+ model="palmyra-x4",
+ messages=[
+ {
+ "role": "user",
+ "content": "Tell me a joke about OpenTelemetry",
+ },
+ ],
+ temperature=0.7,
+ top_p=0.9,
+ max_tokens=340,
+ stop="I am",
+ stream=True,
+ stream_options={"include_usage": True},
+ )
+
+ response_0 = ""
+ response_1 = ""
+ for res in gen:
+ if res.choices and res.choices[0].message.content and res.choices[0].index == 0:
+ response_0 += res.choices[0].message.content
+ if res.choices and res.choices[0].message.content and res.choices[0].index == 1:
+ response_1 += res.choices[0].message.content
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+ assert writer_span.name == "writerai.chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}")
+ == "I am"
+ )
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_PROMPTS}.0.content")
+ == "Tell me a joke about OpenTelemetry"
+ )
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_COMPLETIONS}.0.content")
+ == response_0
+ )
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_COMPLETIONS}.1.content")
+ == response_1
+ )
+ assert writer_span.attributes.get(SpanAttributes.LLM_USAGE_PROMPT_TOKENS) == 39
+ assert writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_TOTAL_TOKENS
+ ) == writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_COMPLETION_TOKENS
+ ) + writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_PROMPT_TOKENS
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert (
+ len(logs) == 0
+ ), "Assert that it doesn't emit logs when use_legacy_attributes is True"
+
+
+@pytest.mark.vcr
+def test_writer_streaming_chat_multiple_choices_with_events_with_content(
+ instrument_with_content, writer_client, span_exporter, log_exporter
+):
+ gen = writer_client.chat.chat(
+ model="palmyra-x4",
+ messages=[
+ {
+ "role": "user",
+ "content": "Tell me a joke about OpenTelemetry",
+ },
+ ],
+ temperature=0.7,
+ top_p=0.9,
+ max_tokens=340,
+ stop="I am",
+ stream=True,
+ stream_options={"include_usage": True},
+ )
+
+ response_0 = ""
+ response_1 = ""
+ for res in gen:
+ if res.choices and res.choices[0].message.content and res.choices[0].index == 0:
+ response_0 += res.choices[0].message.content
+ if res.choices and res.choices[0].message.content and res.choices[0].index == 1:
+ response_1 += res.choices[0].message.content
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+ assert writer_span.name == "writerai.chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}")
+ == "I am"
+ )
+
+ assert writer_span.attributes.get(SpanAttributes.LLM_USAGE_PROMPT_TOKENS) == 39
+ assert writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_TOTAL_TOKENS
+ ) == writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_COMPLETION_TOKENS
+ ) + writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_PROMPT_TOKENS
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert len(logs) == 3
+
+ assert_message_in_logs(
+ logs[0],
+ "gen_ai.user.message",
+ {"content": "Tell me a joke about OpenTelemetry"},
+ )
+
+ choice_0_event = {
+ "index": 0,
+ "finish_reason": "stop",
+ "message": {"content": response_0, "tool_calls": []},
+ }
+ assert_message_in_logs(logs[1], "gen_ai.choice", choice_0_event)
+
+ choice_1_event = {
+ "index": 1,
+ "finish_reason": "stop",
+ "message": {"content": response_1, "tool_calls": []},
+ }
+ assert_message_in_logs(logs[2], "gen_ai.choice", choice_1_event)
+
+
+@pytest.mark.vcr
+def test_writer_streaming_chat_multiple_choices_with_events_with_no_content(
+ instrument_with_no_content, writer_client, span_exporter, log_exporter
+):
+ gen = writer_client.chat.chat(
+ model="palmyra-x4",
+ messages=[
+ {
+ "role": "user",
+ "content": "Tell me a joke about OpenTelemetry",
+ },
+ ],
+ temperature=0.7,
+ top_p=0.9,
+ max_tokens=340,
+ stop="I am",
+ stream=True,
+ stream_options={"include_usage": True},
+ )
+
+ response_0 = ""
+ response_1 = ""
+ for res in gen:
+ if res.choices and res.choices[0].message.content and res.choices[0].index == 0:
+ response_0 += res.choices[0].message.content
+ if res.choices and res.choices[0].message.content and res.choices[0].index == 1:
+ response_1 += res.choices[0].message.content
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+ assert writer_span.name == "writerai.chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}")
+ == "I am"
+ )
+
+ assert writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_TOTAL_TOKENS
+ ) == writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_COMPLETION_TOKENS
+ ) + writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_PROMPT_TOKENS
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert len(logs) == 3
+
+ assert_message_in_logs(logs[0], "gen_ai.user.message", {})
+
+ choice_0_event = {
+ "index": 0,
+ "finish_reason": "stop",
+ "message": {"tool_calls": []},
+ }
+ assert_message_in_logs(logs[1], "gen_ai.choice", choice_0_event)
+
+ choice_1_event = {
+ "index": 1,
+ "finish_reason": "stop",
+ "message": {"tool_calls": []},
+ }
+ assert_message_in_logs(logs[2], "gen_ai.choice", choice_1_event)
+
+
+@pytest.mark.vcr
+def test_writer_chat_multiple_tool_call_requests_legacy(
+ instrument_legacy, writer_client, span_exporter, log_exporter
+):
+ response = writer_client.chat.chat(
+ model="palmyra-x4",
+ messages=[
+ {
+ "role": "user",
+ "content": "What is the weather like in "
+ "Zakopane, Warsaw, Lodz, Katowice, Krakow, Poznan and Lublin today?",
+ },
+ ],
+ tools=[
+ {
+ "function": {
+ "description": "Return weather in the specific location.",
+ "name": "get_weather",
+ "parameters": {
+ "properties": {
+ "location": {
+ "description": "Location to return weather at",
+ "type": "string",
+ },
+ },
+ "required": ["location"],
+ "type": "object",
+ },
+ },
+ "type": "function",
+ }
+ ],
+ stream=False,
+ max_tokens=340,
+ temperature=0.7,
+ top_p=0.9,
+ stop="I am",
+ )
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+ assert writer_span.name == "writerai.chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "chat"
+ assert not writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}")
+ == "I am"
+ )
+
+ assert writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_TOTAL_TOKENS
+ ) == writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_COMPLETION_TOKENS
+ ) + writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_PROMPT_TOKENS
+ )
+
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_PROMPTS}.0.content")
+ == "What is the weather like in Zakopane, Warsaw, Lodz, Katowice, Krakow, Poznan and Lublin today?"
+ )
+ assert (
+ writer_span.attributes[f"{SpanAttributes.LLM_COMPLETIONS}.0.finish_reason"]
+ == response.choices[0].finish_reason
+ )
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_COMPLETIONS}.0.role")
+ == response.choices[0].message.role
+ )
+
+ for index in range(7):
+ assert (
+ writer_span.attributes[
+ f"{SpanAttributes.LLM_COMPLETIONS}.0.tool_calls.{index}.id"
+ ]
+ == response.choices[0].message.tool_calls[index].id
+ )
+ assert (
+ writer_span.attributes[
+ f"{SpanAttributes.LLM_COMPLETIONS}.0.tool_calls.{index}.name"
+ ]
+ == response.choices[0].message.tool_calls[index].function.name
+ )
+ assert (
+ writer_span.attributes[
+ f"{SpanAttributes.LLM_COMPLETIONS}.0.tool_calls.{index}.arguments"
+ ]
+ == response.choices[0].message.tool_calls[index].function.arguments
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert (
+ len(logs) == 0
+ ), "Assert that it doesn't emit logs when use_legacy_attributes is True"
+
+
+@pytest.mark.vcr
+def test_writer_chat_multiple_tool_call_requests_with_events_with_content(
+ instrument_with_content, writer_client, span_exporter, log_exporter
+):
+ response = writer_client.chat.chat(
+ model="palmyra-x4",
+ messages=[
+ {
+ "role": "user",
+ "content": "What is the weather like in "
+ "Zakopane, Warsaw, Lodz, Katowice, Krakow, Poznan and Lublin today?",
+ },
+ ],
+ tools=[
+ {
+ "function": {
+ "description": "Return weather in the specific location.",
+ "name": "get_weather",
+ "parameters": {
+ "properties": {
+ "location": {
+ "description": "Location to return weather at",
+ "type": "string",
+ },
+ },
+ "required": ["location"],
+ "type": "object",
+ },
+ },
+ "type": "function",
+ }
+ ],
+ stream=False,
+ max_tokens=340,
+ temperature=0.7,
+ top_p=0.9,
+ stop="I am",
+ )
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+
+ assert writer_span.name == "writerai.chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "chat"
+ assert not writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}")
+ == "I am"
+ )
+
+ assert writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_TOTAL_TOKENS
+ ) == writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_COMPLETION_TOKENS
+ ) + writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_PROMPT_TOKENS
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert len(logs) == 2
+
+ assert_message_in_logs(
+ logs[0],
+ "gen_ai.user.message",
+ {
+ "content": "What is the weather like in Zakopane, Warsaw, Lodz, Katowice, Krakow, Poznan and Lublin today?"
+ },
+ )
+
+ choice_event = {
+ "index": 0,
+ "finish_reason": response.choices[0].finish_reason,
+ "message": {
+ "content": response.choices[0].message.content,
+ "tool_calls": [
+ {
+ "id": tool_call.id,
+ "function": {
+ "arguments": tool_call.function.arguments,
+ "name": tool_call.function.name,
+ },
+ "type": tool_call.type,
+ "index": tool_call.index,
+ }
+ for tool_call in response.choices[0].message.tool_calls
+ ],
+ },
+ }
+ assert_message_in_logs(logs[1], "gen_ai.choice", choice_event)
+
+
+@pytest.mark.vcr
+def test_writer_chat_multiple_tool_call_requests_with_events_with_no_content(
+ instrument_with_no_content, writer_client, span_exporter, log_exporter
+):
+ response = writer_client.chat.chat(
+ model="palmyra-x4",
+ messages=[
+ {
+ "role": "user",
+ "content": "What is the weather like in "
+ "Zakopane, Warsaw, Lodz, Katowice, Krakow, Poznan and Lublin today?",
+ },
+ ],
+ tools=[
+ {
+ "function": {
+ "description": "Return weather in the specific location.",
+ "name": "get_weather",
+ "parameters": {
+ "properties": {
+ "location": {
+ "description": "Location to return weather at",
+ "type": "string",
+ },
+ },
+ "required": ["location"],
+ "type": "object",
+ },
+ },
+ "type": "function",
+ }
+ ],
+ stream=False,
+ max_tokens=340,
+ temperature=0.7,
+ top_p=0.9,
+ stop="I am",
+ )
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+
+ assert writer_span.name == "writerai.chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "chat"
+ assert not writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}")
+ == "I am"
+ )
+
+ assert writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_TOTAL_TOKENS
+ ) == writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_COMPLETION_TOKENS
+ ) + writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_PROMPT_TOKENS
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert len(logs) == 2
+
+ assert_message_in_logs(logs[0], "gen_ai.user.message", {})
+
+ choice_event = {
+ "index": 0,
+ "finish_reason": response.choices[0].finish_reason,
+ "message": {
+ "tool_calls": [
+ {
+ "id": tool_call.id,
+ "function": {
+ "name": tool_call.function.name,
+ },
+ "type": tool_call.type,
+ "index": tool_call.index,
+ }
+ for tool_call in response.choices[0].message.tool_calls
+ ],
+ },
+ }
+ assert_message_in_logs(logs[1], "gen_ai.choice", choice_event)
+
+
+@pytest.mark.vcr
+def test_writer_streaming_chat_multiple_tool_call_requests_legacy(
+ instrument_legacy, writer_client, span_exporter, log_exporter
+):
+ gen = writer_client.chat.chat(
+ model="palmyra-x4",
+ messages=[
+ {
+ "role": "user",
+ "content": "What is the weather like in "
+ "Zakopane, Warsaw, Lodz, Katowice, Krakow, Poznan and Lublin today?",
+ },
+ ],
+ tools=[
+ {
+ "function": {
+ "description": "Return weather in the specific location.",
+ "name": "get_weather",
+ "parameters": {
+ "properties": {
+ "location": {
+ "description": "Location to return weather at",
+ "type": "string",
+ },
+ },
+ "required": ["location"],
+ "type": "object",
+ },
+ },
+ "type": "function",
+ }
+ ],
+ stream=True,
+ max_tokens=340,
+ temperature=0.7,
+ top_p=0.9,
+ stop="I am",
+ stream_options={"include_usage": True},
+ )
+
+ response = ChatCompletion(
+ id="",
+ choices=[],
+ created=0,
+ model="",
+ object="chat.completion",
+ )
+
+ for chunk in gen:
+ _update_accumulated_response(response, chunk)
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+ assert writer_span.name == "writerai.chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}")
+ == "I am"
+ )
+
+ assert writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_TOTAL_TOKENS
+ ) == writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_COMPLETION_TOKENS
+ ) + writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_PROMPT_TOKENS
+ )
+
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_PROMPTS}.0.content")
+ == "What is the weather like in Zakopane, Warsaw, Lodz, Katowice, Krakow, Poznan and Lublin today?"
+ )
+ assert (
+ writer_span.attributes[f"{SpanAttributes.LLM_COMPLETIONS}.0.finish_reason"]
+ == response.choices[0].finish_reason
+ )
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_COMPLETIONS}.0.role")
+ == response.choices[0].message.role
+ )
+
+ for index in range(7):
+ assert (
+ writer_span.attributes[
+ f"{SpanAttributes.LLM_COMPLETIONS}.0.tool_calls.{index}.id"
+ ]
+ == response.choices[0].message.tool_calls[index].id
+ )
+ assert (
+ writer_span.attributes[
+ f"{SpanAttributes.LLM_COMPLETIONS}.0.tool_calls.{index}.name"
+ ]
+ == response.choices[0].message.tool_calls[index].function.name
+ )
+ assert (
+ writer_span.attributes[
+ f"{SpanAttributes.LLM_COMPLETIONS}.0.tool_calls.{index}.arguments"
+ ]
+ == response.choices[0].message.tool_calls[index].function.arguments
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert (
+ len(logs) == 0
+ ), "Assert that it doesn't emit logs when use_legacy_attributes is True"
+
+
+@pytest.mark.vcr
+def test_writer_streaming_chat_multiple_tool_call_requests_with_events_with_content(
+ instrument_with_content, writer_client, span_exporter, log_exporter
+):
+ gen = writer_client.chat.chat(
+ model="palmyra-x4",
+ messages=[
+ {
+ "role": "user",
+ "content": "What is the weather like in "
+ "Zakopane, Warsaw, Lodz, Katowice, Krakow, Poznan and Lublin today?",
+ },
+ ],
+ tools=[
+ {
+ "function": {
+ "description": "Return weather in the specific location.",
+ "name": "get_weather",
+ "parameters": {
+ "properties": {
+ "location": {
+ "description": "Location to return weather at",
+ "type": "string",
+ },
+ },
+ "required": ["location"],
+ "type": "object",
+ },
+ },
+ "type": "function",
+ }
+ ],
+ stream=True,
+ max_tokens=340,
+ temperature=0.7,
+ top_p=0.9,
+ stop="I am",
+ stream_options={"include_usage": True},
+ )
+
+ response = ChatCompletion(
+ id="",
+ choices=[],
+ created=0,
+ model="",
+ object="chat.completion",
+ )
+
+ for chunk in gen:
+ _update_accumulated_response(response, chunk)
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+
+ assert writer_span.name == "writerai.chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}")
+ == "I am"
+ )
+
+ assert writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_TOTAL_TOKENS
+ ) == writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_COMPLETION_TOKENS
+ ) + writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_PROMPT_TOKENS
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert len(logs) == 2
+
+ assert_message_in_logs(
+ logs[0],
+ "gen_ai.user.message",
+ {
+ "content": "What is the weather like in Zakopane, Warsaw, Lodz, Katowice, Krakow, Poznan and Lublin today?"
+ },
+ )
+
+ choice_event = {
+ "index": 0,
+ "finish_reason": response.choices[0].finish_reason,
+ "message": {
+ "content": response.choices[0].message.content,
+ "tool_calls": [
+ {
+ "id": tool_call.id,
+ "function": {
+ "arguments": tool_call.function.arguments,
+ "name": tool_call.function.name,
+ },
+ "type": tool_call.type,
+ "index": tool_call.index,
+ }
+ for tool_call in response.choices[0].message.tool_calls
+ ],
+ },
+ }
+ assert_message_in_logs(logs[1], "gen_ai.choice", choice_event)
+
+
+@pytest.mark.vcr
+def test_writer_streaming_chat_multiple_tool_call_requests_with_events_with_no_content(
+ instrument_with_no_content, writer_client, span_exporter, log_exporter
+):
+ gen = writer_client.chat.chat(
+ model="palmyra-x4",
+ messages=[
+ {
+ "role": "user",
+ "content": "What is the weather like in "
+ "Zakopane, Warsaw, Lodz, Katowice, Krakow, Poznan and Lublin today?",
+ },
+ ],
+ tools=[
+ {
+ "function": {
+ "description": "Return weather in the specific location.",
+ "name": "get_weather",
+ "parameters": {
+ "properties": {
+ "location": {
+ "description": "Location to return weather at",
+ "type": "string",
+ },
+ },
+ "required": ["location"],
+ "type": "object",
+ },
+ },
+ "type": "function",
+ }
+ ],
+ stream=True,
+ max_tokens=340,
+ temperature=0.7,
+ top_p=0.9,
+ stop="I am",
+ stream_options={"include_usage": True},
+ )
+
+ response = ChatCompletion(
+ id="",
+ choices=[],
+ created=0,
+ model="",
+ object="chat.completion",
+ )
+
+ for chunk in gen:
+ _update_accumulated_response(response, chunk)
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+
+ assert writer_span.name == "writerai.chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}")
+ == "I am"
+ )
+
+ assert writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_TOTAL_TOKENS
+ ) == writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_COMPLETION_TOKENS
+ ) + writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_PROMPT_TOKENS
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert len(logs) == 2
+
+ assert_message_in_logs(logs[0], "gen_ai.user.message", {})
+
+ choice_event = {
+ "index": 0,
+ "finish_reason": response.choices[0].finish_reason,
+ "message": {
+ "tool_calls": [
+ {
+ "id": tool_call.id,
+ "function": {
+ "name": tool_call.function.name,
+ },
+ "type": tool_call.type,
+ "index": tool_call.index,
+ }
+ for tool_call in response.choices[0].message.tool_calls
+ ],
+ },
+ }
+ assert_message_in_logs(logs[1], "gen_ai.choice", choice_event)
+
+
+@pytest.mark.vcr
+@pytest.mark.asyncio
+async def test_writer_async_chat_legacy(
+ instrument_legacy, writer_client_async, span_exporter, log_exporter
+):
+ response = await writer_client_async.chat.chat(
+ model="palmyra-x4",
+ messages=[
+ {
+ "role": "user",
+ "content": "Tell me a joke about OpenTelemetry",
+ },
+ ],
+ temperature=0.7,
+ top_p=0.9,
+ max_tokens=340,
+ stop="I am",
+ )
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+ assert writer_span.name == "writerai.chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "chat"
+ assert not writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}")
+ == "I am"
+ )
+
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_PROMPTS}.0.content")
+ == "Tell me a joke about OpenTelemetry"
+ )
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_COMPLETIONS}.0.content")
+ == response.choices[0].message.content
+ )
+ assert writer_span.attributes.get(SpanAttributes.LLM_USAGE_PROMPT_TOKENS) == 40
+ assert writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_TOTAL_TOKENS
+ ) == writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_COMPLETION_TOKENS
+ ) + writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_PROMPT_TOKENS
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert (
+ len(logs) == 0
+ ), "Assert that it doesn't emit logs when use_legacy_attributes is True"
+
+
+@pytest.mark.vcr
+@pytest.mark.asyncio
+async def test_writer_async_chat_with_events_with_content(
+ instrument_with_content, writer_client_async, span_exporter, log_exporter
+):
+ response = await writer_client_async.chat.chat(
+ model="palmyra-x4",
+ messages=[
+ {
+ "role": "user",
+ "content": "Tell me a joke about OpenTelemetry",
+ },
+ ],
+ temperature=0.7,
+ top_p=0.9,
+ max_tokens=340,
+ stop="I am",
+ )
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+ assert writer_span.name == "writerai.chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "chat"
+ assert not writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}")
+ == "I am"
+ )
+
+ assert writer_span.attributes.get(SpanAttributes.LLM_USAGE_PROMPT_TOKENS) == 40
+ assert writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_TOTAL_TOKENS
+ ) == writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_COMPLETION_TOKENS
+ ) + writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_PROMPT_TOKENS
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert len(logs) == 2
+
+ assert_message_in_logs(
+ logs[0],
+ "gen_ai.user.message",
+ {"content": "Tell me a joke about OpenTelemetry"},
+ )
+
+ choice_event = {
+ "index": 0,
+ "finish_reason": "stop",
+ "message": {"content": response.choices[0].message.content, "tool_calls": []},
+ }
+ assert_message_in_logs(logs[1], "gen_ai.choice", choice_event)
+
+
+@pytest.mark.vcr
+@pytest.mark.asyncio
+async def test_writer_async_chat_with_events_with_no_content(
+ instrument_with_no_content, writer_client_async, span_exporter, log_exporter
+):
+ await writer_client_async.chat.chat(
+ model="palmyra-x4",
+ messages=[
+ {
+ "role": "user",
+ "content": "Tell me a joke about OpenTelemetry",
+ },
+ ],
+ temperature=0.7,
+ top_p=0.9,
+ max_tokens=340,
+ stop="I am",
+ )
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+ assert writer_span.name == "writerai.chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "chat"
+ assert not writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}")
+ == "I am"
+ )
+
+ assert writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_TOTAL_TOKENS
+ ) == writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_COMPLETION_TOKENS
+ ) + writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_PROMPT_TOKENS
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert len(logs) == 2
+
+ assert_message_in_logs(logs[0], "gen_ai.user.message", {})
+
+ choice_event = {
+ "index": 0,
+ "finish_reason": "stop",
+ "message": {"tool_calls": []},
+ }
+ assert_message_in_logs(logs[1], "gen_ai.choice", choice_event)
+
+
+@pytest.mark.vcr
+@pytest.mark.asyncio
+async def test_writer_async_chat_tool_calls_legacy(
+ instrument_legacy, writer_client_async, span_exporter, log_exporter
+):
+ response = await writer_client_async.chat.chat(
+ model="palmyra-x4",
+ messages=[
+ {"role": "user", "content": "What is the weather like today?"},
+ {
+ "role": "assistant",
+ "content": "",
+ "tool_calls": [
+ {
+ "type": "function",
+ "function": {
+ "name": "get_current_weather",
+ "arguments": '{"location": "San Francisco"}',
+ },
+ }
+ ],
+ },
+ {
+ "role": "tool",
+ "content": "The weather in San Francisco is 70 degrees and sunny.",
+ },
+ ],
+ tools=[
+ {
+ "function": {
+ "description": "Return weather in the specific location.",
+ "name": "get_weather",
+ "parameters": {
+ "properties": {
+ "location": {
+ "description": "Location to return weather at",
+ "type": "string",
+ },
+ },
+ "required": ["location"],
+ "type": "object",
+ },
+ },
+ "type": "function",
+ }
+ ],
+ stream=False,
+ max_tokens=340,
+ temperature=0.7,
+ top_p=0.9,
+ stop="I am",
+ )
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+ assert writer_span.name == "writerai.chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "chat"
+ assert not writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}")
+ == "I am"
+ )
+
+ assert writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_TOTAL_TOKENS
+ ) == writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_COMPLETION_TOKENS
+ ) + writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_PROMPT_TOKENS
+ )
+
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_PROMPTS}.0.content")
+ == "What is the weather like today?"
+ )
+ assert (
+ f"{SpanAttributes.LLM_REQUEST_FUNCTIONS}.1.content"
+ not in writer_span.attributes
+ )
+
+ assert (
+ writer_span.attributes[f"{SpanAttributes.LLM_PROMPTS}.1.tool_calls.0.name"]
+ == "get_current_weather"
+ )
+ assert (
+ writer_span.attributes[f"{SpanAttributes.LLM_PROMPTS}.1.tool_calls.0.arguments"]
+ == '{"location": "San Francisco"}'
+ )
+
+ assert (
+ writer_span.attributes[f"{SpanAttributes.LLM_PROMPTS}.2.content"]
+ == "The weather in San Francisco is 70 degrees and sunny."
+ )
+
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_COMPLETIONS}.0.content")
+ == response.choices[0].message.content
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert (
+ len(logs) == 0
+ ), "Assert that it doesn't emit logs when use_legacy_attributes is True"
+
+
+@pytest.mark.vcr
+@pytest.mark.asyncio
+async def test_writer_async_chat_tool_calls_with_events_with_content(
+ instrument_with_content, writer_client_async, span_exporter, log_exporter
+):
+ response = await writer_client_async.chat.chat(
+ model="palmyra-x4",
+ messages=[
+ {"role": "user", "content": "What is the weather like today?"},
+ {
+ "role": "assistant",
+ "content": "",
+ "tool_calls": [
+ {
+ "type": "function",
+ "function": {
+ "name": "get_current_weather",
+ "arguments": '{"location": "San Francisco"}',
+ },
+ }
+ ],
+ },
+ {
+ "role": "tool",
+ "content": "The weather in San Francisco is 70 degrees and sunny.",
+ },
+ ],
+ tools=[
+ {
+ "function": {
+ "description": "Return weather in the specific location.",
+ "name": "get_weather",
+ "parameters": {
+ "properties": {
+ "location": {
+ "description": "Location to return weather at",
+ "type": "string",
+ },
+ },
+ "required": ["location"],
+ "type": "object",
+ },
+ },
+ "type": "function",
+ }
+ ],
+ stream=False,
+ max_tokens=340,
+ temperature=0.7,
+ top_p=0.9,
+ stop="I am",
+ )
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+
+ assert writer_span.name == "writerai.chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "chat"
+ assert not writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}")
+ == "I am"
+ )
+
+ assert writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_TOTAL_TOKENS
+ ) == writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_COMPLETION_TOKENS
+ ) + writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_PROMPT_TOKENS
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert len(logs) == 4
+
+ assert_message_in_logs(
+ logs[0],
+ "gen_ai.user.message",
+ {"content": "What is the weather like today?"},
+ )
+
+ assistant_message = {
+ "content": "",
+ "tool_calls": [
+ {
+ "function": {
+ "arguments": '{"location": "San Francisco"}',
+ "name": "get_current_weather",
+ },
+ "type": "function",
+ }
+ ],
+ }
+ assert_message_in_logs(logs[1], "gen_ai.assistant.message", assistant_message)
+
+ assert_message_in_logs(
+ logs[2],
+ "gen_ai.tool.message",
+ {"content": "The weather in San Francisco is 70 degrees and sunny."},
+ )
+
+ choice_event = {
+ "index": 0,
+ "finish_reason": "stop",
+ "message": {"content": response.choices[0].message.content, "tool_calls": []},
+ }
+ assert_message_in_logs(logs[3], "gen_ai.choice", choice_event)
+
+
+@pytest.mark.vcr
+@pytest.mark.asyncio
+async def test_writer_async_chat_tool_calls_with_events_with_no_content(
+ instrument_with_no_content, writer_client_async, span_exporter, log_exporter
+):
+ await writer_client_async.chat.chat(
+ model="palmyra-x4",
+ messages=[
+ {"role": "user", "content": "What is the weather like today?"},
+ {
+ "role": "assistant",
+ "content": "",
+ "tool_calls": [
+ {
+ "type": "function",
+ "function": {
+ "name": "get_current_weather",
+ "arguments": '{"location": "San Francisco"}',
+ },
+ }
+ ],
+ },
+ {
+ "role": "tool",
+ "content": "The weather in San Francisco is 70 degrees and sunny.",
+ },
+ ],
+ tools=[
+ {
+ "function": {
+ "description": "Return weather in the specific location.",
+ "name": "get_weather",
+ "parameters": {
+ "properties": {
+ "location": {
+ "description": "Location to return weather at",
+ "type": "string",
+ },
+ },
+ "required": ["location"],
+ "type": "object",
+ },
+ },
+ "type": "function",
+ }
+ ],
+ stream=False,
+ max_tokens=340,
+ temperature=0.7,
+ top_p=0.9,
+ stop="I am",
+ )
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+
+ assert writer_span.name == "writerai.chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "chat"
+ assert not writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}")
+ == "I am"
+ )
+
+ assert writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_TOTAL_TOKENS
+ ) == writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_COMPLETION_TOKENS
+ ) + writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_PROMPT_TOKENS
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert len(logs) == 4
+
+ assert_message_in_logs(logs[0], "gen_ai.user.message", {})
+
+ assert_message_in_logs(
+ logs[1],
+ "gen_ai.assistant.message",
+ {
+ "tool_calls": [
+ {
+ "function": {"name": "get_current_weather"},
+ "type": "function",
+ }
+ ],
+ },
+ )
+
+ assert_message_in_logs(logs[2], "gen_ai.tool.message", {})
+
+ choice_event = {
+ "index": 0,
+ "finish_reason": "stop",
+ "message": {"tool_calls": []},
+ }
+ assert_message_in_logs(logs[3], "gen_ai.choice", choice_event)
+
+
+@pytest.mark.vcr
+@pytest.mark.asyncio
+async def test_writer_async_streaming_chat_legacy(
+ instrument_legacy, writer_client_async, span_exporter, log_exporter
+):
+ gen = await writer_client_async.chat.chat(
+ model="palmyra-x4",
+ messages=[
+ {
+ "role": "user",
+ "content": "Tell me a joke about OpenTelemetry",
+ },
+ ],
+ temperature=0.7,
+ top_p=0.9,
+ max_tokens=340,
+ stop="I am",
+ stream=True,
+ stream_options={"include_usage": True},
+ )
+
+ response = ""
+ async for res in gen:
+ if res.choices and res.choices[0].message.content:
+ response += res.choices[0].message.content
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+ assert writer_span.name == "writerai.chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}")
+ == "I am"
+ )
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_PROMPTS}.0.content")
+ == "Tell me a joke about OpenTelemetry"
+ )
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_COMPLETIONS}.0.content")
+ == response
+ )
+ assert writer_span.attributes.get(SpanAttributes.LLM_USAGE_PROMPT_TOKENS) == 39
+ assert writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_TOTAL_TOKENS
+ ) == writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_COMPLETION_TOKENS
+ ) + writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_PROMPT_TOKENS
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert (
+ len(logs) == 0
+ ), "Assert that it doesn't emit logs when use_legacy_attributes is True"
+
+
+@pytest.mark.vcr
+@pytest.mark.asyncio
+async def test_writer_async_streaming_chat_with_events_with_content(
+ instrument_with_content, writer_client_async, span_exporter, log_exporter
+):
+ gen = await writer_client_async.chat.chat(
+ model="palmyra-x4",
+ messages=[
+ {
+ "role": "user",
+ "content": "Tell me a joke about OpenTelemetry",
+ },
+ ],
+ temperature=0.7,
+ top_p=0.9,
+ max_tokens=340,
+ stop="I am",
+ stream=True,
+ stream_options={"include_usage": True},
+ )
+
+ response = ""
+ async for res in gen:
+ if res.choices and res.choices[0].message.content:
+ response += res.choices[0].message.content
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+ assert writer_span.name == "writerai.chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}")
+ == "I am"
+ )
+
+ assert writer_span.attributes.get(SpanAttributes.LLM_USAGE_PROMPT_TOKENS) == 39
+ assert writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_TOTAL_TOKENS
+ ) == writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_COMPLETION_TOKENS
+ ) + writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_PROMPT_TOKENS
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert len(logs) == 2
+
+ assert_message_in_logs(
+ logs[0],
+ "gen_ai.user.message",
+ {"content": "Tell me a joke about OpenTelemetry"},
+ )
+
+ choice_event = {
+ "index": 0,
+ "finish_reason": "stop",
+ "message": {"content": response, "tool_calls": []},
+ }
+ assert_message_in_logs(logs[1], "gen_ai.choice", choice_event)
+
+
+@pytest.mark.vcr
+@pytest.mark.asyncio
+async def test_writer_async_streaming_chat_with_events_with_no_content(
+ instrument_with_no_content, writer_client_async, span_exporter, log_exporter
+):
+ gen = await writer_client_async.chat.chat(
+ model="palmyra-x4",
+ messages=[
+ {
+ "role": "user",
+ "content": "Tell me a joke about OpenTelemetry",
+ },
+ ],
+ temperature=0.7,
+ top_p=0.9,
+ max_tokens=340,
+ stop="I am",
+ stream=True,
+ stream_options={"include_usage": True},
+ )
+
+ response = ""
+ async for res in gen:
+ if res.choices and res.choices[0].message.content:
+ response += res.choices[0].message.content
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+ assert writer_span.name == "writerai.chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}")
+ == "I am"
+ )
+
+ assert writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_TOTAL_TOKENS
+ ) == writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_COMPLETION_TOKENS
+ ) + writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_PROMPT_TOKENS
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert len(logs) == 2
+
+ assert_message_in_logs(logs[0], "gen_ai.user.message", {})
+
+ choice_event = {
+ "index": 0,
+ "finish_reason": "stop",
+ "message": {"tool_calls": []},
+ }
+ assert_message_in_logs(logs[1], "gen_ai.choice", choice_event)
+
+
+@pytest.mark.vcr
+@pytest.mark.asyncio
+async def test_writer_async_streaming_chat_tool_calls_legacy(
+ instrument_legacy, writer_client_async, span_exporter, log_exporter
+):
+ gen = await writer_client_async.chat.chat(
+ model="palmyra-x4",
+ messages=[
+ {"role": "user", "content": "What is the weather like today?"},
+ {
+ "role": "assistant",
+ "content": "",
+ "tool_calls": [
+ {
+ "type": "function",
+ "function": {
+ "name": "get_current_weather",
+ "arguments": '{"location": "San Francisco"}',
+ },
+ }
+ ],
+ },
+ {
+ "role": "tool",
+ "content": "The weather in San Francisco is 70 degrees and sunny.",
+ },
+ ],
+ tools=[
+ {
+ "function": {
+ "description": "Return weather in the specific location.",
+ "name": "get_weather",
+ "parameters": {
+ "properties": {
+ "location": {
+ "description": "Location to return weather at",
+ "type": "string",
+ },
+ },
+ "required": ["location"],
+ "type": "object",
+ },
+ },
+ "type": "function",
+ }
+ ],
+ stream=True,
+ max_tokens=340,
+ temperature=0.7,
+ top_p=0.9,
+ stop="I am",
+ stream_options={"include_usage": True},
+ )
+
+ response = ""
+ async for res in gen:
+ if res.choices and res.choices[0].message.content:
+ response += res.choices[0].message.content
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+ assert writer_span.name == "writerai.chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}")
+ == "I am"
+ )
+
+ assert writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_TOTAL_TOKENS
+ ) == writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_COMPLETION_TOKENS
+ ) + writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_PROMPT_TOKENS
+ )
+
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_PROMPTS}.0.content")
+ == "What is the weather like today?"
+ )
+ assert (
+ f"{SpanAttributes.LLM_REQUEST_FUNCTIONS}.1.content"
+ not in writer_span.attributes
+ )
+
+ assert (
+ writer_span.attributes[f"{SpanAttributes.LLM_PROMPTS}.1.tool_calls.0.name"]
+ == "get_current_weather"
+ )
+ assert (
+ writer_span.attributes[f"{SpanAttributes.LLM_PROMPTS}.1.tool_calls.0.arguments"]
+ == '{"location": "San Francisco"}'
+ )
+
+ assert (
+ writer_span.attributes[f"{SpanAttributes.LLM_PROMPTS}.2.content"]
+ == "The weather in San Francisco is 70 degrees and sunny."
+ )
+
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_COMPLETIONS}.0.content")
+ == response
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert (
+ len(logs) == 0
+ ), "Assert that it doesn't emit logs when use_legacy_attributes is True"
+
+
+@pytest.mark.vcr
+@pytest.mark.asyncio
+async def test_writer_async_streaming_chat_tool_calls_with_events_with_content(
+ instrument_with_content, writer_client_async, span_exporter, log_exporter
+):
+ gen = await writer_client_async.chat.chat(
+ model="palmyra-x4",
+ messages=[
+ {"role": "user", "content": "What is the weather like today?"},
+ {
+ "role": "assistant",
+ "content": "",
+ "tool_calls": [
+ {
+ "type": "function",
+ "function": {
+ "name": "get_current_weather",
+ "arguments": '{"location": "San Francisco"}',
+ },
+ }
+ ],
+ },
+ {
+ "role": "tool",
+ "content": "The weather in San Francisco is 70 degrees and sunny.",
+ },
+ ],
+ tools=[
+ {
+ "function": {
+ "description": "Return weather in the specific location.",
+ "name": "get_weather",
+ "parameters": {
+ "properties": {
+ "location": {
+ "description": "Location to return weather at",
+ "type": "string",
+ },
+ },
+ "required": ["location"],
+ "type": "object",
+ },
+ },
+ "type": "function",
+ }
+ ],
+ stream=True,
+ max_tokens=340,
+ temperature=0.7,
+ top_p=0.9,
+ stop="I am",
+ stream_options={"include_usage": True},
+ )
+
+ response = ""
+ async for res in gen:
+ if res.choices and res.choices[0].message.content:
+ response += res.choices[0].message.content
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+
+ assert writer_span.name == "writerai.chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}")
+ == "I am"
+ )
+
+ assert writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_TOTAL_TOKENS
+ ) == writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_COMPLETION_TOKENS
+ ) + writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_PROMPT_TOKENS
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert len(logs) == 4
+
+ assert_message_in_logs(
+ logs[0],
+ "gen_ai.user.message",
+ {"content": "What is the weather like today?"},
+ )
+
+ assistant_message = {
+ "content": "",
+ "tool_calls": [
+ {
+ "function": {
+ "arguments": '{"location": "San Francisco"}',
+ "name": "get_current_weather",
+ },
+ "type": "function",
+ }
+ ],
+ }
+ assert_message_in_logs(logs[1], "gen_ai.assistant.message", assistant_message)
+
+ assert_message_in_logs(
+ logs[2],
+ "gen_ai.tool.message",
+ {"content": "The weather in San Francisco is 70 degrees and sunny."},
+ )
+
+ choice_event = {
+ "index": 0,
+ "finish_reason": "stop",
+ "message": {"content": response, "tool_calls": []},
+ }
+ assert_message_in_logs(logs[3], "gen_ai.choice", choice_event)
+
+
+@pytest.mark.vcr
+@pytest.mark.asyncio
+async def test_writer_async_streaming_chat_tool_calls_with_events_with_no_content(
+ instrument_with_no_content, writer_client_async, span_exporter, log_exporter
+):
+ gen = await writer_client_async.chat.chat(
+ model="palmyra-x4",
+ messages=[
+ {"role": "user", "content": "What is the weather like today?"},
+ {
+ "role": "assistant",
+ "content": "",
+ "tool_calls": [
+ {
+ "type": "function",
+ "function": {
+ "name": "get_current_weather",
+ "arguments": '{"location": "San Francisco"}',
+ },
+ }
+ ],
+ },
+ {
+ "role": "tool",
+ "content": "The weather in San Francisco is 70 degrees and sunny.",
+ },
+ ],
+ tools=[
+ {
+ "function": {
+ "description": "Return weather in the specific location.",
+ "name": "get_weather",
+ "parameters": {
+ "properties": {
+ "location": {
+ "description": "Location to return weather at",
+ "type": "string",
+ },
+ },
+ "required": ["location"],
+ "type": "object",
+ },
+ },
+ "type": "function",
+ }
+ ],
+ stream=True,
+ max_tokens=340,
+ temperature=0.7,
+ top_p=0.9,
+ stop="I am",
+ stream_options={"include_usage": True},
+ )
+
+ response = ""
+ async for res in gen:
+ if res.choices and res.choices[0].message.content:
+ response += res.choices[0].message.content
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+
+ assert writer_span.name == "writerai.chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}")
+ == "I am"
+ )
+
+ assert writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_TOTAL_TOKENS
+ ) == writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_COMPLETION_TOKENS
+ ) + writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_PROMPT_TOKENS
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert len(logs) == 4
+
+ assert_message_in_logs(logs[0], "gen_ai.user.message", {})
+
+ assert_message_in_logs(
+ logs[1],
+ "gen_ai.assistant.message",
+ {
+ "tool_calls": [
+ {
+ "function": {"name": "get_current_weather"},
+ "type": "function",
+ }
+ ],
+ },
+ )
+
+ assert_message_in_logs(logs[2], "gen_ai.tool.message", {})
+
+ choice_event = {
+ "index": 0,
+ "finish_reason": "stop",
+ "message": {"tool_calls": []},
+ }
+ assert_message_in_logs(logs[3], "gen_ai.choice", choice_event)
+
+
+@pytest.mark.vcr
+@pytest.mark.asyncio
+async def test_writer_async_chat_tool_call_request_legacy(
+ instrument_legacy, writer_client_async, span_exporter, log_exporter
+):
+ response = await writer_client_async.chat.chat(
+ model="palmyra-x4",
+ messages=[
+ {"role": "user", "content": "What is the weather like in Zakopane today?"},
+ ],
+ tools=[
+ {
+ "function": {
+ "description": "Return weather in the specific location.",
+ "name": "get_weather",
+ "parameters": {
+ "properties": {
+ "location": {
+ "description": "Location to return weather at",
+ "type": "string",
+ },
+ },
+ "required": ["location"],
+ "type": "object",
+ },
+ },
+ "type": "function",
+ }
+ ],
+ stream=False,
+ max_tokens=340,
+ temperature=0.7,
+ top_p=0.9,
+ stop="I am",
+ )
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+ assert writer_span.name == "writerai.chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "chat"
+ assert not writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}")
+ == "I am"
+ )
+
+ assert writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_TOTAL_TOKENS
+ ) == writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_COMPLETION_TOKENS
+ ) + writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_PROMPT_TOKENS
+ )
+
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_PROMPTS}.0.content")
+ == "What is the weather like in Zakopane today?"
+ )
+
+ assert (
+ writer_span.attributes[f"{SpanAttributes.LLM_COMPLETIONS}.0.finish_reason"]
+ == response.choices[0].finish_reason
+ )
+ assert (
+ writer_span.attributes[f"{SpanAttributes.LLM_COMPLETIONS}.0.tool_calls.0.id"]
+ == response.choices[0].message.tool_calls[0].id
+ )
+ assert (
+ writer_span.attributes[f"{SpanAttributes.LLM_COMPLETIONS}.0.tool_calls.0.name"]
+ == response.choices[0].message.tool_calls[0].function.name
+ )
+ assert (
+ writer_span.attributes[
+ f"{SpanAttributes.LLM_COMPLETIONS}.0.tool_calls.0.arguments"
+ ]
+ == response.choices[0].message.tool_calls[0].function.arguments
+ )
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_COMPLETIONS}.0.role")
+ == response.choices[0].message.role
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert (
+ len(logs) == 0
+ ), "Assert that it doesn't emit logs when use_legacy_attributes is True"
+
+
+@pytest.mark.vcr
+@pytest.mark.asyncio
+async def test_writer_async_chat_tool_call_request_with_events_with_content(
+ instrument_with_content, writer_client_async, span_exporter, log_exporter
+):
+ response = await writer_client_async.chat.chat(
+ model="palmyra-x4",
+ messages=[
+ {"role": "user", "content": "What is the weather like in Zakopane today?"},
+ ],
+ tools=[
+ {
+ "function": {
+ "description": "Return weather in the specific location.",
+ "name": "get_weather",
+ "parameters": {
+ "properties": {
+ "location": {
+ "description": "Location to return weather at",
+ "type": "string",
+ },
+ },
+ "required": ["location"],
+ "type": "object",
+ },
+ },
+ "type": "function",
+ }
+ ],
+ stream=False,
+ max_tokens=340,
+ temperature=0.7,
+ top_p=0.9,
+ stop="I am",
+ )
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+
+ assert writer_span.name == "writerai.chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "chat"
+ assert not writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}")
+ == "I am"
+ )
+
+ assert writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_TOTAL_TOKENS
+ ) == writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_COMPLETION_TOKENS
+ ) + writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_PROMPT_TOKENS
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert len(logs) == 2
+
+ assert_message_in_logs(
+ logs[0],
+ "gen_ai.user.message",
+ {"content": "What is the weather like in Zakopane today?"},
+ )
+
+ choice_event = {
+ "index": 0,
+ "finish_reason": response.choices[0].finish_reason,
+ "message": {
+ "content": response.choices[0].message.content,
+ "tool_calls": [
+ {
+ "id": response.choices[0].message.tool_calls[0].id,
+ "function": {
+ "arguments": response.choices[0]
+ .message.tool_calls[0]
+ .function.arguments,
+ "name": response.choices[0].message.tool_calls[0].function.name,
+ },
+ "type": response.choices[0].message.tool_calls[0].type,
+ "index": None,
+ }
+ ],
+ },
+ }
+ assert_message_in_logs(logs[1], "gen_ai.choice", choice_event)
+
+
+@pytest.mark.vcr
+@pytest.mark.asyncio
+async def test_writer_async_chat_tool_call_request_with_events_with_no_content(
+ instrument_with_no_content, writer_client_async, span_exporter, log_exporter
+):
+ response = await writer_client_async.chat.chat(
+ model="palmyra-x4",
+ messages=[
+ {"role": "user", "content": "What is the weather like in Zakopane today?"},
+ ],
+ tools=[
+ {
+ "function": {
+ "description": "Return weather in the specific location.",
+ "name": "get_weather",
+ "parameters": {
+ "properties": {
+ "location": {
+ "description": "Location to return weather at",
+ "type": "string",
+ },
+ },
+ "required": ["location"],
+ "type": "object",
+ },
+ },
+ "type": "function",
+ }
+ ],
+ stream=False,
+ max_tokens=340,
+ temperature=0.7,
+ top_p=0.9,
+ stop="I am",
+ )
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+
+ assert writer_span.name == "writerai.chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "chat"
+ assert not writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}")
+ == "I am"
+ )
+
+ assert writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_TOTAL_TOKENS
+ ) == writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_COMPLETION_TOKENS
+ ) + writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_PROMPT_TOKENS
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert len(logs) == 2
+
+ assert_message_in_logs(logs[0], "gen_ai.user.message", {})
+
+ choice_event = {
+ "index": 0,
+ "finish_reason": response.choices[0].finish_reason,
+ "message": {
+ "tool_calls": [
+ {
+ "id": response.choices[0].message.tool_calls[0].id,
+ "function": {
+ "name": response.choices[0].message.tool_calls[0].function.name,
+ },
+ "type": response.choices[0].message.tool_calls[0].type,
+ "index": None,
+ }
+ ],
+ },
+ }
+ assert_message_in_logs(logs[1], "gen_ai.choice", choice_event)
+
+
+@pytest.mark.vcr
+@pytest.mark.asyncio
+async def test_writer_async_streaming_chat_tool_call_request_legacy(
+ instrument_legacy, writer_client_async, span_exporter, log_exporter
+):
+ gen = await writer_client_async.chat.chat(
+ model="palmyra-x4",
+ messages=[
+ {"role": "user", "content": "What is the weather like in Zakopane today?"},
+ ],
+ tools=[
+ {
+ "function": {
+ "description": "Return weather in the specific location.",
+ "name": "get_weather",
+ "parameters": {
+ "properties": {
+ "location": {
+ "description": "Location to return weather at",
+ "type": "string",
+ },
+ },
+ "required": ["location"],
+ "type": "object",
+ },
+ },
+ "type": "function",
+ }
+ ],
+ stream=True,
+ max_tokens=340,
+ temperature=0.7,
+ top_p=0.9,
+ stop="I am",
+ stream_options={"include_usage": True},
+ )
+
+ async for _ in gen:
+ ...
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+ assert writer_span.name == "writerai.chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}")
+ == "I am"
+ )
+
+ assert writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_TOTAL_TOKENS
+ ) == writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_COMPLETION_TOKENS
+ ) + writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_PROMPT_TOKENS
+ )
+
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_PROMPTS}.0.content")
+ == "What is the weather like in Zakopane today?"
+ )
+
+ assert (
+ writer_span.attributes[f"{SpanAttributes.LLM_COMPLETIONS}.0.finish_reason"]
+ == "tool_calls"
+ )
+ assert (
+ writer_span.attributes[f"{SpanAttributes.LLM_COMPLETIONS}.0.tool_calls.0.id"]
+ == "chatcmpl-tool-a31f1a5690b14b7daf0e78d2a2d23da2"
+ )
+ assert (
+ writer_span.attributes[f"{SpanAttributes.LLM_COMPLETIONS}.0.tool_calls.0.name"]
+ == "get_weather"
+ )
+ assert (
+ writer_span.attributes[
+ f"{SpanAttributes.LLM_COMPLETIONS}.0.tool_calls.0.arguments"
+ ]
+ == '{"location": "Zakopane"}'
+ )
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_COMPLETIONS}.0.role")
+ == "assistant"
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert (
+ len(logs) == 0
+ ), "Assert that it doesn't emit logs when use_legacy_attributes is True"
+
+
+@pytest.mark.vcr
+@pytest.mark.asyncio
+async def test_writer_async_streaming_chat_tool_call_request_with_events_with_content(
+ instrument_with_content, writer_client_async, span_exporter, log_exporter
+):
+ gen = await writer_client_async.chat.chat(
+ model="palmyra-x4",
+ messages=[
+ {"role": "user", "content": "What is the weather like in Zakopane today?"},
+ ],
+ tools=[
+ {
+ "function": {
+ "description": "Return weather in the specific location.",
+ "name": "get_weather",
+ "parameters": {
+ "properties": {
+ "location": {
+ "description": "Location to return weather at",
+ "type": "string",
+ },
+ },
+ "required": ["location"],
+ "type": "object",
+ },
+ },
+ "type": "function",
+ }
+ ],
+ stream=True,
+ max_tokens=340,
+ temperature=0.7,
+ top_p=0.9,
+ stop="I am",
+ stream_options={"include_usage": True},
+ )
+
+ async for _ in gen:
+ ...
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+
+ assert writer_span.name == "writerai.chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}")
+ == "I am"
+ )
+
+ assert writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_TOTAL_TOKENS
+ ) == writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_COMPLETION_TOKENS
+ ) + writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_PROMPT_TOKENS
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert len(logs) == 2
+
+ assert_message_in_logs(
+ logs[0],
+ "gen_ai.user.message",
+ {"content": "What is the weather like in Zakopane today?"},
+ )
+
+ choice_event = {
+ "index": 0,
+ "finish_reason": "tool_calls",
+ "message": {
+ "content": "",
+ "tool_calls": [
+ {
+ "id": "chatcmpl-tool-a31f1a5690b14b7daf0e78d2a2d23da2",
+ "function": {
+ "arguments": '{"location": "Zakopane"}',
+ "name": "get_weather",
+ },
+ "type": "function",
+ "index": 0,
+ }
+ ],
+ },
+ }
+ assert_message_in_logs(logs[1], "gen_ai.choice", choice_event)
+
+
+@pytest.mark.vcr
+@pytest.mark.asyncio
+async def test_writer_async_streaming_chat_tool_call_request_with_events_with_no_content(
+ instrument_with_no_content, writer_client_async, span_exporter, log_exporter
+):
+ gen = await writer_client_async.chat.chat(
+ model="palmyra-x4",
+ messages=[
+ {"role": "user", "content": "What is the weather like in Zakopane today?"},
+ ],
+ tools=[
+ {
+ "function": {
+ "description": "Return weather in the specific location.",
+ "name": "get_weather",
+ "parameters": {
+ "properties": {
+ "location": {
+ "description": "Location to return weather at",
+ "type": "string",
+ },
+ },
+ "required": ["location"],
+ "type": "object",
+ },
+ },
+ "type": "function",
+ }
+ ],
+ stream=True,
+ max_tokens=340,
+ temperature=0.7,
+ top_p=0.9,
+ stop="I am",
+ stream_options={"include_usage": True},
+ )
+
+ async for _ in gen:
+ ...
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+
+ assert writer_span.name == "writerai.chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}")
+ == "I am"
+ )
+
+ assert writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_TOTAL_TOKENS
+ ) == writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_COMPLETION_TOKENS
+ ) + writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_PROMPT_TOKENS
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert len(logs) == 2
+
+ assert_message_in_logs(logs[0], "gen_ai.user.message", {})
+
+ choice_event = {
+ "index": 0,
+ "finish_reason": "tool_calls",
+ "message": {
+ "tool_calls": [
+ {
+ "id": "chatcmpl-tool-a31f1a5690b14b7daf0e78d2a2d23da2",
+ "function": {
+ "name": "get_weather",
+ },
+ "type": "function",
+ "index": 0,
+ }
+ ],
+ },
+ }
+ assert_message_in_logs(logs[1], "gen_ai.choice", choice_event)
+
+
+@pytest.mark.vcr
+@pytest.mark.asyncio
+async def test_writer_async_chat_multiple_choices_legacy(
+ instrument_legacy, writer_client_async, span_exporter, log_exporter
+):
+ response = await writer_client_async.chat.chat(
+ model="palmyra-x4",
+ messages=[
+ {
+ "role": "user",
+ "content": "Tell me a joke about OpenTelemetry",
+ },
+ ],
+ stream=False,
+ temperature=0.7,
+ top_p=0.9,
+ max_tokens=340,
+ stop="I am",
+ n=2,
+ )
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+
+ assert writer_span.name == "writerai.chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "chat"
+ assert not writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}")
+ == "I am"
+ )
+
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_PROMPTS}.0.content")
+ == "Tell me a joke about OpenTelemetry"
+ )
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_COMPLETIONS}.0.content")
+ == response.choices[0].message.content
+ )
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_COMPLETIONS}.1.content")
+ == response.choices[1].message.content
+ )
+ assert writer_span.attributes.get(SpanAttributes.LLM_USAGE_PROMPT_TOKENS) == 39
+ assert writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_TOTAL_TOKENS
+ ) == writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_COMPLETION_TOKENS
+ ) + writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_PROMPT_TOKENS
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert (
+ len(logs) == 0
+ ), "Assert that it doesn't emit logs when use_legacy_attributes is True"
+
+
+@pytest.mark.vcr
+@pytest.mark.asyncio
+async def test_writer_async_chat_multiple_choices_with_events_with_content(
+ instrument_with_content, writer_client_async, span_exporter, log_exporter
+):
+ response = await writer_client_async.chat.chat(
+ model="palmyra-x4",
+ messages=[
+ {
+ "role": "user",
+ "content": "Tell me a joke about OpenTelemetry",
+ },
+ ],
+ stream=False,
+ temperature=0.7,
+ top_p=0.9,
+ max_tokens=340,
+ stop="I am",
+ n=2,
+ )
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+
+ assert writer_span.name == "writerai.chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "chat"
+ assert not writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}")
+ == "I am"
+ )
+
+ assert writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_TOTAL_TOKENS
+ ) == writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_COMPLETION_TOKENS
+ ) + writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_PROMPT_TOKENS
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert len(logs) == 3
+
+ assert_message_in_logs(
+ logs[0],
+ "gen_ai.user.message",
+ {"content": "Tell me a joke about OpenTelemetry"},
+ )
+
+ choice_event = {
+ "index": 0,
+ "finish_reason": "stop",
+ "message": {"content": response.choices[0].message.content, "tool_calls": []},
+ }
+ assert_message_in_logs(logs[1], "gen_ai.choice", choice_event)
+
+ choice_event = {
+ "index": 1,
+ "finish_reason": "stop",
+ "message": {"content": response.choices[1].message.content, "tool_calls": []},
+ }
+ assert_message_in_logs(logs[2], "gen_ai.choice", choice_event)
+
+
+@pytest.mark.vcr
+@pytest.mark.asyncio
+async def test_writer_async_chat_multiple_choices_with_events_with_no_content(
+ instrument_with_no_content, writer_client_async, span_exporter, log_exporter
+):
+ await writer_client_async.chat.chat(
+ model="palmyra-x4",
+ messages=[
+ {
+ "role": "user",
+ "content": "Tell me a joke about OpenTelemetry",
+ },
+ ],
+ stream=False,
+ temperature=0.7,
+ top_p=0.9,
+ max_tokens=340,
+ stop="I am",
+ n=2,
+ )
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+
+ assert writer_span.name == "writerai.chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "chat"
+ assert not writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}")
+ == "I am"
+ )
+
+ assert writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_TOTAL_TOKENS
+ ) == writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_COMPLETION_TOKENS
+ ) + writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_PROMPT_TOKENS
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert len(logs) == 3
+
+ assert_message_in_logs(logs[0], "gen_ai.user.message", {})
+
+ choice_event = {
+ "index": 0,
+ "finish_reason": "stop",
+ "message": {"tool_calls": []},
+ }
+ assert_message_in_logs(logs[1], "gen_ai.choice", choice_event)
+
+ choice_event = {
+ "index": 1,
+ "finish_reason": "stop",
+ "message": {"tool_calls": []},
+ }
+ assert_message_in_logs(logs[2], "gen_ai.choice", choice_event)
+
+
+@pytest.mark.vcr
+@pytest.mark.asyncio
+async def test_writer_async_streaming_chat_multiple_choices_legacy(
+ instrument_legacy, writer_client_async, span_exporter, log_exporter
+):
+ gen = await writer_client_async.chat.chat(
+ model="palmyra-x4",
+ messages=[
+ {
+ "role": "user",
+ "content": "Tell me a joke about OpenTelemetry",
+ },
+ ],
+ temperature=0.7,
+ top_p=0.9,
+ max_tokens=340,
+ stop="I am",
+ stream=True,
+ stream_options={"include_usage": True},
+ )
+
+ response_0 = ""
+ response_1 = ""
+ async for res in gen:
+ if res.choices and res.choices[0].message.content and res.choices[0].index == 0:
+ response_0 += res.choices[0].message.content
+ if res.choices and res.choices[0].message.content and res.choices[0].index == 1:
+ response_1 += res.choices[0].message.content
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+ assert writer_span.name == "writerai.chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}")
+ == "I am"
+ )
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_PROMPTS}.0.content")
+ == "Tell me a joke about OpenTelemetry"
+ )
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_COMPLETIONS}.0.content")
+ == response_0
+ )
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_COMPLETIONS}.1.content")
+ == response_1
+ )
+ assert writer_span.attributes.get(SpanAttributes.LLM_USAGE_PROMPT_TOKENS) == 39
+ assert writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_TOTAL_TOKENS
+ ) == writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_COMPLETION_TOKENS
+ ) + writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_PROMPT_TOKENS
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert (
+ len(logs) == 0
+ ), "Assert that it doesn't emit logs when use_legacy_attributes is True"
+
+
+@pytest.mark.vcr
+@pytest.mark.asyncio
+async def test_writer_async_streaming_chat_multiple_choices_with_events_with_content(
+ instrument_with_content, writer_client_async, span_exporter, log_exporter
+):
+ gen = await writer_client_async.chat.chat(
+ model="palmyra-x4",
+ messages=[
+ {
+ "role": "user",
+ "content": "Tell me a joke about OpenTelemetry",
+ },
+ ],
+ temperature=0.7,
+ top_p=0.9,
+ max_tokens=340,
+ stop="I am",
+ stream=True,
+ stream_options={"include_usage": True},
+ )
+
+ response_0 = ""
+ response_1 = ""
+ async for res in gen:
+ if res.choices and res.choices[0].message.content and res.choices[0].index == 0:
+ response_0 += res.choices[0].message.content
+ if res.choices and res.choices[0].message.content and res.choices[0].index == 1:
+ response_1 += res.choices[0].message.content
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+ assert writer_span.name == "writerai.chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}")
+ == "I am"
+ )
+
+ assert writer_span.attributes.get(SpanAttributes.LLM_USAGE_PROMPT_TOKENS) == 39
+ assert writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_TOTAL_TOKENS
+ ) == writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_COMPLETION_TOKENS
+ ) + writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_PROMPT_TOKENS
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert len(logs) == 3
+
+ assert_message_in_logs(
+ logs[0],
+ "gen_ai.user.message",
+ {"content": "Tell me a joke about OpenTelemetry"},
+ )
+
+ choice_0_event = {
+ "index": 0,
+ "finish_reason": "stop",
+ "message": {"content": response_0, "tool_calls": []},
+ }
+ assert_message_in_logs(logs[1], "gen_ai.choice", choice_0_event)
+
+ choice_1_event = {
+ "index": 1,
+ "finish_reason": "stop",
+ "message": {"content": response_1, "tool_calls": []},
+ }
+ assert_message_in_logs(logs[2], "gen_ai.choice", choice_1_event)
+
+
+@pytest.mark.vcr
+@pytest.mark.asyncio
+async def test_writer_async_streaming_chat_multiple_choices_with_events_with_no_content(
+ instrument_with_no_content, writer_client_async, span_exporter, log_exporter
+):
+ gen = await writer_client_async.chat.chat(
+ model="palmyra-x4",
+ messages=[
+ {
+ "role": "user",
+ "content": "Tell me a joke about OpenTelemetry",
+ },
+ ],
+ temperature=0.7,
+ top_p=0.9,
+ max_tokens=340,
+ stop="I am",
+ stream=True,
+ stream_options={"include_usage": True},
+ )
+
+ response_0 = ""
+ response_1 = ""
+ async for res in gen:
+ if res.choices and res.choices[0].message.content and res.choices[0].index == 0:
+ response_0 += res.choices[0].message.content
+ if res.choices and res.choices[0].message.content and res.choices[0].index == 1:
+ response_1 += res.choices[0].message.content
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+ assert writer_span.name == "writerai.chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}")
+ == "I am"
+ )
+
+ assert writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_TOTAL_TOKENS
+ ) == writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_COMPLETION_TOKENS
+ ) + writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_PROMPT_TOKENS
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert len(logs) == 3
+
+ assert_message_in_logs(logs[0], "gen_ai.user.message", {})
+
+ choice_0_event = {
+ "index": 0,
+ "finish_reason": "stop",
+ "message": {"tool_calls": []},
+ }
+ assert_message_in_logs(logs[1], "gen_ai.choice", choice_0_event)
+
+ choice_1_event = {
+ "index": 1,
+ "finish_reason": "stop",
+ "message": {"tool_calls": []},
+ }
+ assert_message_in_logs(logs[2], "gen_ai.choice", choice_1_event)
+
+
+@pytest.mark.vcr
+@pytest.mark.asyncio
+async def test_writer_async_chat_multiple_tool_call_requests_legacy(
+ instrument_legacy, writer_client_async, span_exporter, log_exporter
+):
+ response = await writer_client_async.chat.chat(
+ model="palmyra-x4",
+ messages=[
+ {
+ "role": "user",
+ "content": "What is the weather like in "
+ "Zakopane, Warsaw, Lodz, Katowice, Krakow, Poznan and Lublin today?",
+ }
+ ],
+ tools=[
+ {
+ "function": {
+ "description": "Return weather in the specific location.",
+ "name": "get_weather",
+ "parameters": {
+ "properties": {
+ "location": {
+ "description": "Location to return weather at",
+ "type": "string",
+ },
+ },
+ "required": ["location"],
+ "type": "object",
+ },
+ },
+ "type": "function",
+ }
+ ],
+ stream=False,
+ max_tokens=340,
+ temperature=0.7,
+ top_p=0.9,
+ stop="I am",
+ )
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+ assert writer_span.name == "writerai.chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "chat"
+ assert not writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}")
+ == "I am"
+ )
+
+ assert writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_TOTAL_TOKENS
+ ) == writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_COMPLETION_TOKENS
+ ) + writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_PROMPT_TOKENS
+ )
+
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_PROMPTS}.0.content")
+ == "What is the weather like in Zakopane, Warsaw, Lodz, Katowice, Krakow, Poznan and Lublin today?"
+ )
+ assert (
+ writer_span.attributes[f"{SpanAttributes.LLM_COMPLETIONS}.0.finish_reason"]
+ == response.choices[0].finish_reason
+ )
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_COMPLETIONS}.0.role")
+ == response.choices[0].message.role
+ )
+
+ for index in range(7):
+ assert (
+ writer_span.attributes[
+ f"{SpanAttributes.LLM_COMPLETIONS}.0.tool_calls.{index}.id"
+ ]
+ == response.choices[0].message.tool_calls[index].id
+ )
+ assert (
+ writer_span.attributes[
+ f"{SpanAttributes.LLM_COMPLETIONS}.0.tool_calls.{index}.name"
+ ]
+ == response.choices[0].message.tool_calls[index].function.name
+ )
+ assert (
+ writer_span.attributes[
+ f"{SpanAttributes.LLM_COMPLETIONS}.0.tool_calls.{index}.arguments"
+ ]
+ == response.choices[0].message.tool_calls[index].function.arguments
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert (
+ len(logs) == 0
+ ), "Assert that it doesn't emit logs when use_legacy_attributes is True"
+
+
+@pytest.mark.vcr
+@pytest.mark.asyncio
+async def test_writer_async_chat_multiple_tool_call_requests_with_events_with_content(
+ instrument_with_content, writer_client_async, span_exporter, log_exporter
+):
+ response = await writer_client_async.chat.chat(
+ model="palmyra-x4",
+ messages=[
+ {
+ "role": "user",
+ "content": "What is the weather like in "
+ "Zakopane, Warsaw, Lodz, Katowice, Krakow, Poznan and Lublin today?",
+ }
+ ],
+ tools=[
+ {
+ "function": {
+ "description": "Return weather in the specific location.",
+ "name": "get_weather",
+ "parameters": {
+ "properties": {
+ "location": {
+ "description": "Location to return weather at",
+ "type": "string",
+ },
+ },
+ "required": ["location"],
+ "type": "object",
+ },
+ },
+ "type": "function",
+ }
+ ],
+ stream=False,
+ max_tokens=340,
+ temperature=0.7,
+ top_p=0.9,
+ stop="I am",
+ )
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+
+ assert writer_span.name == "writerai.chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "chat"
+ assert not writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}")
+ == "I am"
+ )
+
+ assert writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_TOTAL_TOKENS
+ ) == writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_COMPLETION_TOKENS
+ ) + writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_PROMPT_TOKENS
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert len(logs) == 2
+
+ assert_message_in_logs(
+ logs[0],
+ "gen_ai.user.message",
+ {
+ "content": "What is the weather like in Zakopane, Warsaw, Lodz, Katowice, Krakow, Poznan and Lublin today?"
+ },
+ )
+
+ choice_event = {
+ "index": 0,
+ "finish_reason": response.choices[0].finish_reason,
+ "message": {
+ "content": response.choices[0].message.content,
+ "tool_calls": [
+ {
+ "id": tool_call.id,
+ "function": {
+ "arguments": tool_call.function.arguments,
+ "name": tool_call.function.name,
+ },
+ "type": tool_call.type,
+ "index": tool_call.index,
+ }
+ for tool_call in response.choices[0].message.tool_calls
+ ],
+ },
+ }
+ assert_message_in_logs(logs[1], "gen_ai.choice", choice_event)
+
+
+@pytest.mark.vcr
+@pytest.mark.asyncio
+async def test_writer_async_chat_multiple_tool_call_requests_with_events_with_no_content(
+ instrument_with_no_content, writer_client_async, span_exporter, log_exporter
+):
+ response = await writer_client_async.chat.chat(
+ model="palmyra-x4",
+ messages=[
+ {
+ "role": "user",
+ "content": "What is the weather like in "
+ "Zakopane, Warsaw, Lodz, Katowice, Krakow, Poznan and Lublin today?",
+ }
+ ],
+ tools=[
+ {
+ "function": {
+ "description": "Return weather in the specific location.",
+ "name": "get_weather",
+ "parameters": {
+ "properties": {
+ "location": {
+ "description": "Location to return weather at",
+ "type": "string",
+ },
+ },
+ "required": ["location"],
+ "type": "object",
+ },
+ },
+ "type": "function",
+ }
+ ],
+ stream=False,
+ max_tokens=340,
+ temperature=0.7,
+ top_p=0.9,
+ stop="I am",
+ )
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+
+ assert writer_span.name == "writerai.chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "chat"
+ assert not writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}")
+ == "I am"
+ )
+
+ assert writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_TOTAL_TOKENS
+ ) == writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_COMPLETION_TOKENS
+ ) + writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_PROMPT_TOKENS
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert len(logs) == 2
+
+ assert_message_in_logs(logs[0], "gen_ai.user.message", {})
+
+ choice_event = {
+ "index": 0,
+ "finish_reason": response.choices[0].finish_reason,
+ "message": {
+ "tool_calls": [
+ {
+ "id": tool_call.id,
+ "function": {
+ "name": tool_call.function.name,
+ },
+ "type": tool_call.type,
+ "index": tool_call.index,
+ }
+ for tool_call in response.choices[0].message.tool_calls
+ ],
+ },
+ }
+ assert_message_in_logs(logs[1], "gen_ai.choice", choice_event)
+
+
+@pytest.mark.vcr
+@pytest.mark.asyncio
+async def test_writer_async_streaming_chat_multiple_tool_call_requests_legacy(
+ instrument_legacy, writer_client_async, span_exporter, log_exporter
+):
+ gen = await writer_client_async.chat.chat(
+ model="palmyra-x4",
+ messages=[
+ {
+ "role": "user",
+ "content": "What is the weather like in "
+ "Zakopane, Warsaw, Lodz, Katowice, Krakow, Poznan and Lublin today?",
+ }
+ ],
+ tools=[
+ {
+ "function": {
+ "description": "Return weather in the specific location.",
+ "name": "get_weather",
+ "parameters": {
+ "properties": {
+ "location": {
+ "description": "Location to return weather at",
+ "type": "string",
+ },
+ },
+ "required": ["location"],
+ "type": "object",
+ },
+ },
+ "type": "function",
+ }
+ ],
+ stream=True,
+ max_tokens=340,
+ temperature=0.7,
+ top_p=0.9,
+ stop="I am",
+ stream_options={"include_usage": True},
+ )
+
+ response = ChatCompletion(
+ id="",
+ choices=[],
+ created=0,
+ model="",
+ object="chat.completion",
+ )
+
+ async for chunk in gen:
+ _update_accumulated_response(response, chunk)
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+ assert writer_span.name == "writerai.chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}")
+ == "I am"
+ )
+
+ assert writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_TOTAL_TOKENS
+ ) == writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_COMPLETION_TOKENS
+ ) + writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_PROMPT_TOKENS
+ )
+
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_PROMPTS}.0.content")
+ == "What is the weather like in Zakopane, Warsaw, Lodz, Katowice, Krakow, Poznan and Lublin today?"
+ )
+ assert (
+ writer_span.attributes[f"{SpanAttributes.LLM_COMPLETIONS}.0.finish_reason"]
+ == response.choices[0].finish_reason
+ )
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_COMPLETIONS}.0.role")
+ == response.choices[0].message.role
+ )
+
+ for index in range(7):
+ assert (
+ writer_span.attributes[
+ f"{SpanAttributes.LLM_COMPLETIONS}.0.tool_calls.{index}.id"
+ ]
+ == response.choices[0].message.tool_calls[index].id
+ )
+ assert (
+ writer_span.attributes[
+ f"{SpanAttributes.LLM_COMPLETIONS}.0.tool_calls.{index}.name"
+ ]
+ == response.choices[0].message.tool_calls[index].function.name
+ )
+ assert (
+ writer_span.attributes[
+ f"{SpanAttributes.LLM_COMPLETIONS}.0.tool_calls.{index}.arguments"
+ ]
+ == response.choices[0].message.tool_calls[index].function.arguments
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert (
+ len(logs) == 0
+ ), "Assert that it doesn't emit logs when use_legacy_attributes is True"
+
+
+@pytest.mark.vcr
+@pytest.mark.asyncio
+async def test_writer_async_streaming_chat_multiple_tool_call_requests_with_events_with_content(
+ instrument_with_content, writer_client_async, span_exporter, log_exporter
+):
+ gen = await writer_client_async.chat.chat(
+ model="palmyra-x4",
+ messages=[
+ {
+ "role": "user",
+ "content": "What is the weather like in "
+ "Zakopane, Warsaw, Lodz, Katowice, Krakow, Poznan and Lublin today?",
+ }
+ ],
+ tools=[
+ {
+ "function": {
+ "description": "Return weather in the specific location.",
+ "name": "get_weather",
+ "parameters": {
+ "properties": {
+ "location": {
+ "description": "Location to return weather at",
+ "type": "string",
+ },
+ },
+ "required": ["location"],
+ "type": "object",
+ },
+ },
+ "type": "function",
+ }
+ ],
+ stream=True,
+ max_tokens=340,
+ temperature=0.7,
+ top_p=0.9,
+ stop="I am",
+ stream_options={"include_usage": True},
+ )
+
+ response = ChatCompletion(
+ id="",
+ choices=[],
+ created=0,
+ model="",
+ object="chat.completion",
+ )
+
+ async for chunk in gen:
+ _update_accumulated_response(response, chunk)
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+
+ assert writer_span.name == "writerai.chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}")
+ == "I am"
+ )
+
+ assert writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_TOTAL_TOKENS
+ ) == writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_COMPLETION_TOKENS
+ ) + writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_PROMPT_TOKENS
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert len(logs) == 2
+
+ assert_message_in_logs(
+ logs[0],
+ "gen_ai.user.message",
+ {
+ "content": "What is the weather like in Zakopane, Warsaw, Lodz, Katowice, Krakow, Poznan and Lublin today?"
+ },
+ )
+
+ choice_event = {
+ "index": 0,
+ "finish_reason": response.choices[0].finish_reason,
+ "message": {
+ "content": response.choices[0].message.content,
+ "tool_calls": [
+ {
+ "id": tool_call.id,
+ "function": {
+ "arguments": tool_call.function.arguments,
+ "name": tool_call.function.name,
+ },
+ "type": tool_call.type,
+ "index": tool_call.index,
+ }
+ for tool_call in response.choices[0].message.tool_calls
+ ],
+ },
+ }
+ assert_message_in_logs(logs[1], "gen_ai.choice", choice_event)
+
+
+@pytest.mark.vcr
+@pytest.mark.asyncio
+async def test_writer_async_streaming_chat_multiple_tool_call_requests_with_events_with_no_content(
+ instrument_with_no_content, writer_client_async, span_exporter, log_exporter
+):
+ gen = await writer_client_async.chat.chat(
+ model="palmyra-x4",
+ messages=[
+ {
+ "role": "user",
+ "content": "What is the weather like in "
+ "Zakopane, Warsaw, Lodz, Katowice, Krakow, Poznan and Lublin today?",
+ }
+ ],
+ tools=[
+ {
+ "function": {
+ "description": "Return weather in the specific location.",
+ "name": "get_weather",
+ "parameters": {
+ "properties": {
+ "location": {
+ "description": "Location to return weather at",
+ "type": "string",
+ },
+ },
+ "required": ["location"],
+ "type": "object",
+ },
+ },
+ "type": "function",
+ }
+ ],
+ stream=True,
+ max_tokens=340,
+ temperature=0.7,
+ top_p=0.9,
+ stop="I am",
+ stream_options={"include_usage": True},
+ )
+
+ response = ChatCompletion(
+ id="",
+ choices=[],
+ created=0,
+ model="",
+ object="chat.completion",
+ )
+
+ async for chunk in gen:
+ _update_accumulated_response(response, chunk)
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+
+ assert writer_span.name == "writerai.chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "chat"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}")
+ == "I am"
+ )
+
+ assert writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_TOTAL_TOKENS
+ ) == writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_COMPLETION_TOKENS
+ ) + writer_span.attributes.get(
+ SpanAttributes.LLM_USAGE_PROMPT_TOKENS
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert len(logs) == 2
+
+ assert_message_in_logs(logs[0], "gen_ai.user.message", {})
+
+ choice_event = {
+ "index": 0,
+ "finish_reason": response.choices[0].finish_reason,
+ "message": {
+ "tool_calls": [
+ {
+ "id": tool_call.id,
+ "function": {
+ "name": tool_call.function.name,
+ },
+ "type": tool_call.type,
+ "index": tool_call.index,
+ }
+ for tool_call in response.choices[0].message.tool_calls
+ ],
+ },
+ }
+ assert_message_in_logs(logs[1], "gen_ai.choice", choice_event)
diff --git a/packages/opentelemetry-instrumentation-writer/tests/test_completions.py b/packages/opentelemetry-instrumentation-writer/tests/test_completions.py
new file mode 100644
index 0000000000..20bfe443e2
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/test_completions.py
@@ -0,0 +1,665 @@
+import pytest
+from opentelemetry.sdk._logs import LogData
+from opentelemetry.semconv._incubating.attributes import \
+ event_attributes as EventAttributes
+from opentelemetry.semconv._incubating.attributes import \
+ gen_ai_attributes as GenAIAttributes
+from opentelemetry.semconv_ai import SpanAttributes
+
+
+@pytest.mark.vcr
+def test_writer_completions_legacy(
+ instrument_legacy, writer_client, span_exporter, log_exporter
+):
+ response = writer_client.completions.create(
+ model="palmyra-x4",
+ prompt="Tell me a joke about OpenTelemetry",
+ max_tokens=150,
+ temperature=0.7,
+ top_p=0.9,
+ stop=["."],
+ stream=False,
+ )
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+
+ assert writer_span.name == "writerai.completions"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "completion"
+ )
+ assert not writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 150
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}") == (
+ ".",
+ )
+
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_PROMPTS}.0.content")
+ == "Tell me a joke about OpenTelemetry"
+ )
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_COMPLETIONS}.0.content")
+ == response.choices[0].text
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert (
+ len(logs) == 0
+ ), "Assert that it doesn't emit logs when use_legacy_attributes is True"
+
+
+@pytest.mark.vcr
+def test_writer_completions_with_events_with_content(
+ instrument_with_content, writer_client, span_exporter, log_exporter
+):
+ response = writer_client.completions.create(
+ model="palmyra-x4",
+ prompt="Tell me a joke about OpenTelemetry",
+ max_tokens=150,
+ temperature=0.7,
+ top_p=0.9,
+ stop=["."],
+ stream=False,
+ )
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+ assert writer_span.name == "writerai.completions"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "completion"
+ )
+ assert not writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 150
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}") == (
+ ".",
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert len(logs) == 2
+
+ user_message_log = logs[0]
+ assert_message_in_logs(
+ user_message_log,
+ "gen_ai.user.message",
+ {"content": "Tell me a joke about OpenTelemetry"},
+ )
+
+ choice_event = {
+ "index": 0,
+ "finish_reason": "unknown",
+ "message": {"content": response.choices[0].text},
+ }
+ assert_message_in_logs(logs[1], "gen_ai.choice", choice_event)
+
+
+@pytest.mark.vcr
+def test_writer_completions_with_events_with_no_content(
+ instrument_with_no_content, writer_client, span_exporter, log_exporter
+):
+ writer_client.completions.create(
+ model="palmyra-x4",
+ prompt="Tell me a joke about OpenTelemetry",
+ max_tokens=150,
+ temperature=0.7,
+ top_p=0.9,
+ stop=["."],
+ stream=False,
+ )
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+ assert writer_span.name == "writerai.completions"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "completion"
+ )
+ assert not writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 150
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}") == (
+ ".",
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert len(logs) == 2
+
+ user_message_log = logs[0]
+ assert_message_in_logs(user_message_log, "gen_ai.user.message", {})
+
+ choice_event = {
+ "index": 0,
+ "finish_reason": "unknown",
+ "message": {},
+ }
+ assert_message_in_logs(logs[1], "gen_ai.choice", choice_event)
+
+
+@pytest.mark.vcr
+def test_writer_streaming_completions_legacy(
+ instrument_legacy, writer_client, span_exporter, log_exporter
+):
+ gen = writer_client.completions.create(
+ model="palmyra-x4",
+ prompt="Tell me a joke about OpenTelemetry",
+ temperature=0.7,
+ top_p=0.9,
+ max_tokens=340,
+ stop=["I am"],
+ stream=True,
+ )
+
+ response = ""
+ for res in gen:
+ if res.value:
+ response += res.value
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+ assert writer_span.name == "writerai.completions"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "completion"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}") == (
+ "I am",
+ )
+
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_PROMPTS}.0.content")
+ == "Tell me a joke about OpenTelemetry"
+ )
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_COMPLETIONS}.0.content")
+ == response
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert (
+ len(logs) == 0
+ ), "Assert that it doesn't emit logs when use_legacy_attributes is True"
+
+
+@pytest.mark.vcr
+def test_writer_streaming_completions_with_events_with_content(
+ instrument_with_content, writer_client, span_exporter, log_exporter
+):
+ gen = writer_client.completions.create(
+ model="palmyra-x4",
+ prompt="Tell me a joke about OpenTelemetry",
+ temperature=0.7,
+ top_p=0.9,
+ max_tokens=340,
+ stop=["I am"],
+ stream=True,
+ )
+
+ response = ""
+ for res in gen:
+ if res.value:
+ response += res.value
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+ assert writer_span.name == "writerai.completions"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "completion"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}") == (
+ "I am",
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert len(logs) == 2
+
+ user_message_log = logs[0]
+ assert_message_in_logs(
+ user_message_log,
+ "gen_ai.user.message",
+ {"content": "Tell me a joke about OpenTelemetry"},
+ )
+
+ choice_event = {
+ "index": 0,
+ "finish_reason": "unknown",
+ "message": {"content": response},
+ }
+ assert_message_in_logs(logs[1], "gen_ai.choice", choice_event)
+
+
+@pytest.mark.vcr
+def test_writer_streaming_completions_with_events_with_no_content(
+ instrument_with_no_content, writer_client, span_exporter, log_exporter
+):
+ gen = writer_client.completions.create(
+ model="palmyra-x4",
+ prompt="Tell me a joke about OpenTelemetry",
+ temperature=0.7,
+ top_p=0.9,
+ max_tokens=340,
+ stop=["I am"],
+ stream=True,
+ )
+
+ response = ""
+ for res in gen:
+ if res.value:
+ response += res.value
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+ assert writer_span.name == "writerai.completions"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "completion"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}") == (
+ "I am",
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert len(logs) == 2
+
+ user_message_log = logs[0]
+ assert_message_in_logs(user_message_log, "gen_ai.user.message", {})
+
+ choice_event = {
+ "index": 0,
+ "finish_reason": "unknown",
+ "message": {},
+ }
+ assert_message_in_logs(logs[1], "gen_ai.choice", choice_event)
+
+
+@pytest.mark.vcr
+@pytest.mark.asyncio
+async def test_writer_async_completions_legacy(
+ instrument_legacy, writer_client_async, span_exporter, log_exporter
+):
+ response = await writer_client_async.completions.create(
+ model="palmyra-x4",
+ prompt="Tell me a joke about OpenTelemetry",
+ max_tokens=150,
+ temperature=0.7,
+ top_p=0.9,
+ stop=["."],
+ stream=False,
+ )
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+
+ assert writer_span.name == "writerai.completions"
+ assert writer_span.name == "writerai.completions"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "completion"
+ )
+ assert not writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 150
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}") == (
+ ".",
+ )
+
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_PROMPTS}.0.content")
+ == "Tell me a joke about OpenTelemetry"
+ )
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_COMPLETIONS}.0.content")
+ == response.choices[0].text
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert (
+ len(logs) == 0
+ ), "Assert that it doesn't emit logs when use_legacy_attributes is True"
+
+
+@pytest.mark.vcr
+@pytest.mark.asyncio
+async def test_writer_async_completions_with_events_with_content(
+ instrument_with_content, writer_client_async, span_exporter, log_exporter
+):
+ response = await writer_client_async.completions.create(
+ model="palmyra-x4",
+ prompt="Tell me a joke about OpenTelemetry",
+ max_tokens=150,
+ temperature=0.7,
+ top_p=0.9,
+ stop=["."],
+ stream=False,
+ )
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+ assert writer_span.name == "writerai.completions"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "completion"
+ )
+ assert not writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 150
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}") == (
+ ".",
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert len(logs) == 2
+
+ user_message_log = logs[0]
+ assert_message_in_logs(
+ user_message_log,
+ "gen_ai.user.message",
+ {"content": "Tell me a joke about OpenTelemetry"},
+ )
+
+ choice_event = {
+ "index": 0,
+ "finish_reason": "unknown",
+ "message": {"content": response.choices[0].text},
+ }
+ assert_message_in_logs(logs[1], "gen_ai.choice", choice_event)
+
+
+@pytest.mark.vcr
+@pytest.mark.asyncio
+async def test_writer_async_completions_with_events_with_no_content(
+ instrument_with_no_content, writer_client_async, span_exporter, log_exporter
+):
+ await writer_client_async.completions.create(
+ model="palmyra-x4",
+ prompt="Tell me a joke about OpenTelemetry",
+ max_tokens=150,
+ temperature=0.7,
+ top_p=0.9,
+ stop=["."],
+ stream=False,
+ )
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+ assert writer_span.name == "writerai.completions"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "completion"
+ )
+ assert not writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 150
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}") == (
+ ".",
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert len(logs) == 2
+
+ user_message_log = logs[0]
+ assert_message_in_logs(user_message_log, "gen_ai.user.message", {})
+
+ choice_event = {
+ "index": 0,
+ "finish_reason": "unknown",
+ "message": {},
+ }
+ assert_message_in_logs(logs[1], "gen_ai.choice", choice_event)
+
+
+def assert_message_in_logs(log: LogData, event_name: str, expected_content: dict):
+ assert log.log_record.attributes.get(EventAttributes.EVENT_NAME) == event_name
+ assert log.log_record.attributes.get(GenAIAttributes.GEN_AI_SYSTEM) == "writer"
+
+ if not expected_content:
+ assert not log.log_record.body
+ else:
+ assert log.log_record.body
+ assert dict(log.log_record.body) == expected_content
+
+
+@pytest.mark.vcr
+@pytest.mark.asyncio
+async def test_writer_async_streaming_completions_legacy(
+ instrument_legacy, writer_client_async, span_exporter, log_exporter
+):
+ gen = await writer_client_async.completions.create(
+ model="palmyra-x4",
+ prompt="Tell me a joke about OpenTelemetry",
+ temperature=0.7,
+ top_p=0.9,
+ max_tokens=340,
+ stop=["I am"],
+ stream=True,
+ )
+
+ response = ""
+ async for res in gen:
+ if res.value:
+ response += res.value
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+ assert writer_span.name == "writerai.completions"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "completion"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}") == (
+ "I am",
+ )
+
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_PROMPTS}.0.content")
+ == "Tell me a joke about OpenTelemetry"
+ )
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_COMPLETIONS}.0.content")
+ == response
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert (
+ len(logs) == 0
+ ), "Assert that it doesn't emit logs when use_legacy_attributes is True"
+
+
+@pytest.mark.vcr
+@pytest.mark.asyncio
+async def test_writer_async_streaming_completions_with_events_with_content(
+ instrument_with_content, writer_client_async, span_exporter, log_exporter
+):
+ gen = await writer_client_async.completions.create(
+ model="palmyra-x4",
+ prompt="Tell me a joke about OpenTelemetry",
+ temperature=0.7,
+ top_p=0.9,
+ max_tokens=340,
+ stop=["I am"],
+ stream=True,
+ )
+
+ response = ""
+ async for res in gen:
+ if res.value:
+ response += res.value
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+ assert writer_span.name == "writerai.completions"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "completion"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}") == (
+ "I am",
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert len(logs) == 2
+
+ user_message_log = logs[0]
+ assert_message_in_logs(
+ user_message_log,
+ "gen_ai.user.message",
+ {"content": "Tell me a joke about OpenTelemetry"},
+ )
+
+ choice_event = {
+ "index": 0,
+ "finish_reason": "unknown",
+ "message": {"content": response},
+ }
+ assert_message_in_logs(logs[1], "gen_ai.choice", choice_event)
+
+
+@pytest.mark.vcr
+@pytest.mark.asyncio
+async def test_writer_async_streaming_completions_with_events_with_no_content(
+ instrument_with_no_content, writer_client_async, span_exporter, log_exporter
+):
+ gen = await writer_client_async.completions.create(
+ model="palmyra-x4",
+ prompt="Tell me a joke about OpenTelemetry",
+ temperature=0.7,
+ top_p=0.9,
+ max_tokens=340,
+ stop=["I am"],
+ stream=True,
+ )
+
+ response = ""
+ async for res in gen:
+ if res.value:
+ response += res.value
+
+ spans = span_exporter.get_finished_spans()
+ writer_span = spans[0]
+ assert writer_span.name == "writerai.completions"
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_SYSTEM}") == "writer"
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TYPE}") == "completion"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_IS_STREAMING}")
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MODEL}")
+ == "palmyra-x4"
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_MAX_TOKENS}") == 340
+ assert (
+ writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TEMPERATURE}") == 0.7
+ )
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_REQUEST_TOP_P}") == 0.9
+ assert writer_span.attributes.get(f"{SpanAttributes.LLM_CHAT_STOP_SEQUENCES}") == (
+ "I am",
+ )
+
+ logs = log_exporter.get_finished_logs()
+ assert len(logs) == 2
+
+ user_message_log = logs[0]
+ assert_message_in_logs(user_message_log, "gen_ai.user.message", {})
+
+ choice_event = {
+ "index": 0,
+ "finish_reason": "unknown",
+ "message": {},
+ }
+ assert_message_in_logs(logs[1], "gen_ai.choice", choice_event)
diff --git a/packages/opentelemetry-instrumentation-writer/tests/test_metrics.py b/packages/opentelemetry-instrumentation-writer/tests/test_metrics.py
new file mode 100644
index 0000000000..32f0f26f29
--- /dev/null
+++ b/packages/opentelemetry-instrumentation-writer/tests/test_metrics.py
@@ -0,0 +1,316 @@
+import pytest
+from opentelemetry.semconv._incubating.metrics import \
+ gen_ai_metrics as GenAIMetrics
+from opentelemetry.semconv_ai import Meters, SpanAttributes
+
+
+@pytest.mark.vcr
+def test_writer_metrics(instrument_legacy, reader, writer_client):
+ writer_client.chat.chat(
+ model="palmyra-x4",
+ messages=[
+ {
+ "role": "user",
+ "content": "Tell me a joke about OpenTelemetry",
+ },
+ ],
+ temperature=0.7,
+ top_p=0.9,
+ max_tokens=340,
+ stop="I am",
+ stream=False,
+ )
+
+ metrics_data = reader.get_metrics_data()
+ resource_metrics = metrics_data.resource_metrics
+ assert len(resource_metrics) > 0
+
+ found_token_metric = False
+ found_duration_metric = False
+
+ for rm in resource_metrics:
+ for sm in rm.scope_metrics:
+ for metric in sm.metrics:
+ if metric.name == Meters.LLM_TOKEN_USAGE:
+ found_token_metric = True
+ for data_point in metric.data.data_points:
+ assert data_point.attributes[SpanAttributes.LLM_TOKEN_TYPE] in [
+ "output",
+ "input",
+ ]
+ assert data_point.attributes["gen_ai.system"] == "writer"
+ assert (
+ data_point.attributes["gen_ai.response.model"]
+ == "palmyra-x4"
+ )
+ assert data_point.attributes["llm.request.type"] == "chat"
+ assert data_point.sum > 0
+
+ if metric.name == Meters.LLM_OPERATION_DURATION:
+ found_duration_metric = True
+ for data_point in metric.data.data_points:
+ assert data_point.attributes["gen_ai.system"] == "writer"
+ assert (
+ data_point.attributes["gen_ai.response.model"]
+ == "palmyra-x4"
+ )
+ assert data_point.attributes["llm.request.type"] == "chat"
+ assert data_point.sum > 0
+
+ assert found_token_metric
+ assert found_duration_metric
+
+
+@pytest.mark.vcr
+@pytest.mark.asyncio
+async def test_writer_async_metrics(instrument_legacy, reader, writer_client_async):
+ await writer_client_async.chat.chat(
+ model="palmyra-x4",
+ messages=[
+ {
+ "role": "user",
+ "content": "Tell me a joke about OpenTelemetry",
+ },
+ ],
+ temperature=0.7,
+ top_p=0.9,
+ max_tokens=340,
+ stop="I am",
+ stream=False,
+ )
+
+ metrics_data = reader.get_metrics_data()
+ resource_metrics = metrics_data.resource_metrics
+ assert len(resource_metrics) > 0
+
+ found_token_metric = False
+ found_duration_metric = False
+
+ for rm in resource_metrics:
+ for sm in rm.scope_metrics:
+ for metric in sm.metrics:
+ if metric.name == Meters.LLM_TOKEN_USAGE:
+ found_token_metric = True
+ for data_point in metric.data.data_points:
+ assert data_point.attributes[SpanAttributes.LLM_TOKEN_TYPE] in [
+ "output",
+ "input",
+ ]
+ assert data_point.attributes["gen_ai.system"] == "writer"
+ assert (
+ data_point.attributes["gen_ai.response.model"]
+ == "palmyra-x4"
+ )
+ assert data_point.attributes["llm.request.type"] == "chat"
+ assert data_point.sum > 0
+
+ if metric.name == Meters.LLM_OPERATION_DURATION:
+ found_duration_metric = True
+ for data_point in metric.data.data_points:
+ assert data_point.attributes["gen_ai.system"] == "writer"
+ assert (
+ data_point.attributes["gen_ai.response.model"]
+ == "palmyra-x4"
+ )
+ assert data_point.attributes["llm.request.type"] == "chat"
+ assert data_point.sum > 0
+
+ assert found_token_metric
+ assert found_duration_metric
+
+
+@pytest.mark.vcr
+def test_writer_streaming_metrics(instrument_legacy, reader, writer_client):
+ gen = writer_client.chat.chat(
+ model="palmyra-x4",
+ messages=[
+ {
+ "role": "user",
+ "content": "Tell me a joke about OpenTelemetry",
+ },
+ ],
+ temperature=0.7,
+ top_p=0.9,
+ max_tokens=340,
+ stop="I am",
+ stream=True,
+ stream_options={"include_usage": True},
+ )
+
+ for _ in gen:
+ ...
+
+ metrics_data = reader.get_metrics_data()
+ resource_metrics = metrics_data.resource_metrics
+ assert len(resource_metrics) > 0
+
+ found_token_metric = False
+ found_duration_metric = False
+ found_streaming_time_to_generate_metric = False
+ found_streaming_time_to_first_token_metric = False
+
+ total_time = 0
+ time_to_first_token = 0
+ time_to_generate = 0
+
+ for rm in resource_metrics:
+ for sm in rm.scope_metrics:
+ for metric in sm.metrics:
+ if metric.name == Meters.LLM_TOKEN_USAGE:
+ found_token_metric = True
+ for data_point in metric.data.data_points:
+ assert data_point.attributes[SpanAttributes.LLM_TOKEN_TYPE] in [
+ "output",
+ "input",
+ ]
+ assert data_point.attributes["gen_ai.system"] == "writer"
+ assert (
+ data_point.attributes["gen_ai.response.model"]
+ == "palmyra-x4"
+ )
+ assert data_point.attributes["llm.request.type"] == "chat"
+ assert data_point.sum > 0
+
+ if metric.name == Meters.LLM_STREAMING_TIME_TO_GENERATE:
+ found_streaming_time_to_generate_metric = True
+ for data_point in metric.data.data_points:
+ assert data_point.attributes["gen_ai.system"] == "writer"
+ assert (
+ data_point.attributes["gen_ai.response.model"]
+ == "palmyra-x4"
+ )
+ assert data_point.attributes["llm.request.type"] == "chat"
+ assert data_point.attributes["stream"]
+ assert data_point.sum > 0
+ time_to_generate += data_point.sum
+
+ if metric.name == GenAIMetrics.GEN_AI_SERVER_TIME_TO_FIRST_TOKEN:
+ found_streaming_time_to_first_token_metric = True
+ for data_point in metric.data.data_points:
+ assert data_point.attributes["gen_ai.system"] == "writer"
+ assert (
+ data_point.attributes["gen_ai.response.model"]
+ == "palmyra-x4"
+ )
+ assert data_point.attributes["llm.request.type"] == "chat"
+ assert data_point.attributes["stream"]
+ assert data_point.sum > 0
+ time_to_first_token += data_point.sum
+
+ if metric.name == Meters.LLM_OPERATION_DURATION:
+ found_duration_metric = True
+ for data_point in metric.data.data_points:
+ assert data_point.attributes["gen_ai.system"] == "writer"
+ assert (
+ data_point.attributes["gen_ai.response.model"]
+ == "palmyra-x4"
+ )
+ assert data_point.attributes["llm.request.type"] == "chat"
+ assert data_point.sum > 0
+ total_time += data_point.sum
+
+ assert found_token_metric
+ assert found_duration_metric
+ assert found_streaming_time_to_generate_metric
+ assert found_streaming_time_to_first_token_metric
+ assert total_time == time_to_first_token + time_to_generate
+
+
+@pytest.mark.vcr
+@pytest.mark.asyncio
+async def test_writer_async_streaming_metrics(
+ instrument_legacy, reader, writer_client_async
+):
+ gen = await writer_client_async.chat.chat(
+ model="palmyra-x4",
+ messages=[
+ {
+ "role": "user",
+ "content": "Tell me a joke about OpenTelemetry",
+ },
+ ],
+ temperature=0.7,
+ top_p=0.9,
+ max_tokens=340,
+ stop="I am",
+ stream=True,
+ stream_options={"include_usage": True},
+ )
+
+ async for _ in gen:
+ ...
+
+ metrics_data = reader.get_metrics_data()
+ resource_metrics = metrics_data.resource_metrics
+ assert len(resource_metrics) > 0
+
+ found_token_metric = False
+ found_duration_metric = False
+ found_streaming_time_to_generate_metric = False
+ found_streaming_time_to_first_token_metric = False
+
+ total_time = 0
+ time_to_first_token = 0
+ time_to_generate = 0
+
+ for rm in resource_metrics:
+ for sm in rm.scope_metrics:
+ for metric in sm.metrics:
+ if metric.name == Meters.LLM_TOKEN_USAGE:
+ found_token_metric = True
+ for data_point in metric.data.data_points:
+ assert data_point.attributes[SpanAttributes.LLM_TOKEN_TYPE] in [
+ "output",
+ "input",
+ ]
+ assert data_point.attributes["gen_ai.system"] == "writer"
+ assert (
+ data_point.attributes["gen_ai.response.model"]
+ == "palmyra-x4"
+ )
+ assert data_point.attributes["llm.request.type"] == "chat"
+ assert data_point.sum > 0
+
+ if metric.name == Meters.LLM_STREAMING_TIME_TO_GENERATE:
+ found_streaming_time_to_generate_metric = True
+ for data_point in metric.data.data_points:
+ assert data_point.attributes["gen_ai.system"] == "writer"
+ assert (
+ data_point.attributes["gen_ai.response.model"]
+ == "palmyra-x4"
+ )
+ assert data_point.attributes["llm.request.type"] == "chat"
+ assert data_point.attributes["stream"]
+ assert data_point.sum > 0
+ time_to_generate += data_point.sum
+
+ if metric.name == GenAIMetrics.GEN_AI_SERVER_TIME_TO_FIRST_TOKEN:
+ found_streaming_time_to_first_token_metric = True
+ for data_point in metric.data.data_points:
+ assert data_point.attributes["gen_ai.system"] == "writer"
+ assert (
+ data_point.attributes["gen_ai.response.model"]
+ == "palmyra-x4"
+ )
+ assert data_point.attributes["llm.request.type"] == "chat"
+ assert data_point.attributes["stream"]
+ assert data_point.sum > 0
+ time_to_first_token += data_point.sum
+
+ if metric.name == Meters.LLM_OPERATION_DURATION:
+ found_duration_metric = True
+ for data_point in metric.data.data_points:
+ assert data_point.attributes["gen_ai.system"] == "writer"
+ assert (
+ data_point.attributes["gen_ai.response.model"]
+ == "palmyra-x4"
+ )
+ assert data_point.attributes["llm.request.type"] == "chat"
+ assert data_point.sum > 0
+ total_time += data_point.sum
+
+ assert found_token_metric
+ assert found_duration_metric
+ assert found_streaming_time_to_generate_metric
+ assert found_streaming_time_to_first_token_metric
+ assert total_time == time_to_first_token + time_to_generate
diff --git a/packages/sample-app/sample_app/writer_example.py b/packages/sample-app/sample_app/writer_example.py
new file mode 100644
index 0000000000..a753aab5ef
--- /dev/null
+++ b/packages/sample-app/sample_app/writer_example.py
@@ -0,0 +1,165 @@
+import json
+import os
+
+from writerai import Writer
+from dotenv import load_dotenv
+from traceloop.sdk import Traceloop
+from traceloop.sdk.decorators import tool
+from typing import Dict, List, Any, Optional
+from dataclasses import dataclass
+
+"""---------------------------------------- Initializing environment ----------------------------------------"""
+
+if "TRACELOOP_METRICS_ENABLED" not in os.environ:
+ os.environ["TRACELOOP_METRICS_ENABLED"] = "true"
+
+load_dotenv()
+
+Traceloop.init()
+writer_client = Writer()
+
+messages = [{"role": "system", "content": "Answer with jokes"},
+ {"role": "user", "content": "What is the weather like today in Barcelona?"}]
+tools = [
+ {
+ "function": {
+ "description": "Return weather in the specific location.",
+ "name": "get_weather",
+ "parameters": {
+ "properties": {
+ "location": {
+ "description": "Location to return weather at",
+ "type": "string",
+ },
+ },
+ "required": ["location"],
+ "type": "object",
+ },
+ },
+ "type": "function",
+ }
+ ]
+
+"""---------------------------------------- Chat tool definition ----------------------------------------"""
+
+
+@tool(name="get_weather")
+def get_weather(location: str) -> str:
+ return f"Weather in {location}: sunny, 25 deg above 0, wind is 2 m/s south."
+
+
+"""---------------------------------------- Subsidiary functions ----------------------------------------"""
+
+
+@dataclass
+class StreamResult:
+ content: str
+ tool_calls: List[Dict[str, Any]]
+ finish_reason: Optional[str] = None
+
+
+def handle_streaming_response(response_stream):
+ accumulated_content = ""
+ tool_calls_accumulator = {}
+ finish_reason = None
+
+ for chunk in response_stream:
+ if chunk.choices and len(chunk.choices) > 0 and chunk.choices[0].delta:
+
+ delta = chunk.choices[0].delta
+
+ if delta.content:
+ accumulated_content += delta.content
+
+ if delta.tool_calls:
+ for tool_call_chunk in delta.tool_calls:
+ _process_tool_call_chunk(tool_call_chunk, tool_calls_accumulator)
+
+ if chunk.choices[0].finish_reason:
+ finish_reason = chunk.choices[0].finish_reason
+
+ print(StreamResult(
+ content=accumulated_content,
+ tool_calls=list(tool_calls_accumulator.values()),
+ finish_reason=finish_reason
+ ))
+
+ return StreamResult(
+ content=accumulated_content,
+ tool_calls=list(tool_calls_accumulator.values()),
+ finish_reason=finish_reason
+ )
+
+
+def _process_tool_call_chunk(
+ tool_call_chunk,
+ accumulator
+):
+ index = tool_call_chunk.index
+
+ if index is None:
+ return
+
+ if index not in accumulator:
+ accumulator[index] = {
+ 'id': '',
+ 'type': 'function',
+ 'function': {
+ 'name': '',
+ 'arguments': ''
+ }
+ }
+
+ current_tool_call = accumulator[index]
+
+ if tool_call_chunk.id:
+ current_tool_call["id"] += tool_call_chunk.id
+
+ if tool_call_chunk.function and tool_call_chunk.function.name:
+ current_tool_call['function']['name'] += tool_call_chunk.function.name
+
+ if tool_call_chunk.function and tool_call_chunk.function.arguments:
+ current_tool_call['function']['arguments'] += tool_call_chunk.function.arguments
+
+
+"""---------------------------------------- Usage example ----------------------------------------"""
+
+gen = writer_client.chat.chat(
+ model="palmyra-x4",
+ messages=messages,
+ tools=tools,
+ stream=True,
+ temperature=0.7,
+ top_p=0.9,
+ stream_options={"include_usage": True}
+)
+
+print(20 * "-" + "Processing stream" + 20 * "-")
+response = handle_streaming_response(gen)
+messages += [{"role": "assistant", "content": response.content, "tool_calls": response.tool_calls}]
+
+print(20 * "-" + "Received response" + 20 * "-")
+print(response)
+
+print(20 * "-" + "Calling tool 'get_weather'" + 20 * "-")
+tool_call_arguments = json.loads(response.tool_calls[0]["function"]["arguments"])
+tool_call_result = get_weather(tool_call_arguments["location"])
+print(f"Arguments: {tool_call_arguments}. Tool call result: {tool_call_result}")
+messages += [{"role": "tool", "content": tool_call_result}]
+
+gen = writer_client.chat.chat(
+ model="palmyra-x4",
+ messages=messages,
+ tools=tools,
+ stream=True,
+ temperature=0.7,
+ top_p=0.9,
+ stream_options={"include_usage": True}
+)
+
+print(20 * "-" + "Processing stream" + 20 * "-")
+response = handle_streaming_response(gen)
+messages += [{"role": "assistant", "content": response.content, "tool_calls": response.tool_calls}]
+
+print(20 * "-" + "Received response" + 20 * "-")
+print(response)
diff --git a/packages/traceloop-sdk/poetry.lock b/packages/traceloop-sdk/poetry.lock
index 87fbbf56d2..c7954d4271 100644
--- a/packages/traceloop-sdk/poetry.lock
+++ b/packages/traceloop-sdk/poetry.lock
@@ -1,4 +1,4 @@
-# This file is automatically @generated by Poetry 2.1.1 and should not be changed by hand.
+# This file is automatically @generated by Poetry 2.1.3 and should not be changed by hand.
[[package]]
name = "aiohappyeyeballs"
@@ -7,7 +7,6 @@ description = "Happy Eyeballs for asyncio"
optional = false
python-versions = ">=3.8"
groups = ["main", "test"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "aiohappyeyeballs-2.4.4-py3-none-any.whl", hash = "sha256:a980909d50efcd44795c4afeca523296716d50cd756ddca6af8c65b996e27de8"},
{file = "aiohappyeyeballs-2.4.4.tar.gz", hash = "sha256:5fdd7d87889c63183afc18ce9271f9b0a7d32c2303e394468dd45d514a757745"},
@@ -20,7 +19,6 @@ description = "Async http client/server framework (asyncio)"
optional = false
python-versions = ">=3.9"
groups = ["main", "test"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "aiohttp-3.11.11-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a60804bff28662cbcf340a4d61598891f12eea3a66af48ecfdc975ceec21e3c8"},
{file = "aiohttp-3.11.11-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4b4fa1cb5f270fb3eab079536b764ad740bb749ce69a94d4ec30ceee1b5940d5"},
@@ -120,7 +118,6 @@ description = "aiosignal: a list of registered asynchronous callbacks"
optional = false
python-versions = ">=3.9"
groups = ["main", "test"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "aiosignal-1.3.2-py2.py3-none-any.whl", hash = "sha256:45cde58e409a301715980c2b01d0c28bdde3770d8290b5eb2173759d9acb31a5"},
{file = "aiosignal-1.3.2.tar.gz", hash = "sha256:a8c255c66fafb1e499c9351d0bf32ff2d8a0321595ebac3b93713656d2436f54"},
@@ -136,7 +133,6 @@ description = "Reusable constraint types to use with typing.Annotated"
optional = false
python-versions = ">=3.8"
groups = ["main", "test"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53"},
{file = "annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89"},
@@ -149,7 +145,6 @@ description = "The official Python library for the anthropic API"
optional = false
python-versions = ">=3.7"
groups = ["main", "test"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "anthropic-0.25.9-py3-none-any.whl", hash = "sha256:d0b17d442160356a531593b237de55d3125cc6fa708f1268c214107e61c81c57"},
{file = "anthropic-0.25.9.tar.gz", hash = "sha256:a4ec810b1cfbf3340af99b6f5bf599a83d66986e0f572a5f3bc4ebcab284f629"},
@@ -175,7 +170,6 @@ description = "High level compatibility layer for multiple asynchronous event lo
optional = false
python-versions = ">=3.9"
groups = ["main", "test"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "anyio-4.8.0-py3-none-any.whl", hash = "sha256:b5011f270ab5eb0abf13385f851315585cc37ef330dd88e27ec3d34d651fd47a"},
{file = "anyio-4.8.0.tar.gz", hash = "sha256:1d9fe889df5212298c0c0723fa20479d1b94883a2df44bd3897aa91083316f7a"},
@@ -199,7 +193,7 @@ description = "Timeout context manager for asyncio programs"
optional = false
python-versions = ">=3.7"
groups = ["main", "test"]
-markers = "python_version < \"3.11\" and platform_python_implementation == \"PyPy\" or python_version == \"3.10\""
+markers = "python_version == \"3.10\""
files = [
{file = "async-timeout-4.0.3.tar.gz", hash = "sha256:4640d96be84d82d02ed59ea2b7105a0f7b33abe8703703cd0ab0bf87c427522f"},
{file = "async_timeout-4.0.3-py3-none-any.whl", hash = "sha256:7405140ff1230c310e51dc27b3145b9092d659ce68ff733fb0cefe3ee42be028"},
@@ -212,7 +206,6 @@ description = "Classes Without Boilerplate"
optional = false
python-versions = ">=3.8"
groups = ["main", "test"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "attrs-24.3.0-py3-none-any.whl", hash = "sha256:ac96cd038792094f438ad1f6ff80837353805ac950cd2aa0e0625ef19850c308"},
{file = "attrs-24.3.0.tar.gz", hash = "sha256:8f5c07333d543103541ba7be0e2ce16eeee8130cb0b3f9238ab904ce1e85baff"},
@@ -233,7 +226,6 @@ description = "A tool that automatically formats Python code to conform to the P
optional = false
python-versions = ">=3.8"
groups = ["dev"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "autopep8-2.2.0-py2.py3-none-any.whl", hash = "sha256:05418a981f038969d8bdcd5636bf15948db7555ae944b9f79b5a34b35f1370d4"},
{file = "autopep8-2.2.0.tar.gz", hash = "sha256:d306a0581163ac29908280ad557773a95a9bede072c0fafed6f141f5311f43c1"},
@@ -250,7 +242,6 @@ description = "Function decoration for backoff and retry"
optional = false
python-versions = ">=3.7,<4.0"
groups = ["main"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "backoff-2.2.1-py3-none-any.whl", hash = "sha256:63579f9a0628e06278f7e47b7d7d5b6ce20dc65c5e96a6f3ca99a6adca0396e8"},
{file = "backoff-2.2.1.tar.gz", hash = "sha256:03f829f5bb1923180821643f8753b0502c3b682293992485b0eef2807afa5cba"},
@@ -263,7 +254,6 @@ description = "Python package for providing Mozilla's CA Bundle."
optional = false
python-versions = ">=3.6"
groups = ["main", "test"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "certifi-2024.12.14-py3-none-any.whl", hash = "sha256:1275f7a45be9464efc1173084eaa30f866fe2e47d389406136d332ed4967ec56"},
{file = "certifi-2024.12.14.tar.gz", hash = "sha256:b650d30f370c2b724812bee08008be0c4163b163ddaec3f2546c1caf65f191db"},
@@ -276,7 +266,6 @@ description = "The Real First Universal Charset Detector. Open, modern and activ
optional = false
python-versions = ">=3.7"
groups = ["main", "test"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "charset_normalizer-3.4.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:91b36a978b5ae0ee86c394f5a54d6ef44db1de0815eb43de826d41d21e4af3de"},
{file = "charset_normalizer-3.4.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7461baadb4dc00fd9e0acbe254e3d7d2112e7f92ced2adc96e54ef6501c5f176"},
@@ -379,7 +368,6 @@ description = "Cross-platform colored terminal text."
optional = false
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7"
groups = ["main", "dev", "test"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"},
{file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"},
@@ -392,7 +380,6 @@ description = "Fast, scalable unique ID generation"
optional = false
python-versions = "*"
groups = ["main"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "cuid-0.4.tar.gz", hash = "sha256:74eaba154916a2240405c3631acee708c263ef8fa05a86820b87d0f59f84e978"},
]
@@ -404,7 +391,6 @@ description = "Python @deprecated decorator to deprecate old python classes, fun
optional = false
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7"
groups = ["main"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "Deprecated-1.2.15-py2.py3-none-any.whl", hash = "sha256:353bc4a8ac4bfc96800ddab349d89c25dec1079f65fd53acdcc1e0b975b21320"},
{file = "deprecated-1.2.15.tar.gz", hash = "sha256:683e561a90de76239796e6b6feac66b99030d2dd3fcf61ef996330f14bbb9b0d"},
@@ -423,7 +409,6 @@ description = "Distro - an OS platform information API"
optional = false
python-versions = ">=3.6"
groups = ["main", "test"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "distro-1.9.0-py3-none-any.whl", hash = "sha256:7bffd925d65168f85027d8da9af6bddab658135b840670a223589bc0c8ef02b2"},
{file = "distro-1.9.0.tar.gz", hash = "sha256:2fa77c6fd8940f116ee1d6b94a2f90b13b5ea8d019b98bc8bafdcabcdd9bdbed"},
@@ -436,7 +421,7 @@ description = "Backport of PEP 654 (exception groups)"
optional = false
python-versions = ">=3.7"
groups = ["main", "dev", "test"]
-markers = "python_version < \"3.11\" and platform_python_implementation == \"PyPy\" or python_version == \"3.10\""
+markers = "python_version == \"3.10\""
files = [
{file = "exceptiongroup-1.2.2-py3-none-any.whl", hash = "sha256:3111b9d131c238bec2f8f516e123e14ba243563fb135d3fe885990585aa7795b"},
{file = "exceptiongroup-1.2.2.tar.gz", hash = "sha256:47c2edf7c6738fafb49fd34290706d1a1a2f4d1c6df275526b62cbb4aa5393cc"},
@@ -452,7 +437,6 @@ description = "A platform independent file lock."
optional = false
python-versions = ">=3.8"
groups = ["main", "test"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "filelock-3.16.1-py3-none-any.whl", hash = "sha256:2082e5703d51fbf98ea75855d9d5527e33d8ff23099bec374a134febee6946b0"},
{file = "filelock-3.16.1.tar.gz", hash = "sha256:c249fbfcd5db47e5e2d6d62198e565475ee65e4831e2561c8e313fa7eb961435"},
@@ -470,7 +454,6 @@ description = "the modular source code checker: pep8 pyflakes and co"
optional = false
python-versions = ">=3.8.1"
groups = ["dev"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "flake8-7.0.0-py2.py3-none-any.whl", hash = "sha256:a6dfbb75e03252917f2473ea9653f7cd799c3064e54d4c8140044c5c065f53c3"},
{file = "flake8-7.0.0.tar.gz", hash = "sha256:33f96621059e65eec474169085dc92bf26e7b2d47366b70be2f67ab80dc25132"},
@@ -488,7 +471,6 @@ description = "A list-like structure which implements collections.abc.MutableSeq
optional = false
python-versions = ">=3.8"
groups = ["main", "test"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "frozenlist-1.5.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:5b6a66c18b5b9dd261ca98dffcb826a525334b2f29e7caa54e182255c5f6a65a"},
{file = "frozenlist-1.5.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d1b3eb7b05ea246510b43a7e53ed1653e55c2121019a97e60cad7efb881a97bb"},
@@ -591,7 +573,6 @@ description = "File-system specification"
optional = false
python-versions = ">=3.8"
groups = ["main", "test"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "fsspec-2024.12.0-py3-none-any.whl", hash = "sha256:b520aed47ad9804237ff878b504267a3b0b441e97508bd6d2d8774e3db85cee2"},
{file = "fsspec-2024.12.0.tar.gz", hash = "sha256:670700c977ed2fb51e0d9f9253177ed20cbde4a3e5c0283cc5385b5870c8533f"},
@@ -632,7 +613,6 @@ description = "Common protobufs used in Google APIs"
optional = false
python-versions = ">=3.7"
groups = ["main"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "googleapis_common_protos-1.66.0-py2.py3-none-any.whl", hash = "sha256:d7abcd75fabb2e0ec9f74466401f6c119a0b498e27370e9be4c94cb7e382b8ed"},
{file = "googleapis_common_protos-1.66.0.tar.gz", hash = "sha256:c3e7b33d15fdca5374cc0a7346dd92ffa847425cc4ea941d970f13680052ec8c"},
@@ -651,7 +631,7 @@ description = "Lightweight in-process concurrent programming"
optional = false
python-versions = ">=3.7"
groups = ["test"]
-markers = "(platform_python_implementation == \"PyPy\" or python_version == \"3.10\" or python_version == \"3.11\" or python_version == \"3.12\" or python_version == \"3.13\") and (platform_machine == \"aarch64\" or platform_machine == \"ppc64le\" or platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"AMD64\" or platform_machine == \"win32\" or platform_machine == \"WIN32\") and python_version <= \"3.13\""
+markers = "(platform_machine == \"aarch64\" or platform_machine == \"ppc64le\" or platform_machine == \"x86_64\" or platform_machine == \"amd64\" or platform_machine == \"AMD64\" or platform_machine == \"win32\" or platform_machine == \"WIN32\") and python_version < \"3.14\""
files = [
{file = "greenlet-3.1.1-cp310-cp310-macosx_11_0_universal2.whl", hash = "sha256:0bbae94a29c9e5c7e4a2b7f0aae5c17e8e90acbfd3bf6270eeba60c39fce3563"},
{file = "greenlet-3.1.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0fde093fb93f35ca72a556cf72c92ea3ebfda3d79fc35bb19fbe685853869a83"},
@@ -739,7 +719,6 @@ description = "HTTP/2-based RPC framework"
optional = false
python-versions = ">=3.8"
groups = ["main"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "grpcio-1.69.0-cp310-cp310-linux_armv7l.whl", hash = "sha256:2060ca95a8db295ae828d0fc1c7f38fb26ccd5edf9aa51a0f44251f5da332e97"},
{file = "grpcio-1.69.0-cp310-cp310-macosx_12_0_universal2.whl", hash = "sha256:2e52e107261fd8fa8fa457fe44bfadb904ae869d87c1280bf60f93ecd3e79278"},
@@ -808,7 +787,6 @@ description = "A pure-Python, bring-your-own-I/O implementation of HTTP/1.1"
optional = false
python-versions = ">=3.8"
groups = ["main", "test"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "h11-0.16.0-py3-none-any.whl", hash = "sha256:63cf8bbe7522de3bf65932fda1d9c2772064ffb3dae62d55932da54b31cb6c86"},
{file = "h11-0.16.0.tar.gz", hash = "sha256:4e35b956cf45792e4caa5885e69fba00bdbc6ffafbfa020300e549b208ee5ff1"},
@@ -821,7 +799,6 @@ description = "A minimal low-level HTTP client."
optional = false
python-versions = ">=3.8"
groups = ["main", "test"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "httpcore-1.0.9-py3-none-any.whl", hash = "sha256:2d400746a40668fc9dec9810239072b40b4484b640a8c38fd654a024c7a1bf55"},
{file = "httpcore-1.0.9.tar.gz", hash = "sha256:6e34463af53fd2ab5d807f399a9b45ea31c3dfa2276f15a2c3f00afff6e176e8"},
@@ -844,7 +821,6 @@ description = "The next generation HTTP client."
optional = false
python-versions = ">=3.8"
groups = ["main", "test"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "httpx-0.28.1-py3-none-any.whl", hash = "sha256:d909fcccc110f8c7faf814ca82a9a4d816bc5a6dbfea25d6591d6985b8ba59ad"},
{file = "httpx-0.28.1.tar.gz", hash = "sha256:75e98c5f16b0f35b567856f597f06ff2270a374470a5c2392242528e3e3e42fc"},
@@ -870,7 +846,6 @@ description = "Client library to download and publish models, datasets and other
optional = false
python-versions = ">=3.8.0"
groups = ["main", "test"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "huggingface_hub-0.27.1-py3-none-any.whl", hash = "sha256:1c5155ca7d60b60c2e2fc38cbb3ffb7f7c3adf48f824015b219af9061771daec"},
{file = "huggingface_hub-0.27.1.tar.gz", hash = "sha256:c004463ca870283909d715d20f066ebd6968c2207dae9393fdffb3c1d4d8f98b"},
@@ -906,7 +881,6 @@ description = "Internationalized Domain Names in Applications (IDNA)"
optional = false
python-versions = ">=3.6"
groups = ["main", "test"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "idna-3.10-py3-none-any.whl", hash = "sha256:946d195a0d259cbba61165e88e65941f16e9b36ea6ddb97f00452bae8b1287d3"},
{file = "idna-3.10.tar.gz", hash = "sha256:12f65c9b470abda6dc35cf8e63cc574b1c52b11df2c86030af0ac09b01b13ea9"},
@@ -922,7 +896,6 @@ description = "Read metadata from Python packages"
optional = false
python-versions = ">=3.8"
groups = ["main"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "importlib_metadata-8.5.0-py3-none-any.whl", hash = "sha256:45e54197d28b7a7f1559e60b95e7c567032b602131fbd588f1497f47880aa68b"},
{file = "importlib_metadata-8.5.0.tar.gz", hash = "sha256:71522656f0abace1d072b9e5481a48f07c138e00f079c38c8f883823f9c26bd7"},
@@ -947,7 +920,6 @@ description = "A port of Ruby on Rails inflector to Python"
optional = false
python-versions = ">=3.5"
groups = ["main"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "inflection-0.5.1-py2.py3-none-any.whl", hash = "sha256:f38b2b640938a4f35ade69ac3d053042959b62a0f1076a5bbaa1b9526605a8a2"},
{file = "inflection-0.5.1.tar.gz", hash = "sha256:1a29730d366e996aaacffb2f1f1cb9593dc38e2ddd30c91250c6dde09ea9b417"},
@@ -960,7 +932,6 @@ description = "brain-dead simple config-ini parsing"
optional = false
python-versions = ">=3.7"
groups = ["dev", "test"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "iniconfig-2.0.0-py3-none-any.whl", hash = "sha256:b6a85871a79d2e3b22d2d1b94ac2824226a63c6b741c88f7ae975f18b6778374"},
{file = "iniconfig-2.0.0.tar.gz", hash = "sha256:2d91e135bf72d31a410b17c16da610a82cb55f6b0477d1a902134b24a455b8b3"},
@@ -973,7 +944,6 @@ description = "A very fast and expressive template engine."
optional = false
python-versions = ">=3.7"
groups = ["main"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67"},
{file = "jinja2-3.1.6.tar.gz", hash = "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d"},
@@ -992,7 +962,6 @@ description = "Fast iterable JSON parser."
optional = false
python-versions = ">=3.8"
groups = ["test"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "jiter-0.8.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:ca8577f6a413abe29b079bc30f907894d7eb07a865c4df69475e868d73e71c7b"},
{file = "jiter-0.8.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:b25bd626bde7fb51534190c7e3cb97cee89ee76b76d7585580e22f34f5e3f393"},
@@ -1079,7 +1048,6 @@ description = "Apply JSON-Patches (RFC 6902)"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*, !=3.6.*"
groups = ["test"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "jsonpatch-1.33-py2.py3-none-any.whl", hash = "sha256:0ae28c0cd062bbd8b8ecc26d7d164fbbea9652a1a3693f3b956c1eae5145dade"},
{file = "jsonpatch-1.33.tar.gz", hash = "sha256:9fcd4009c41e6d12348b4a0ff2563ba56a2923a7dfee731d004e212e1ee5030c"},
@@ -1095,7 +1063,6 @@ description = "Identify specific nodes in a JSON document (RFC 6901)"
optional = false
python-versions = ">=3.7"
groups = ["test"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "jsonpointer-3.0.0-py2.py3-none-any.whl", hash = "sha256:13e088adc14fca8b6aa8177c044e12701e6ad4b28ff10e65f2267a90109c9942"},
{file = "jsonpointer-3.0.0.tar.gz", hash = "sha256:2b2d729f2091522d61c3b31f82e11870f60b68f43fbc705cb76bf4b832af59ef"},
@@ -1108,7 +1075,6 @@ description = "Building applications with LLMs through composability"
optional = false
python-versions = "<4.0,>=3.8.1"
groups = ["test"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "langchain-0.2.17-py3-none-any.whl", hash = "sha256:a97a33e775f8de074370aecab95db148b879c794695d9e443c95457dce5eb525"},
{file = "langchain-0.2.17.tar.gz", hash = "sha256:5a99ce94aae05925851777dba45cbf2c475565d1e91cbe7d82c5e329d514627e"},
@@ -1137,7 +1103,6 @@ description = "Building applications with LLMs through composability"
optional = false
python-versions = "<4.0,>=3.8.1"
groups = ["test"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "langchain_core-0.2.43-py3-none-any.whl", hash = "sha256:619601235113298ebf8252a349754b7c28d3cf7166c7c922da24944b78a9363a"},
{file = "langchain_core-0.2.43.tar.gz", hash = "sha256:42c2ef6adedb911f4254068b6adc9eb4c4075f6c8cb3d83590d3539a815695f5"},
@@ -1162,7 +1127,6 @@ description = "An integration package connecting OpenAI and LangChain"
optional = false
python-versions = "<4.0,>=3.8.1"
groups = ["test"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "langchain_openai-0.1.25-py3-none-any.whl", hash = "sha256:f0b34a233d0d9cb8fce6006c903e57085c493c4f0e32862b99063b96eaedb109"},
{file = "langchain_openai-0.1.25.tar.gz", hash = "sha256:eb116f744f820247a72f54313fb7c01524fba0927120d4e899e5e4ab41ad3928"},
@@ -1180,7 +1144,6 @@ description = "LangChain text splitting utilities"
optional = false
python-versions = "<4.0,>=3.8.1"
groups = ["test"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "langchain_text_splitters-0.2.4-py3-none-any.whl", hash = "sha256:2702dee5b7cbdd595ccbe43b8d38d01a34aa8583f4d6a5a68ad2305ae3e7b645"},
{file = "langchain_text_splitters-0.2.4.tar.gz", hash = "sha256:f7daa7a3b0aa8309ce248e2e2b6fc8115be01118d336c7f7f7dfacda0e89bf29"},
@@ -1196,7 +1159,6 @@ description = "Client library to connect to the LangSmith LLM Tracing and Evalua
optional = false
python-versions = "<4.0,>=3.8.1"
groups = ["test"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "langsmith-0.1.147-py3-none-any.whl", hash = "sha256:7166fc23b965ccf839d64945a78e9f1157757add228b086141eb03a60d699a15"},
{file = "langsmith-0.1.147.tar.gz", hash = "sha256:2e933220318a4e73034657103b3b1a3a6109cc5db3566a7e8e03be8d6d7def7a"},
@@ -1222,7 +1184,6 @@ description = "Safely add untrusted strings to HTML/XML markup."
optional = false
python-versions = ">=3.9"
groups = ["main"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "MarkupSafe-3.0.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7e94c425039cde14257288fd61dcfb01963e658efbc0ff54f5306b06054700f8"},
{file = "MarkupSafe-3.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9e2d922824181480953426608b81967de705c3cef4d1af983af849d7bd619158"},
@@ -1294,7 +1255,6 @@ description = "McCabe checker, plugin for flake8"
optional = false
python-versions = ">=3.6"
groups = ["dev"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "mccabe-0.7.0-py2.py3-none-any.whl", hash = "sha256:6c2d30ab6be0e4a46919781807b4f0d834ebdd6c6e3dca0bda5a15f863427b6e"},
{file = "mccabe-0.7.0.tar.gz", hash = "sha256:348e0240c33b60bbdf4e523192ef919f28cb2c3d7d5c7794f74009290f236325"},
@@ -1307,7 +1267,6 @@ description = "An implementation of time.monotonic() for Python 2 & < 3.3"
optional = false
python-versions = "*"
groups = ["main"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "monotonic-1.6-py2.py3-none-any.whl", hash = "sha256:68687e19a14f11f26d140dd5c86f3dba4bf5df58003000ed467e0e2a69bca96c"},
{file = "monotonic-1.6.tar.gz", hash = "sha256:3a55207bcfed53ddd5c5bae174524062935efed17792e9de2ad0205ce9ad63f7"},
@@ -1320,7 +1279,6 @@ description = "multidict implementation"
optional = false
python-versions = ">=3.8"
groups = ["main", "test"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "multidict-6.1.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3380252550e372e8511d49481bd836264c009adb826b23fefcc5dd3c69692f60"},
{file = "multidict-6.1.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:99f826cbf970077383d7de805c0681799491cb939c25450b9b5b3ced03ca99f1"},
@@ -1426,7 +1384,6 @@ description = "Fundamental package for array computing in Python"
optional = false
python-versions = ">=3.9"
groups = ["test"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "numpy-1.26.4-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:9ff0f4f29c51e2803569d7a51c2304de5554655a60c5d776e35b4a41413830d0"},
{file = "numpy-1.26.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:2e4ee3380d6de9c9ec04745830fd9e2eccb3e6cf790d39d7b98ffd19b0dd754a"},
@@ -1473,7 +1430,6 @@ description = "The official Python library for the openai API"
optional = false
python-versions = ">=3.8"
groups = ["test"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "openai-1.59.7-py3-none-any.whl", hash = "sha256:cfa806556226fa96df7380ab2e29814181d56fea44738c2b0e581b462c268692"},
{file = "openai-1.59.7.tar.gz", hash = "sha256:043603def78c00befb857df9f0a16ee76a3af5984ba40cb7ee5e2f40db4646bf"},
@@ -1500,7 +1456,6 @@ description = "OpenTelemetry Python API"
optional = false
python-versions = ">=3.9"
groups = ["main"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "opentelemetry_api-1.36.0-py3-none-any.whl", hash = "sha256:02f20bcacf666e1333b6b1f04e647dc1d5111f86b8e510238fcc56d7762cda8c"},
{file = "opentelemetry_api-1.36.0.tar.gz", hash = "sha256:9a72572b9c416d004d492cbc6e61962c0501eaf945ece9b5a0f56597d8348aa0"},
@@ -1517,7 +1472,6 @@ description = "OpenTelemetry Collector Exporters"
optional = false
python-versions = ">=3.9"
groups = ["main"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "opentelemetry_exporter_otlp-1.36.0-py3-none-any.whl", hash = "sha256:de93b7c45bcc78296998775d52add7c63729e83ef2cd6560730a6b336d7f6494"},
{file = "opentelemetry_exporter_otlp-1.36.0.tar.gz", hash = "sha256:72f166ea5a8923ac42889337f903e93af57db8893de200369b07401e98e4e06b"},
@@ -1534,7 +1488,6 @@ description = "OpenTelemetry Protobuf encoding"
optional = false
python-versions = ">=3.9"
groups = ["main"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "opentelemetry_exporter_otlp_proto_common-1.36.0-py3-none-any.whl", hash = "sha256:0fc002a6ed63eac235ada9aa7056e5492e9a71728214a61745f6ad04b923f840"},
{file = "opentelemetry_exporter_otlp_proto_common-1.36.0.tar.gz", hash = "sha256:6c496ccbcbe26b04653cecadd92f73659b814c6e3579af157d8716e5f9f25cbf"},
@@ -1550,7 +1503,6 @@ description = "OpenTelemetry Collector Protobuf over gRPC Exporter"
optional = false
python-versions = ">=3.9"
groups = ["main"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "opentelemetry_exporter_otlp_proto_grpc-1.36.0-py3-none-any.whl", hash = "sha256:734e841fc6a5d6f30e7be4d8053adb703c70ca80c562ae24e8083a28fadef211"},
{file = "opentelemetry_exporter_otlp_proto_grpc-1.36.0.tar.gz", hash = "sha256:b281afbf7036b325b3588b5b6c8bb175069e3978d1bd24071f4a59d04c1e5bbf"},
@@ -1575,7 +1527,6 @@ description = "OpenTelemetry Collector Protobuf over HTTP Exporter"
optional = false
python-versions = ">=3.9"
groups = ["main"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "opentelemetry_exporter_otlp_proto_http-1.36.0-py3-none-any.whl", hash = "sha256:3d769f68e2267e7abe4527f70deb6f598f40be3ea34c6adc35789bea94a32902"},
{file = "opentelemetry_exporter_otlp_proto_http-1.36.0.tar.gz", hash = "sha256:dd3637f72f774b9fc9608ab1ac479f8b44d09b6fb5b2f3df68a24ad1da7d356e"},
@@ -1597,7 +1548,6 @@ description = "Instrumentation Tools & Auto Instrumentation for OpenTelemetry Py
optional = false
python-versions = ">=3.9"
groups = ["main"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "opentelemetry_instrumentation-0.57b0-py3-none-any.whl", hash = "sha256:9109280f44882e07cec2850db28210b90600ae9110b42824d196de357cbddf7e"},
{file = "opentelemetry_instrumentation-0.57b0.tar.gz", hash = "sha256:f2a30135ba77cdea2b0e1df272f4163c154e978f57214795d72f40befd4fcf05"},
@@ -1611,12 +1561,11 @@ wrapt = ">=1.0.0,<2.0.0"
[[package]]
name = "opentelemetry-instrumentation-alephalpha"
-version = "0.45.6"
+version = "0.46.1"
description = "OpenTelemetry Aleph Alpha instrumentation"
optional = false
python-versions = ">=3.9,<4"
groups = ["main"]
-markers = "platform_python_implementation == \"PyPy\""
files = []
develop = true
@@ -1635,12 +1584,11 @@ url = "../opentelemetry-instrumentation-alephalpha"
[[package]]
name = "opentelemetry-instrumentation-anthropic"
-version = "0.45.6"
+version = "0.46.1"
description = "OpenTelemetry Anthropic instrumentation"
optional = false
python-versions = ">=3.9,<4"
groups = ["main"]
-markers = "platform_python_implementation == \"PyPy\""
files = []
develop = true
@@ -1659,12 +1607,11 @@ url = "../opentelemetry-instrumentation-anthropic"
[[package]]
name = "opentelemetry-instrumentation-bedrock"
-version = "0.45.6"
+version = "0.46.1"
description = "OpenTelemetry Bedrock instrumentation"
optional = false
python-versions = ">=3.9,<4"
groups = ["main"]
-markers = "platform_python_implementation == \"PyPy\""
files = []
develop = true
@@ -1682,12 +1629,11 @@ url = "../opentelemetry-instrumentation-bedrock"
[[package]]
name = "opentelemetry-instrumentation-chromadb"
-version = "0.45.6"
+version = "0.46.1"
description = "OpenTelemetry Chroma DB instrumentation"
optional = false
python-versions = ">=3.9,<4"
groups = ["main"]
-markers = "platform_python_implementation == \"PyPy\""
files = []
develop = true
@@ -1706,12 +1652,11 @@ url = "../opentelemetry-instrumentation-chromadb"
[[package]]
name = "opentelemetry-instrumentation-cohere"
-version = "0.45.6"
+version = "0.46.1"
description = "OpenTelemetry Cohere instrumentation"
optional = false
python-versions = ">=3.9,<4"
groups = ["main"]
-markers = "platform_python_implementation == \"PyPy\""
files = []
develop = true
@@ -1730,12 +1675,11 @@ url = "../opentelemetry-instrumentation-cohere"
[[package]]
name = "opentelemetry-instrumentation-crewai"
-version = "0.45.6"
+version = "0.46.1"
description = "OpenTelemetry crewAI instrumentation"
optional = false
python-versions = ">=3.10,<4"
groups = ["main"]
-markers = "platform_python_implementation == \"PyPy\""
files = []
develop = true
@@ -1754,12 +1698,11 @@ url = "../opentelemetry-instrumentation-crewai"
[[package]]
name = "opentelemetry-instrumentation-google-generativeai"
-version = "0.45.6"
+version = "0.46.1"
description = "OpenTelemetry Google Generative AI instrumentation"
optional = false
python-versions = ">=3.9,<4"
groups = ["main"]
-markers = "platform_python_implementation == \"PyPy\""
files = []
develop = true
@@ -1778,12 +1721,11 @@ url = "../opentelemetry-instrumentation-google-generativeai"
[[package]]
name = "opentelemetry-instrumentation-groq"
-version = "0.45.6"
+version = "0.46.1"
description = "OpenTelemetry Groq instrumentation"
optional = false
python-versions = ">=3.9,<4"
groups = ["main"]
-markers = "platform_python_implementation == \"PyPy\""
files = []
develop = true
@@ -1802,12 +1744,11 @@ url = "../opentelemetry-instrumentation-groq"
[[package]]
name = "opentelemetry-instrumentation-haystack"
-version = "0.45.6"
+version = "0.46.1"
description = "OpenTelemetry Haystack instrumentation"
optional = false
python-versions = ">=3.9,<4"
groups = ["main"]
-markers = "platform_python_implementation == \"PyPy\""
files = []
develop = true
@@ -1826,12 +1767,11 @@ url = "../opentelemetry-instrumentation-haystack"
[[package]]
name = "opentelemetry-instrumentation-lancedb"
-version = "0.45.6"
+version = "0.46.1"
description = "OpenTelemetry Lancedb instrumentation"
optional = false
python-versions = ">=3.9,<4"
groups = ["main"]
-markers = "platform_python_implementation == \"PyPy\""
files = []
develop = true
@@ -1850,12 +1790,11 @@ url = "../opentelemetry-instrumentation-lancedb"
[[package]]
name = "opentelemetry-instrumentation-langchain"
-version = "0.45.6"
+version = "0.46.1"
description = "OpenTelemetry Langchain instrumentation"
optional = false
python-versions = ">=3.9,<4"
groups = ["main"]
-markers = "platform_python_implementation == \"PyPy\""
files = []
develop = true
@@ -1874,12 +1813,11 @@ url = "../opentelemetry-instrumentation-langchain"
[[package]]
name = "opentelemetry-instrumentation-llamaindex"
-version = "0.45.6"
+version = "0.46.1"
description = "OpenTelemetry LlamaIndex instrumentation"
optional = false
python-versions = ">=3.9,<4"
groups = ["main"]
-markers = "platform_python_implementation == \"PyPy\""
files = []
develop = true
@@ -1905,7 +1843,6 @@ description = "OpenTelemetry Logging instrumentation"
optional = false
python-versions = ">=3.9"
groups = ["main"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "opentelemetry_instrumentation_logging-0.57b0-py3-none-any.whl", hash = "sha256:9f57d13bf776f6507f8ccff16a7aa6e6e753672708943925a794f16152504a04"},
{file = "opentelemetry_instrumentation_logging-0.57b0.tar.gz", hash = "sha256:44dbeb8aaf643e95d7311b699b8d368b1ecdb8404f1563f19f2b3ce2b4c6a035"},
@@ -1917,12 +1854,11 @@ opentelemetry-instrumentation = "0.57b0"
[[package]]
name = "opentelemetry-instrumentation-marqo"
-version = "0.45.6"
+version = "0.46.1"
description = "OpenTelemetry Marqo instrumentation"
optional = false
python-versions = ">=3.9,<4"
groups = ["main"]
-markers = "platform_python_implementation == \"PyPy\""
files = []
develop = true
@@ -1941,12 +1877,11 @@ url = "../opentelemetry-instrumentation-marqo"
[[package]]
name = "opentelemetry-instrumentation-mcp"
-version = "0.45.6"
+version = "0.46.1"
description = "OpenTelemetry mcp instrumentation"
optional = false
python-versions = ">=3.10,<4"
groups = ["main"]
-markers = "platform_python_implementation == \"PyPy\""
files = []
develop = true
@@ -1966,12 +1901,11 @@ url = "../opentelemetry-instrumentation-mcp"
[[package]]
name = "opentelemetry-instrumentation-milvus"
-version = "0.45.6"
+version = "0.46.1"
description = "OpenTelemetry Milvus instrumentation"
optional = false
python-versions = ">=3.9,<4"
groups = ["main"]
-markers = "platform_python_implementation == \"PyPy\""
files = []
develop = true
@@ -1990,12 +1924,11 @@ url = "../opentelemetry-instrumentation-milvus"
[[package]]
name = "opentelemetry-instrumentation-mistralai"
-version = "0.45.6"
+version = "0.46.1"
description = "OpenTelemetry Mistral AI instrumentation"
optional = false
python-versions = ">=3.9,<4"
groups = ["main"]
-markers = "platform_python_implementation == \"PyPy\""
files = []
develop = true
@@ -2014,12 +1947,11 @@ url = "../opentelemetry-instrumentation-mistralai"
[[package]]
name = "opentelemetry-instrumentation-ollama"
-version = "0.45.6"
+version = "0.46.1"
description = "OpenTelemetry Ollama instrumentation"
optional = false
python-versions = ">=3.9,<4"
groups = ["main"]
-markers = "platform_python_implementation == \"PyPy\""
files = []
develop = true
@@ -2038,12 +1970,11 @@ url = "../opentelemetry-instrumentation-ollama"
[[package]]
name = "opentelemetry-instrumentation-openai"
-version = "0.45.6"
+version = "0.46.1"
description = "OpenTelemetry OpenAI instrumentation"
optional = false
python-versions = ">=3.9,<4"
groups = ["main"]
-markers = "platform_python_implementation == \"PyPy\""
files = []
develop = true
@@ -2062,12 +1993,11 @@ url = "../opentelemetry-instrumentation-openai"
[[package]]
name = "opentelemetry-instrumentation-openai-agents"
-version = "0.45.6"
+version = "0.46.1"
description = "OpenTelemetry OpenAI Agents instrumentation"
optional = false
python-versions = ">=3.9,<4"
groups = ["main"]
-markers = "platform_python_implementation == \"PyPy\""
files = []
develop = true
@@ -2086,12 +2016,11 @@ url = "../opentelemetry-instrumentation-openai-agents"
[[package]]
name = "opentelemetry-instrumentation-pinecone"
-version = "0.45.6"
+version = "0.46.1"
description = "OpenTelemetry Pinecone instrumentation"
optional = false
python-versions = ">=3.9,<4"
groups = ["main"]
-markers = "platform_python_implementation == \"PyPy\""
files = []
develop = true
@@ -2110,12 +2039,11 @@ url = "../opentelemetry-instrumentation-pinecone"
[[package]]
name = "opentelemetry-instrumentation-qdrant"
-version = "0.45.6"
+version = "0.46.1"
description = "OpenTelemetry Qdrant instrumentation"
optional = false
python-versions = ">=3.9,<4"
groups = ["main"]
-markers = "platform_python_implementation == \"PyPy\""
files = []
develop = true
@@ -2139,7 +2067,6 @@ description = "OpenTelemetry Redis instrumentation"
optional = false
python-versions = ">=3.9"
groups = ["main"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "opentelemetry_instrumentation_redis-0.57b0-py3-none-any.whl", hash = "sha256:4e988016e74d8fabc0be93a30462bce223423874c3fa53f0a154b0fe050041f9"},
{file = "opentelemetry_instrumentation_redis-0.57b0.tar.gz", hash = "sha256:54fcd749dee6eebcd137c0f2d840d810fc4225368caf5f4cc91bfe0d13eb9176"},
@@ -2156,12 +2083,11 @@ instruments = ["redis (>=2.6)"]
[[package]]
name = "opentelemetry-instrumentation-replicate"
-version = "0.45.6"
+version = "0.46.1"
description = "OpenTelemetry Replicate instrumentation"
optional = false
python-versions = ">=3.9,<4"
groups = ["main"]
-markers = "platform_python_implementation == \"PyPy\""
files = []
develop = true
@@ -2185,7 +2111,6 @@ description = "OpenTelemetry requests instrumentation"
optional = false
python-versions = ">=3.9"
groups = ["main"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "opentelemetry_instrumentation_requests-0.57b0-py3-none-any.whl", hash = "sha256:66a576ac8080724ddc8a14c39d16bb5f430991bd504fdbea844c7a063f555971"},
{file = "opentelemetry_instrumentation_requests-0.57b0.tar.gz", hash = "sha256:193bd3fd1f14737721876fb1952dffc7d43795586118df633a91ecd9057446ff"},
@@ -2202,12 +2127,11 @@ instruments = ["requests (>=2.0,<3.0)"]
[[package]]
name = "opentelemetry-instrumentation-sagemaker"
-version = "0.45.6"
+version = "0.46.1"
description = "OpenTelemetry SageMaker instrumentation"
optional = false
python-versions = ">=3.9,<4"
groups = ["main"]
-markers = "platform_python_implementation == \"PyPy\""
files = []
develop = true
@@ -2228,7 +2152,6 @@ description = "OpenTelemetry SQLAlchemy instrumentation"
optional = false
python-versions = ">=3.9"
groups = ["main"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "opentelemetry_instrumentation_sqlalchemy-0.57b0-py3-none-any.whl", hash = "sha256:8a1a815331cb04fc95aa7c50e9c681cdccfb12e1fa4522f079fe4b24753ae106"},
{file = "opentelemetry_instrumentation_sqlalchemy-0.57b0.tar.gz", hash = "sha256:95667326b7cc22bb4bc9941f98ca22dd177679f9a4d277646cc21074c0d732ff"},
@@ -2251,7 +2174,6 @@ description = "Thread context propagation support for OpenTelemetry"
optional = false
python-versions = ">=3.9"
groups = ["main"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "opentelemetry_instrumentation_threading-0.57b0-py3-none-any.whl", hash = "sha256:adfd64857c8c78d6111cf80552311e1713bad64272dd81abdd61f07b892a161b"},
{file = "opentelemetry_instrumentation_threading-0.57b0.tar.gz", hash = "sha256:06fa4c98d6bfe4670e7532497670ac202db42afa647ff770aedce0e422421c6e"},
@@ -2264,12 +2186,11 @@ wrapt = ">=1.0.0,<2.0.0"
[[package]]
name = "opentelemetry-instrumentation-together"
-version = "0.45.6"
+version = "0.46.1"
description = "OpenTelemetry Together AI instrumentation"
optional = false
python-versions = ">=3.9,<4"
groups = ["main"]
-markers = "platform_python_implementation == \"PyPy\""
files = []
develop = true
@@ -2288,12 +2209,11 @@ url = "../opentelemetry-instrumentation-together"
[[package]]
name = "opentelemetry-instrumentation-transformers"
-version = "0.45.6"
+version = "0.46.1"
description = "OpenTelemetry transformers instrumentation"
optional = false
python-versions = ">=3.9,<4"
groups = ["main"]
-markers = "platform_python_implementation == \"PyPy\""
files = []
develop = true
@@ -2314,7 +2234,6 @@ description = "OpenTelemetry urllib3 instrumentation"
optional = false
python-versions = ">=3.9"
groups = ["main"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "opentelemetry_instrumentation_urllib3-0.57b0-py3-none-any.whl", hash = "sha256:337ecac6df3ff92026b51c64df7dd4a3fff52f2dc96036ea9371670243bf83c6"},
{file = "opentelemetry_instrumentation_urllib3-0.57b0.tar.gz", hash = "sha256:f49d8c3d1d81ae56304a08b14a7f564d250733ed75cd2210ccef815b5af2eea1"},
@@ -2332,12 +2251,11 @@ instruments = ["urllib3 (>=1.0.0,<3.0.0)"]
[[package]]
name = "opentelemetry-instrumentation-vertexai"
-version = "0.45.6"
+version = "0.46.1"
description = "OpenTelemetry Vertex AI instrumentation"
optional = false
python-versions = ">=3.9,<4"
groups = ["main"]
-markers = "platform_python_implementation == \"PyPy\""
files = []
develop = true
@@ -2356,12 +2274,11 @@ url = "../opentelemetry-instrumentation-vertexai"
[[package]]
name = "opentelemetry-instrumentation-watsonx"
-version = "0.45.6"
+version = "0.46.1"
description = "OpenTelemetry IBM Watsonx Instrumentation"
optional = false
python-versions = ">=3.9,<4"
groups = ["main"]
-markers = "platform_python_implementation == \"PyPy\""
files = []
develop = true
@@ -2380,12 +2297,11 @@ url = "../opentelemetry-instrumentation-watsonx"
[[package]]
name = "opentelemetry-instrumentation-weaviate"
-version = "0.45.6"
+version = "0.46.1"
description = "OpenTelemetry Weaviate instrumentation"
optional = false
python-versions = ">=3.9,<4"
groups = ["main"]
-markers = "platform_python_implementation == \"PyPy\""
files = []
develop = true
@@ -2402,6 +2318,29 @@ instruments = []
type = "directory"
url = "../opentelemetry-instrumentation-weaviate"
+[[package]]
+name = "opentelemetry-instrumentation-writer"
+version = "0.0.1"
+description = "OpenTelemetry Writer instrumentation"
+optional = false
+python-versions = ">=3.10,<4"
+groups = ["main"]
+files = []
+develop = true
+
+[package.dependencies]
+opentelemetry-api = "^1.28.0"
+opentelemetry-instrumentation = ">=0.50b0"
+opentelemetry-semantic-conventions = ">=0.50b0"
+opentelemetry-semantic-conventions-ai = ">=0.4.11"
+
+[package.extras]
+instruments = []
+
+[package.source]
+type = "directory"
+url = "../opentelemetry-instrumentation-writer"
+
[[package]]
name = "opentelemetry-proto"
version = "1.36.0"
@@ -2409,7 +2348,6 @@ description = "OpenTelemetry Python Proto"
optional = false
python-versions = ">=3.9"
groups = ["main"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "opentelemetry_proto-1.36.0-py3-none-any.whl", hash = "sha256:151b3bf73a09f94afc658497cf77d45a565606f62ce0c17acb08cd9937ca206e"},
{file = "opentelemetry_proto-1.36.0.tar.gz", hash = "sha256:0f10b3c72f74c91e0764a5ec88fd8f1c368ea5d9c64639fb455e2854ef87dd2f"},
@@ -2425,7 +2363,6 @@ description = "OpenTelemetry Python SDK"
optional = false
python-versions = ">=3.9"
groups = ["main"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "opentelemetry_sdk-1.36.0-py3-none-any.whl", hash = "sha256:19fe048b42e98c5c1ffe85b569b7073576ad4ce0bcb6e9b4c6a39e890a6c45fb"},
{file = "opentelemetry_sdk-1.36.0.tar.gz", hash = "sha256:19c8c81599f51b71670661ff7495c905d8fdf6976e41622d5245b791b06fa581"},
@@ -2443,7 +2380,6 @@ description = "OpenTelemetry Semantic Conventions"
optional = false
python-versions = ">=3.9"
groups = ["main"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "opentelemetry_semantic_conventions-0.57b0-py3-none-any.whl", hash = "sha256:757f7e76293294f124c827e514c2a3144f191ef175b069ce8d1211e1e38e9e78"},
{file = "opentelemetry_semantic_conventions-0.57b0.tar.gz", hash = "sha256:609a4a79c7891b4620d64c7aac6898f872d790d75f22019913a660756f27ff32"},
@@ -2460,7 +2396,6 @@ description = "OpenTelemetry Semantic Conventions Extension for Large Language M
optional = false
python-versions = "<4,>=3.9"
groups = ["main"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "opentelemetry_semantic_conventions_ai-0.4.13-py3-none-any.whl", hash = "sha256:883a30a6bb5deaec0d646912b5f9f6dcbb9f6f72557b73d0f2560bf25d13e2d5"},
{file = "opentelemetry_semantic_conventions_ai-0.4.13.tar.gz", hash = "sha256:94efa9fb4ffac18c45f54a3a338ffeb7eedb7e1bb4d147786e77202e159f0036"},
@@ -2473,7 +2408,6 @@ description = "Web util for OpenTelemetry"
optional = false
python-versions = ">=3.9"
groups = ["main"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "opentelemetry_util_http-0.57b0-py3-none-any.whl", hash = "sha256:e54c0df5543951e471c3d694f85474977cd5765a3b7654398c83bab3d2ffb8e9"},
{file = "opentelemetry_util_http-0.57b0.tar.gz", hash = "sha256:f7417595ead0eb42ed1863ec9b2f839fc740368cd7bbbfc1d0a47bc1ab0aba11"},
@@ -2572,7 +2506,6 @@ description = "Core utilities for Python packages"
optional = false
python-versions = ">=3.8"
groups = ["main", "dev", "test"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "packaging-24.2-py3-none-any.whl", hash = "sha256:09abb1bccd265c01f4a3aa3f7a7db064b36514d2cba19a2f694fe6150451a759"},
{file = "packaging-24.2.tar.gz", hash = "sha256:c228a6dc5e932d346bc5739379109d49e8853dd8223571c7c5b55260edc0b97f"},
@@ -2585,7 +2518,6 @@ description = "Powerful data structures for data analysis, time series, and stat
optional = false
python-versions = ">=3.9"
groups = ["test"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "pandas-2.3.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:22c2e866f7209ebc3a8f08d75766566aae02bcc91d196935a1d9e59c7b990ac9"},
{file = "pandas-2.3.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:3583d348546201aff730c8c47e49bc159833f971c2899d6097bce68b9112a4f1"},
@@ -2673,7 +2605,6 @@ description = "plugin and hook calling mechanisms for python"
optional = false
python-versions = ">=3.8"
groups = ["dev", "test"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "pluggy-1.5.0-py3-none-any.whl", hash = "sha256:44e1ad92c8ca002de6377e165f3e0f1be63266ab4d554740532335b9d75ea669"},
{file = "pluggy-1.5.0.tar.gz", hash = "sha256:2cffa88e94fdc978c4c574f15f9e59b7f4201d439195c3715ca9e2486f1d0cf1"},
@@ -2690,7 +2621,6 @@ description = "Integrate PostHog into any python application."
optional = false
python-versions = "*"
groups = ["main"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "posthog-3.8.3-py2.py3-none-any.whl", hash = "sha256:7215c4d7649b0c87905b42f460403311564996d776ab48d39852f46539a50f22"},
{file = "posthog-3.8.3.tar.gz", hash = "sha256:263df03ea312d4b47a3d5ea393fdb22ff2ed78140d5ce9af9dd0618ae245a44b"},
@@ -2716,7 +2646,6 @@ description = "Accelerated property cache"
optional = false
python-versions = ">=3.9"
groups = ["main", "test"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "propcache-0.2.1-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:6b3f39a85d671436ee3d12c017f8fdea38509e4f25b28eb25877293c98c243f6"},
{file = "propcache-0.2.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:39d51fbe4285d5db5d92a929e3e21536ea3dd43732c5b177c7ef03f918dff9f2"},
@@ -2809,7 +2738,6 @@ description = ""
optional = false
python-versions = ">=3.8"
groups = ["main"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "protobuf-5.29.3-cp310-abi3-win32.whl", hash = "sha256:3ea51771449e1035f26069c4c7fd51fba990d07bc55ba80701c78f886bf9c888"},
{file = "protobuf-5.29.3-cp310-abi3-win_amd64.whl", hash = "sha256:a4fa6f80816a9a0678429e84973f2f98cbc218cca434abe8db2ad0bffc98503a"},
@@ -2831,7 +2759,6 @@ description = "Python style guide checker"
optional = false
python-versions = ">=3.8"
groups = ["dev"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "pycodestyle-2.11.1-py2.py3-none-any.whl", hash = "sha256:44fe31000b2d866f2e41841b18528a505fbd7fef9017b04eff4e2648a0fadc67"},
{file = "pycodestyle-2.11.1.tar.gz", hash = "sha256:41ba0e7afc9752dfb53ced5489e89f8186be00e599e712660695b7a75ff2663f"},
@@ -2844,7 +2771,6 @@ description = "Data validation using Python type hints"
optional = false
python-versions = ">=3.8"
groups = ["main", "test"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "pydantic-2.10.5-py3-none-any.whl", hash = "sha256:4dd4e322dbe55472cb7ca7e73f4b63574eecccf2835ffa2af9021ce113c83c53"},
{file = "pydantic-2.10.5.tar.gz", hash = "sha256:278b38dbbaec562011d659ee05f63346951b3a248a6f3642e1bc68894ea2b4ff"},
@@ -2866,7 +2792,6 @@ description = "Core functionality for Pydantic validation and serialization"
optional = false
python-versions = ">=3.8"
groups = ["main", "test"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "pydantic_core-2.27.2-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:2d367ca20b2f14095a8f4fa1210f5a7b78b8a20009ecced6b12818f455b1e9fa"},
{file = "pydantic_core-2.27.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:491a2b73db93fab69731eaee494f320faa4e093dbed776be1a829c2eb222c34c"},
@@ -2980,7 +2905,6 @@ description = "passive checker of Python programs"
optional = false
python-versions = ">=3.8"
groups = ["dev"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "pyflakes-3.2.0-py2.py3-none-any.whl", hash = "sha256:84b5be138a2dfbb40689ca07e2152deb896a65c3a3e24c251c5c62489568074a"},
{file = "pyflakes-3.2.0.tar.gz", hash = "sha256:1c61603ff154621fb2a9172037d84dca3500def8c8b630657d1701f026f8af3f"},
@@ -2993,7 +2917,6 @@ description = "pytest: simple powerful testing with Python"
optional = false
python-versions = ">=3.8"
groups = ["dev", "test"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "pytest-8.3.4-py3-none-any.whl", hash = "sha256:50e16d954148559c9a74109af1eaf0c945ba2d8f30f0a3d3335edde19788b6f6"},
{file = "pytest-8.3.4.tar.gz", hash = "sha256:965370d062bce11e73868e0335abac31b4d3de0e82f4007408d242b4f8610761"},
@@ -3017,7 +2940,6 @@ description = "Pytest support for asyncio"
optional = false
python-versions = ">=3.8"
groups = ["test"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "pytest_asyncio-0.23.8-py3-none-any.whl", hash = "sha256:50265d892689a5faefb84df80819d1ecef566eb3549cf915dfb33569359d1ce2"},
{file = "pytest_asyncio-0.23.8.tar.gz", hash = "sha256:759b10b33a6dc61cce40a8bd5205e302978bbbcc00e279a8b61d9a6a3c82e4d3"},
@@ -3037,7 +2959,6 @@ description = "A pytest plugin that allows you recording of network interactions
optional = false
python-versions = ">=3.7"
groups = ["test"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "pytest_recording-0.13.2-py3-none-any.whl", hash = "sha256:3820fe5743d1ac46e807989e11d073cb776a60bdc544cf43ebca454051b22d13"},
{file = "pytest_recording-0.13.2.tar.gz", hash = "sha256:000c3babbb466681457fd65b723427c1779a0c6c17d9e381c3142a701e124877"},
@@ -3058,7 +2979,6 @@ description = "pytest-sugar is a plugin for pytest that changes the default look
optional = false
python-versions = "*"
groups = ["dev"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "pytest-sugar-1.0.0.tar.gz", hash = "sha256:6422e83258f5b0c04ce7c632176c7732cab5fdb909cb39cca5c9139f81276c0a"},
{file = "pytest_sugar-1.0.0-py3-none-any.whl", hash = "sha256:70ebcd8fc5795dc457ff8b69d266a4e2e8a74ae0c3edc749381c64b5246c8dfd"},
@@ -3079,7 +2999,6 @@ description = "Extensions to the standard Python datetime module"
optional = false
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7"
groups = ["main", "test"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"},
{file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"},
@@ -3095,7 +3014,6 @@ description = "World timezone definitions, modern and historical"
optional = false
python-versions = "*"
groups = ["test"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "pytz-2025.2-py2.py3-none-any.whl", hash = "sha256:5ddf76296dd8c44c26eb8f4b6f35488f3ccbf6fbbd7adee0b7262d43f0ec2f00"},
{file = "pytz-2025.2.tar.gz", hash = "sha256:360b9e3dbb49a209c21ad61809c7fb453643e048b38924c765813546746e81c3"},
@@ -3108,7 +3026,6 @@ description = "YAML parser and emitter for Python"
optional = false
python-versions = ">=3.8"
groups = ["main", "test"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "PyYAML-6.0.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:0a9a2848a5b7feac301353437eb7d5957887edbf81d56e903999a75a3d743086"},
{file = "PyYAML-6.0.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:29717114e51c84ddfba879543fb232a6ed60086602313ca38cce623c1d62cfbf"},
@@ -3172,7 +3089,6 @@ description = "Alternative regular expression module, to replace re."
optional = false
python-versions = ">=3.8"
groups = ["test"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "regex-2024.11.6-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:ff590880083d60acc0433f9c3f713c51f7ac6ebb9adf889c79a261ecf541aa91"},
{file = "regex-2024.11.6-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:658f90550f38270639e83ce492f27d2c8d2cd63805c65a13a14d36ca126753f0"},
@@ -3277,7 +3193,6 @@ description = "Python HTTP for Humans."
optional = false
python-versions = ">=3.8"
groups = ["main", "test"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "requests-2.32.3-py3-none-any.whl", hash = "sha256:70761cfe03c773ceb22aa2f671b4757976145175cdfca038c02654d061d6dcc6"},
{file = "requests-2.32.3.tar.gz", hash = "sha256:55365417734eb18255590a9ff9eb97e9e1da868d4ccd6402399eaf68af20a760"},
@@ -3300,7 +3215,6 @@ description = "A utility belt for advanced users of python-requests"
optional = false
python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*"
groups = ["test"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "requests-toolbelt-1.0.0.tar.gz", hash = "sha256:7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6"},
{file = "requests_toolbelt-1.0.0-py2.py3-none-any.whl", hash = "sha256:cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06"},
@@ -3316,7 +3230,6 @@ description = "Python 2 and 3 compatibility utilities"
optional = false
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7"
groups = ["main", "test"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "six-1.17.0-py2.py3-none-any.whl", hash = "sha256:4721f391ed90541fddacab5acf947aa0d3dc7d27b2e1e8eda2be8970586c3274"},
{file = "six-1.17.0.tar.gz", hash = "sha256:ff70335d468e7eb6ec65b95b99d3a2836546063f63acc5171de367e834932a81"},
@@ -3329,7 +3242,6 @@ description = "Sniff out which async library your code is running under"
optional = false
python-versions = ">=3.7"
groups = ["main", "test"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "sniffio-1.3.1-py3-none-any.whl", hash = "sha256:2f6da418d1f1e0fddd844478f41680e794e6051915791a034ff65e5f100525a2"},
{file = "sniffio-1.3.1.tar.gz", hash = "sha256:f4324edc670a0f49750a81b895f35c3adb843cca46f0530f79fc1babb23789dc"},
@@ -3342,7 +3254,6 @@ description = "Database Abstraction Library"
optional = false
python-versions = ">=3.7"
groups = ["test"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "SQLAlchemy-2.0.37-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:da36c3b0e891808a7542c5c89f224520b9a16c7f5e4d6a1156955605e54aef0e"},
{file = "SQLAlchemy-2.0.37-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e7402ff96e2b073a98ef6d6142796426d705addd27b9d26c3b32dbaa06d7d069"},
@@ -3439,7 +3350,6 @@ description = "Retry code until it succeeds"
optional = false
python-versions = ">=3.8"
groups = ["main", "test"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "tenacity-8.5.0-py3-none-any.whl", hash = "sha256:b594c2a5945830c267ce6b79a166228323ed52718f30302c1359836112346687"},
{file = "tenacity-8.5.0.tar.gz", hash = "sha256:8bc6c0c8a09b31e6cad13c47afbed1a567518250a9a171418582ed8d9c20ca78"},
@@ -3456,7 +3366,6 @@ description = "ANSI color formatting for output in terminal"
optional = false
python-versions = ">=3.9"
groups = ["dev"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "termcolor-2.5.0-py3-none-any.whl", hash = "sha256:37b17b5fc1e604945c2642c872a3764b5d547a48009871aea3edd3afa180afb8"},
{file = "termcolor-2.5.0.tar.gz", hash = "sha256:998d8d27da6d48442e8e1f016119076b690d962507531df4890fcd2db2ef8a6f"},
@@ -3472,7 +3381,6 @@ description = "tiktoken is a fast BPE tokeniser for use with OpenAI's models"
optional = false
python-versions = ">=3.9"
groups = ["test"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "tiktoken-0.8.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b07e33283463089c81ef1467180e3e00ab00d46c2c4bbcef0acab5f771d6695e"},
{file = "tiktoken-0.8.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9269348cb650726f44dd3bbb3f9110ac19a8dcc8f54949ad3ef652ca22a38e21"},
@@ -3521,7 +3429,6 @@ description = ""
optional = false
python-versions = ">=3.7"
groups = ["main", "test"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "tokenizers-0.21.0-cp39-abi3-macosx_10_12_x86_64.whl", hash = "sha256:3c4c93eae637e7d2aaae3d376f06085164e1660f89304c0ab2b1d08a406636b2"},
{file = "tokenizers-0.21.0-cp39-abi3-macosx_11_0_arm64.whl", hash = "sha256:f53ea537c925422a2e0e92a24cce96f6bc5046bbef24a1652a5edc8ba975f62e"},
@@ -3555,7 +3462,7 @@ description = "A lil' TOML parser"
optional = false
python-versions = ">=3.8"
groups = ["dev", "test"]
-markers = "python_version < \"3.11\" and platform_python_implementation == \"PyPy\" or python_version == \"3.10\""
+markers = "python_version == \"3.10\""
files = [
{file = "tomli-2.2.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:678e4fa69e4575eb77d103de3df8a895e1591b48e740211bd1067378c69e8249"},
{file = "tomli-2.2.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:023aa114dd824ade0100497eb2318602af309e5a55595f76b626d6d9f3b7b0a6"},
@@ -3598,7 +3505,6 @@ description = "Fast, Extensible Progress Meter"
optional = false
python-versions = ">=3.7"
groups = ["main", "test"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "tqdm-4.67.1-py3-none-any.whl", hash = "sha256:26445eca388f82e72884e0d580d5464cd801a3ea01e63e5601bdff9ba6a48de2"},
{file = "tqdm-4.67.1.tar.gz", hash = "sha256:f8aef9c52c08c13a65f30ea34f4e5aac3fd1a34959879d7e59e63027286627f2"},
@@ -3621,7 +3527,6 @@ description = "Backported and Experimental Type Hints for Python 3.8+"
optional = false
python-versions = ">=3.8"
groups = ["main", "test"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "typing_extensions-4.12.2-py3-none-any.whl", hash = "sha256:04e5ca0351e0f3f85c6853954072df659d0d13fac324d0072316b67d7794700d"},
{file = "typing_extensions-4.12.2.tar.gz", hash = "sha256:1a7ead55c7e559dd4dee8856e3a88b41225abfe1ce8df57b7c13915fe121ffb8"},
@@ -3634,7 +3539,6 @@ description = "Provider of IANA time zone data"
optional = false
python-versions = ">=2"
groups = ["test"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "tzdata-2025.2-py2.py3-none-any.whl", hash = "sha256:1a403fada01ff9221ca8044d701868fa132215d84beb92242d9acd2147f667a8"},
{file = "tzdata-2025.2.tar.gz", hash = "sha256:b60a638fcc0daffadf82fe0f57e53d06bdec2f36c4df66280ae79bce6bd6f2b9"},
@@ -3684,7 +3588,6 @@ description = "Automatically mock your HTTP interactions to simplify and speed u
optional = false
python-versions = ">=3.9"
groups = ["test"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "vcrpy-7.0.0-py2.py3-none-any.whl", hash = "sha256:55791e26c18daa363435054d8b35bd41a4ac441b6676167635d1b37a71dbe124"},
{file = "vcrpy-7.0.0.tar.gz", hash = "sha256:176391ad0425edde1680c5b20738ea3dc7fb942520a48d2993448050986b3a50"},
@@ -3709,7 +3612,6 @@ description = "Module for decorators, wrappers and monkey patching."
optional = false
python-versions = ">=3.8"
groups = ["main", "test"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "wrapt-1.17.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:3d57c572081fed831ad2d26fd430d565b76aa277ed1d30ff4d40670b1c0dd984"},
{file = "wrapt-1.17.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:b5e251054542ae57ac7f3fba5d10bfff615b6c2fb09abeb37d2f1463f841ae22"},
@@ -3799,7 +3701,6 @@ description = "Yet another URL library"
optional = false
python-versions = ">=3.9"
groups = ["main", "test"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "yarl-1.18.3-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:7df647e8edd71f000a5208fe6ff8c382a1de8edfbccdbbfe649d263de07d8c34"},
{file = "yarl-1.18.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:c69697d3adff5aa4f874b19c0e4ed65180ceed6318ec856ebc423aa5850d84f7"},
@@ -3897,7 +3798,6 @@ description = "Backport of pathlib-compatible object wrapper for zip files"
optional = false
python-versions = ">=3.9"
groups = ["main"]
-markers = "platform_python_implementation == \"PyPy\""
files = [
{file = "zipp-3.21.0-py3-none-any.whl", hash = "sha256:ac1bbe05fd2991f160ebce24ffbac5f6d11d83dc90891255885223d42b3cd931"},
{file = "zipp-3.21.0.tar.gz", hash = "sha256:2c9958f6430a2040341a52eb608ed6dd93ef4392e02ffe219417c1b28b5dd1f4"},
@@ -3917,4 +3817,4 @@ datasets = []
[metadata]
lock-version = "2.1"
python-versions = ">=3.10,<4"
-content-hash = "dc358c5f58b8e7d291750aba083354acefbee6bd7fc0dd6aeacf57165a836767"
+content-hash = "1df741fa5c87ef961c0729efa70e772d677163559b6b3c91f593086eb911abc8"
diff --git a/packages/traceloop-sdk/pyproject.toml b/packages/traceloop-sdk/pyproject.toml
index 167c1c1e9b..d9e0f8567c 100644
--- a/packages/traceloop-sdk/pyproject.toml
+++ b/packages/traceloop-sdk/pyproject.toml
@@ -60,6 +60,7 @@ opentelemetry-instrumentation-replicate = { path = "../opentelemetry-instrumenta
opentelemetry-instrumentation-vertexai = { path = "../opentelemetry-instrumentation-vertexai", develop = true }
opentelemetry-instrumentation-watsonx = { path = "../opentelemetry-instrumentation-watsonx", develop = true }
opentelemetry-instrumentation-weaviate = { path = "../opentelemetry-instrumentation-weaviate", develop = true }
+opentelemetry-instrumentation-writer = { path = "../opentelemetry-instrumentation-writer", develop = true }
opentelemetry-instrumentation-alephalpha = { path = "../opentelemetry-instrumentation-alephalpha", develop = true }
opentelemetry-instrumentation-marqo = { path = "../opentelemetry-instrumentation-marqo", develop = true }
opentelemetry-instrumentation-groq = { path = "../opentelemetry-instrumentation-groq", develop = true }
diff --git a/packages/traceloop-sdk/traceloop/sdk/instruments.py b/packages/traceloop-sdk/traceloop/sdk/instruments.py
index aded2e0dfa..fb8ddd4e28 100644
--- a/packages/traceloop-sdk/traceloop/sdk/instruments.py
+++ b/packages/traceloop-sdk/traceloop/sdk/instruments.py
@@ -34,3 +34,4 @@ class Instruments(Enum):
VERTEXAI = "vertexai"
WATSONX = "watsonx"
WEAVIATE = "weaviate"
+ WRITER = "writer"
diff --git a/packages/traceloop-sdk/traceloop/sdk/tracing/tracing.py b/packages/traceloop-sdk/traceloop/sdk/tracing/tracing.py
index 301e8212e1..bebd21bc20 100644
--- a/packages/traceloop-sdk/traceloop/sdk/tracing/tracing.py
+++ b/packages/traceloop-sdk/traceloop/sdk/tracing/tracing.py
@@ -538,6 +538,9 @@ def init_instrumentations(
elif instrument == Instruments.WEAVIATE:
if init_weaviate_instrumentor():
instrument_set = True
+ elif instrument == Instruments.WRITER:
+ if init_writer_instrumentor():
+ instrument_set = True
else:
print(Fore.RED + f"Warning: {instrument} instrumentation does not exist.")
print(
@@ -1000,6 +1003,24 @@ def init_weaviate_instrumentor():
return False
+def init_writer_instrumentor():
+ try:
+ if is_package_installed("writer-sdk"):
+ Telemetry().capture("instrumentation:writer:init")
+ from opentelemetry.instrumentation.writer import WriterInstrumentor
+
+ instrumentor = WriterInstrumentor(
+ exception_logger=lambda e: Telemetry().log_exception(e),
+ )
+ if not instrumentor.is_instrumented_by_opentelemetry:
+ instrumentor.instrument()
+ return True
+ except Exception as e:
+ logging.error(f"Error initializing Writer instrumentor: {e}")
+ Telemetry().log_exception(e)
+ return False
+
+
def init_alephalpha_instrumentor():
try:
if is_package_installed("aleph_alpha_client"):