diff --git a/ddtrace/contrib/internal/openai/_endpoint_hooks.py b/ddtrace/contrib/internal/openai/_endpoint_hooks.py index 43ab5fb7e79..416ce25d4d9 100644 --- a/ddtrace/contrib/internal/openai/_endpoint_hooks.py +++ b/ddtrace/contrib/internal/openai/_endpoint_hooks.py @@ -7,7 +7,6 @@ from ddtrace.contrib.internal.openai.utils import _is_generator from ddtrace.contrib.internal.openai.utils import _loop_handler from ddtrace.contrib.internal.openai.utils import _process_finished_stream -from ddtrace.contrib.internal.openai.utils import _tag_tool_calls from ddtrace.internal.utils.version import parse_version @@ -166,19 +165,7 @@ class _CompletionHook(_BaseCompletionHook): "model", "engine", "suffix", - "max_tokens", - "temperature", - "top_p", - "n", - "stream", - "logprobs", "echo", - "stop", - "presence_penalty", - "frequency_penalty", - "best_of", - "logit_bias", - "user", ) _response_attrs = ("created", "id", "model") ENDPOINT_NAME = "completions" @@ -187,12 +174,6 @@ class _CompletionHook(_BaseCompletionHook): def _record_request(self, pin, integration, instance, span, args, kwargs): super()._record_request(pin, integration, instance, span, args, kwargs) - if integration.is_pc_sampled_span(span): - prompt = kwargs.get("prompt", "") - if isinstance(prompt, str): - prompt = [prompt] - for idx, p in enumerate(prompt): - span.set_tag_str("openai.request.prompt.%d" % idx, integration.trunc(str(p))) def _record_response(self, pin, integration, span, args, kwargs, resp, error): resp = super()._record_response(pin, integration, span, args, kwargs, resp, error) @@ -204,11 +185,6 @@ def _record_response(self, pin, integration, span, args, kwargs, resp, error): integration.llmobs_set_tags(span, args=[], kwargs=kwargs, response=resp, operation="completion") if not resp: return - for choice in resp.choices: - span.set_tag_str("openai.response.choices.%d.finish_reason" % choice.index, str(choice.finish_reason)) - if integration.is_pc_sampled_span(span): - span.set_tag_str("openai.response.choices.%d.text" % choice.index, integration.trunc(choice.text)) - integration.record_usage(span, resp.usage) return resp @@ -221,16 +197,6 @@ class _ChatCompletionHook(_BaseCompletionHook): _request_kwarg_params = ( "model", "engine", - "temperature", - "top_p", - "n", - "stream", - "stop", - "max_tokens", - "presence_penalty", - "frequency_penalty", - "logit_bias", - "user", ) _response_attrs = ("created", "id", "model") ENDPOINT_NAME = "chat/completions" @@ -239,18 +205,6 @@ class _ChatCompletionHook(_BaseCompletionHook): def _record_request(self, pin, integration, instance, span, args, kwargs): super()._record_request(pin, integration, instance, span, args, kwargs) - for idx, m in enumerate(kwargs.get("messages", [])): - role = getattr(m, "role", "") - name = getattr(m, "name", "") - content = getattr(m, "content", "") - if isinstance(m, dict): - content = m.get("content", "") - role = m.get("role", "") - name = m.get("name", "") - if integration.is_pc_sampled_span(span): - span.set_tag_str("openai.request.messages.%d.content" % idx, integration.trunc(str(content))) - span.set_tag_str("openai.request.messages.%d.role" % idx, str(role)) - span.set_tag_str("openai.request.messages.%d.name" % idx, str(name)) if parse_version(OPENAI_VERSION) >= (1, 26) and kwargs.get("stream"): stream_options = kwargs.get("stream_options", {}) if not isinstance(stream_options, dict): @@ -270,21 +224,6 @@ def _record_response(self, pin, integration, span, args, kwargs, resp, error): if kwargs.get("stream") and error is None: return self._handle_streamed_response(integration, span, kwargs, resp, operation_type="chat") integration.llmobs_set_tags(span, args=[], kwargs=kwargs, response=resp, operation="chat") - for choice in resp.choices: - idx = choice.index - finish_reason = getattr(choice, "finish_reason", None) - message = choice.message - span.set_tag_str("openai.response.choices.%d.finish_reason" % idx, str(finish_reason)) - span.set_tag_str("openai.response.choices.%d.message.role" % idx, choice.message.role) - if integration.is_pc_sampled_span(span): - span.set_tag_str( - "openai.response.choices.%d.message.content" % idx, integration.trunc(message.content or "") - ) - if getattr(message, "function_call", None): - _tag_tool_calls(integration, span, [message.function_call], idx) - if getattr(message, "tool_calls", None): - _tag_tool_calls(integration, span, message.tool_calls, idx) - integration.record_usage(span, resp.usage) return resp @@ -294,7 +233,7 @@ class _ChatCompletionWithRawResponseHook(_ChatCompletionHook): class _EmbeddingHook(_EndpointHook): _request_arg_params = ("api_key", "api_base", "api_type", "request_id", "api_version", "organization") - _request_kwarg_params = ("model", "engine", "user") + _request_kwarg_params = ("model", "engine") _response_attrs = ("model",) ENDPOINT_NAME = "embeddings" HTTP_METHOD_TYPE = "POST" @@ -306,21 +245,12 @@ def _record_request(self, pin, integration, instance, span, args, kwargs): manually set them in _pre_response(). """ super()._record_request(pin, integration, instance, span, args, kwargs) - embedding_input = kwargs.get("input", "") - if integration.is_pc_sampled_span(span): - if isinstance(embedding_input, str) or isinstance(embedding_input[0], int): - embedding_input = [embedding_input] - for idx, inp in enumerate(embedding_input): - span.set_tag_str("openai.request.input.%d" % idx, integration.trunc(str(inp))) def _record_response(self, pin, integration, span, args, kwargs, resp, error): resp = super()._record_response(pin, integration, span, args, kwargs, resp, error) integration.llmobs_set_tags(span, args=[], kwargs=kwargs, response=resp, operation="embedding") if not resp: return - span.set_metric("openai.response.embeddings_count", len(resp.data)) - span.set_metric("openai.response.embedding-length", len(resp.data[0].embedding)) - integration.record_usage(span, resp.usage) return resp @@ -729,20 +659,10 @@ class _ResponseHook(_BaseCompletionHook): _request_kwarg_params = ( "model", "include", - "instructions", - "max_output_tokens", "metadata", - "parallel_tool_calls", "previous_response_id", - "reasoning", "service_tier", "store", - "stream", - "temperature", - "text", - "tool_choice", - "tools", - "top_p", "truncation", "user", ) @@ -759,5 +679,4 @@ def _record_response(self, pin, integration, span, args, kwargs, resp, error): if kwargs.get("stream") and error is None: return self._handle_streamed_response(integration, span, kwargs, resp, operation_type="response") integration.llmobs_set_tags(span, args=[], kwargs=kwargs, response=resp, operation="response") - integration.record_usage(span, resp.usage) return resp diff --git a/ddtrace/contrib/internal/openai/utils.py b/ddtrace/contrib/internal/openai/utils.py index 98b9b51a823..09ded1e1e7f 100644 --- a/ddtrace/contrib/internal/openai/utils.py +++ b/ddtrace/contrib/internal/openai/utils.py @@ -301,9 +301,9 @@ def _process_finished_stream(integration, span, kwargs, streamed_chunks, operati formatted_completions = [ openai_construct_message_from_streamed_chunks(choice) for choice in streamed_chunks ] - if integration.is_pc_sampled_span(span) and not operation_type == "response": - _tag_streamed_completions(integration, span, formatted_completions) - _set_token_metrics_from_streamed_response(span, formatted_completions, prompts, request_messages, kwargs) + _set_token_metrics_from_streamed_response( + span, integration, formatted_completions, prompts, request_messages, kwargs + ) integration.llmobs_set_tags( span, args=[], kwargs=kwargs, response=formatted_completions, operation=operation_type ) @@ -311,29 +311,7 @@ def _process_finished_stream(integration, span, kwargs, streamed_chunks, operati log.warning("Error processing streamed completion/chat response.", exc_info=True) -def _tag_streamed_completions(integration, span, completions_or_messages=None): - """Tagging logic for streamed completions and chat completions.""" - for idx, choice in enumerate(completions_or_messages): - text = choice.get("text", "") - if text: - span.set_tag_str("openai.response.choices.%d.text" % idx, integration.trunc(str(text))) - message_role = choice.get("role", "") - if message_role: - span.set_tag_str("openai.response.choices.%d.message.role" % idx, str(message_role)) - message_content = choice.get("content", "") - if message_content: - span.set_tag_str( - "openai.response.choices.%d.message.content" % idx, integration.trunc(str(message_content)) - ) - tool_calls = choice.get("tool_calls", []) - if tool_calls: - _tag_tool_calls(integration, span, tool_calls, idx) - finish_reason = choice.get("finish_reason", "") - if finish_reason: - span.set_tag_str("openai.response.choices.%d.finish_reason" % idx, str(finish_reason)) - - -def _set_token_metrics_from_streamed_response(span, response, prompts, messages, kwargs): +def _set_token_metrics_from_streamed_response(span, integration, response, prompts, messages, kwargs): """Set token span metrics on streamed chat/completion/response. If token usage is not available in the response, compute/estimate the token counts. """ @@ -355,11 +333,15 @@ def _set_token_metrics_from_streamed_response(span, response, prompts, messages, estimated, prompt_tokens = _compute_prompt_tokens(model_name, prompts, messages) estimated, completion_tokens = _compute_completion_tokens(response, model_name) total_tokens = prompt_tokens + completion_tokens - span.set_metric("openai.response.usage.prompt_tokens", prompt_tokens) - span.set_metric("openai.request.prompt_tokens_estimated", int(estimated)) - span.set_metric("openai.response.usage.completion_tokens", completion_tokens) - span.set_metric("openai.response.completion_tokens_estimated", int(estimated)) - span.set_metric("openai.response.usage.total_tokens", total_tokens) + + integration.llmobs_record_usage( + span, + { + "prompt_tokens": prompt_tokens, + "completion_tokens": completion_tokens, + "total_tokens": total_tokens, + }, + ) def _compute_prompt_tokens(model_name, prompts=None, messages=None): @@ -392,27 +374,3 @@ def _compute_completion_tokens(completions_or_messages, model_name): estimated, completion_tokens = _compute_token_count(content, model_name) num_completion_tokens += completion_tokens return estimated, num_completion_tokens - - -def _tag_tool_calls(integration, span, tool_calls, choice_idx): - # type: (...) -> None - """ - Tagging logic if function_call or tool_calls are provided in the chat response. - Notes: - - since function calls are deprecated and will be replaced with tool calls, apply the same tagging logic/schema. - - streamed responses are processed and collected as dictionaries rather than objects, - so we need to handle both ways of accessing values. - """ - for idy, tool_call in enumerate(tool_calls): - if hasattr(tool_call, "function"): - # tool_call is further nested in a "function" object - tool_call = tool_call.function - function_arguments = _get_attr(tool_call, "arguments", "") - function_name = _get_attr(tool_call, "name", "") - span.set_tag_str( - "openai.response.choices.%d.message.tool_calls.%d.arguments" % (choice_idx, idy), - integration.trunc(str(function_arguments)), - ) - span.set_tag_str( - "openai.response.choices.%d.message.tool_calls.%d.name" % (choice_idx, idy), str(function_name) - ) diff --git a/ddtrace/llmobs/_integrations/openai.py b/ddtrace/llmobs/_integrations/openai.py index 3e775bd1270..7d98837d929 100644 --- a/ddtrace/llmobs/_integrations/openai.py +++ b/ddtrace/llmobs/_integrations/openai.py @@ -18,7 +18,6 @@ from ddtrace.llmobs._constants import SPAN_KIND from ddtrace.llmobs._constants import TOTAL_TOKENS_METRIC_KEY from ddtrace.llmobs._integrations.base import BaseLLMIntegration -from ddtrace.llmobs._integrations.utils import get_llmobs_metrics_tags from ddtrace.llmobs._integrations.utils import openai_set_meta_tags_from_chat from ddtrace.llmobs._integrations.utils import openai_set_meta_tags_from_completion from ddtrace.llmobs._integrations.utils import openai_set_meta_tags_from_response @@ -96,14 +95,29 @@ def _is_provider(span, provider): return False return provider.lower() in base_url.lower() - def record_usage(self, span: Span, usage: Dict[str, Any]) -> None: + def llmobs_record_usage(self, span: Span, usage: Dict[str, Any]) -> None: if not usage: return - for token_type in ("prompt", "completion", "output", "input", "total"): - num_tokens = getattr(usage, token_type + "_tokens", None) - if not num_tokens: - continue - span.set_metric("openai.response.usage.%s_tokens" % token_type, num_tokens) + + prompt_tokens = _get_attr(usage, "prompt_tokens", 0) + completion_tokens = _get_attr(usage, "completion_tokens", 0) + input_tokens = _get_attr(usage, "input_tokens", 0) + output_tokens = _get_attr(usage, "output_tokens", 0) + + input_tokens = prompt_tokens or input_tokens + output_tokens = completion_tokens or output_tokens + + token_metrics = { + INPUT_TOKENS_METRIC_KEY: input_tokens, + OUTPUT_TOKENS_METRIC_KEY: output_tokens, + TOTAL_TOKENS_METRIC_KEY: input_tokens + output_tokens, + } + + span._set_ctx_items( + { + METRICS: token_metrics, + } + ) def _llmobs_set_tags( self, @@ -133,7 +147,7 @@ def _llmobs_set_tags( elif operation == "response": openai_set_meta_tags_from_response(span, kwargs, response) update_proxy_workflow_input_output_value(span, span_kind) - metrics = self._extract_llmobs_metrics_tags(span, response, span_kind) + metrics = self._extract_llmobs_metrics_tags(span, response, span_kind) or span._get_ctx_item(METRICS) span._set_ctx_items( {SPAN_KIND: span_kind, MODEL_NAME: model_name or "", MODEL_PROVIDER: model_provider, METRICS: metrics} ) @@ -164,7 +178,7 @@ def _llmobs_set_meta_tags_from_embedding(span: Span, kwargs: Dict[str, Any], res span._set_ctx_item(OUTPUT_VALUE, "[{} embedding(s) returned]".format(len(resp.data))) @staticmethod - def _extract_llmobs_metrics_tags(span: Span, resp: Any, span_kind: str) -> Dict[str, Any]: + def _extract_llmobs_metrics_tags(span: Span, resp: Any, span_kind: str) -> Optional[Dict[str, Any]]: """Extract metrics from a chat/completion and set them as a temporary "_ml_obs.metrics" tag.""" token_usage = _get_attr(resp, "usage", None) if token_usage is not None and span_kind != "workflow": @@ -181,7 +195,7 @@ def _extract_llmobs_metrics_tags(span: Span, resp: Any, span_kind: str) -> Dict[ OUTPUT_TOKENS_METRIC_KEY: output_tokens, TOTAL_TOKENS_METRIC_KEY: input_tokens + output_tokens, } - return get_llmobs_metrics_tags("openai", span) + return None def _get_base_url(self, **kwargs: Dict[str, Any]) -> Optional[str]: instance = kwargs.get("instance") diff --git a/releasenotes/notes/remove-io-data-from-apm-span-openai-integration-81f3ae914a5d2faf.yaml b/releasenotes/notes/remove-io-data-from-apm-span-openai-integration-81f3ae914a5d2faf.yaml new file mode 100644 index 00000000000..b6c7840f791 --- /dev/null +++ b/releasenotes/notes/remove-io-data-from-apm-span-openai-integration-81f3ae914a5d2faf.yaml @@ -0,0 +1,3 @@ +other: + - | + openai: Removes the IO data from the APM spans for OpenAI LLM requests and responses, which is duplicated in the LLM Observability span. \ No newline at end of file diff --git a/tests/contrib/openai/test_openai_v1.py b/tests/contrib/openai/test_openai_v1.py index 27b909b22f4..aca0c0c77bb 100644 --- a/tests/contrib/openai/test_openai_v1.py +++ b/tests/contrib/openai/test_openai_v1.py @@ -4,7 +4,6 @@ import openai as openai_module import pytest -import ddtrace from ddtrace.contrib.internal.openai.utils import _est_tokens from ddtrace.internal.utils.version import parse_version from tests.contrib.openai.utils import chat_completion_custom_functions @@ -786,37 +785,6 @@ def test_chat_completion_stream(openai, openai_vcr, snapshot_tracer): _ = [c for c in resp] -@pytest.mark.skipif( - parse_version(openai_module.version.VERSION) < (1, 26), reason="Stream options only available openai >= 1.26" -) -def test_chat_completion_stream_explicit_no_tokens(openai, openai_vcr, mock_tracer): - """Assert that streamed token chunk extraction logic is avoided if explicitly set to False by the user.""" - with openai_vcr.use_cassette("chat_completion_streamed.yaml"): - with mock.patch("ddtrace.contrib.internal.openai.utils.encoding_for_model", create=True) as mock_encoding: - mock_encoding.return_value.encode.side_effect = lambda x: [1, 2, 3, 4, 5, 6, 7, 8] - expected_completion = "The Los Angeles Dodgers won the World Series in 2020." - client = openai.OpenAI() - resp = client.chat.completions.create( - model="gpt-3.5-turbo", - messages=[ - {"role": "user", "content": "Who won the world series in 2020?"}, - ], - stream=True, - stream_options={"include_usage": False}, - user="ddtrace-test", - n=None, - ) - chunks = [c for c in resp] - assert len(chunks) == 15 - completion = "".join([c.choices[0].delta.content for c in chunks if c.choices[0].delta.content is not None]) - assert completion == expected_completion - - span = mock_tracer.pop_traces()[0][0] - assert span.get_metric("openai.response.usage.prompt_tokens") == 8 - assert span.get_metric("openai.response.usage.completion_tokens") is not None - assert span.get_metric("openai.response.usage.total_tokens") is not None - - @pytest.mark.skipif( parse_version(openai_module.version.VERSION) < (1, 26, 0), reason="Streamed tokens available in 1.26.0+" ) @@ -942,122 +910,6 @@ async def task(): assert err == b"" -@pytest.mark.parametrize( - "ddtrace_config_openai", - [dict(span_prompt_completion_sample_rate=r) for r in [0, 0.25, 0.75, 1]], -) -def test_completion_sample(openai, openai_vcr, ddtrace_config_openai, mock_tracer): - """Test functionality for DD_OPENAI_SPAN_PROMPT_COMPLETION_SAMPLE_RATE for completions endpoint""" - num_completions = 200 - - client = openai.OpenAI() - for _ in range(num_completions): - with openai_vcr.use_cassette("completion.yaml"): - client.completions.create(model="ada", prompt="hello world") - - traces = mock_tracer.pop_traces() - sampled = 0 - assert len(traces) == num_completions, len(traces) - for trace in traces: - for span in trace: - if span.get_tag("openai.response.choices.0.text"): - sampled += 1 - if ddtrace.config.openai.span_prompt_completion_sample_rate == 0: - assert sampled == 0 - elif ddtrace.config.openai.span_prompt_completion_sample_rate == 1: - assert sampled == num_completions - else: - # this should be good enough for our purposes - rate = ddtrace.config.openai["span_prompt_completion_sample_rate"] * num_completions - assert (rate - 30) < sampled < (rate + 30) - - -@pytest.mark.parametrize( - "ddtrace_config_openai", - [dict(span_prompt_completion_sample_rate=r) for r in [0, 0.25, 0.75, 1]], -) -def test_chat_completion_sample(openai, openai_vcr, ddtrace_config_openai, mock_tracer): - """Test functionality for DD_OPENAI_SPAN_PROMPT_COMPLETION_SAMPLE_RATE for chat completions endpoint""" - num_completions = 200 - - client = openai.OpenAI() - for _ in range(num_completions): - with openai_vcr.use_cassette("chat_completion.yaml"): - client.chat.completions.create( - model="gpt-3.5-turbo", - messages=multi_message_input, - top_p=0.9, - n=2, - user="ddtrace-test", - ) - - traces = mock_tracer.pop_traces() - sampled = 0 - assert len(traces) == num_completions - for trace in traces: - for span in trace: - if span.get_tag("openai.response.choices.0.message.content"): - sampled += 1 - if ddtrace.config.openai["span_prompt_completion_sample_rate"] == 0: - assert sampled == 0 - elif ddtrace.config.openai["span_prompt_completion_sample_rate"] == 1: - assert sampled == num_completions - else: - # this should be good enough for our purposes - rate = ddtrace.config.openai["span_prompt_completion_sample_rate"] * num_completions - assert (rate - 30) < sampled < (rate + 30) - - -@pytest.mark.parametrize("ddtrace_config_openai", [dict(truncation_threshold=t) for t in [0, 10, 10000]]) -def test_completion_truncation(openai, openai_vcr, mock_tracer, ddtrace_config_openai): - """Test functionality of DD_OPENAI_TRUNCATION_THRESHOLD for completions""" - prompt = "1, 2, 3, 4, 5, 6, 7, 8, 9, 10" - - with openai_vcr.use_cassette("completion_truncation.yaml"): - client = openai.OpenAI() - client.completions.create(model="ada", prompt=prompt) - - with openai_vcr.use_cassette("chat_completion_truncation.yaml"): - resp = client.chat.completions.create( - model="gpt-3.5-turbo", - messages=[ - {"role": "user", "content": "Count from 1 to 100"}, - ], - ) - assert resp.choices[0].message.content == ( - "1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29," - " 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55," - " 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81," - " 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100" - ) - - traces = mock_tracer.pop_traces() - assert len(traces) == 2 - - limit = ddtrace.config.openai["span_char_limit"] - for trace in traces: - for span in trace: - if span.get_tag("openai.request.endpoint").endswith("/chat/completions"): - prompt = span.get_tag("openai.request.messages.0.content") - completion = span.get_tag("openai.response.choices.0.message.content") - assert len(prompt) <= limit + 3 - assert len(completion) <= limit + 3 - if "..." in prompt: - assert len(prompt.replace("...", "")) == limit - if "..." in completion: - assert len(completion.replace("...", "")) == limit - else: - prompt = span.get_tag("openai.request.prompt.0") - completion = span.get_tag("openai.response.choices.0.text") - # +3 for the ellipsis - assert len(prompt) <= limit + 3 - assert len(completion) <= limit + 3 - if "..." in prompt: - assert len(prompt.replace("...", "")) == limit - if "..." in completion: - assert len(completion.replace("...", "")) == limit - - @pytest.mark.parametrize("ddtrace_config_openai", [dict(span_prompt_completion_sample_rate=0)]) def test_embedding_unsampled_prompt_completion(openai, openai_vcr, ddtrace_config_openai, mock_tracer): with openai_vcr.use_cassette("embedding.yaml"): diff --git a/tests/snapshots/tests.contrib.openai.test_openai.test_acompletion.json b/tests/snapshots/tests.contrib.openai.test_openai.test_acompletion.json index 3a0cd66dbbf..6cb6efc6625 100644 --- a/tests/snapshots/tests.contrib.openai.test_openai.test_acompletion.json +++ b/tests/snapshots/tests.contrib.openai.test_openai.test_acompletion.json @@ -10,29 +10,20 @@ "error": 0, "meta": { "_dd.p.dm": "-0", - "_dd.p.tid": "654a694400000000", + "_dd.p.tid": "685d9f5c00000000", "component": "openai", "language": "python", - "openai.api_base": "https://api.openai.com/v1", - "openai.api_type": "open_ai", "openai.base_url": "https://api.openai.com/v1/", "openai.organization.name": "datadog-4", "openai.request.client": "OpenAI", "openai.request.endpoint": "/v1/completions", - "openai.request.max_tokens": "150", "openai.request.method": "POST", "openai.request.model": "curie", - "openai.request.n": "1", - "openai.request.prompt.0": "As Descartes said, I think, therefore", - "openai.request.temperature": "0.8", - "openai.request.user": "ddtrace-test", - "openai.response.choices.0.finish_reason": "length", - "openai.response.choices.0.text": " I am; and I am in a sense a non-human entity woven together from memories, desires and emotions. But, who is to say that I am n...", "openai.response.created": "1681852797", "openai.response.id": "cmpl-76n1xq0xOyZWMQ8h6FQ89lgWjPz12", "openai.response.model": "curie", "openai.user.api_key": "sk-...key>", - "runtime-id": "e3412e4f1afe4767a615b30fc1c0f91d" + "runtime-id": "30ba704c804d4f279f8185780632be35" }, "metrics": { "_dd.measured": 1, @@ -43,11 +34,8 @@ "openai.organization.ratelimit.requests.remaining": 2999, "openai.organization.ratelimit.tokens.limit": 250000, "openai.organization.ratelimit.tokens.remaining": 249850, - "openai.response.usage.completion_tokens": 150, - "openai.response.usage.prompt_tokens": 10, - "openai.response.usage.total_tokens": 160, - "process_id": 7557 + "process_id": 44870 }, - "duration": 2367057, - "start": 1694032213456063841 + "duration": 10493000, + "start": 1750966108592778000 }]] diff --git a/tests/snapshots/tests.contrib.openai.test_openai.test_atranscribe.json b/tests/snapshots/tests.contrib.openai.test_openai.test_atranscribe.json deleted file mode 100644 index 97dee08bbab..00000000000 --- a/tests/snapshots/tests.contrib.openai.test_openai.test_atranscribe.json +++ /dev/null @@ -1,44 +0,0 @@ -[[ - { - "name": "openai.request", - "service": "tests.contrib.openai", - "resource": "createTranscription", - "trace_id": 0, - "span_id": 1, - "parent_id": 0, - "type": "", - "error": 0, - "meta": { - "_dd.p.dm": "-0", - "_dd.p.tid": "654a694400000000", - "component": "openai", - "language": "python", - "openai.api_base": "https://api.openai.com/v1", - "openai.api_type": "open_ai", - "openai.organization.name": "datadog-4", - "openai.request.client": "OpenAI", - "openai.request.endpoint": "/v1/audio/transcriptions", - "openai.request.filename": "english_audio.mp3", - "openai.request.language": "en", - "openai.request.method": "POST", - "openai.request.model": "whisper-1", - "openai.request.prompt": "what's that over there?", - "openai.request.response_format": "text", - "openai.request.temperature": "0.7", - "openai.request.user": "ddtrace-test", - "openai.response.text": "Look at all those chickens.\\n", - "openai.user.api_key": "sk-...key>", - "runtime-id": "1061c79d943c4fb2ae50fecccf14398f" - }, - "metrics": { - "_dd.measured": 1, - "_dd.top_level": 1, - "_dd.tracer_kr": 1.0, - "_sampling_priority_v1": 1, - "openai.organization.ratelimit.requests.limit": 50, - "openai.organization.ratelimit.requests.remaining": 49, - "process_id": 7755 - }, - "duration": 1346656, - "start": 1694032242976472087 - }]] diff --git a/tests/snapshots/tests.contrib.openai.test_openai.test_atranslate.json b/tests/snapshots/tests.contrib.openai.test_openai.test_atranslate.json deleted file mode 100644 index c1f2c038888..00000000000 --- a/tests/snapshots/tests.contrib.openai.test_openai.test_atranslate.json +++ /dev/null @@ -1,42 +0,0 @@ -[[ - { - "name": "openai.request", - "service": "tests.contrib.openai", - "resource": "createTranslation", - "trace_id": 0, - "span_id": 1, - "parent_id": 0, - "type": "", - "error": 0, - "meta": { - "_dd.p.dm": "-0", - "_dd.p.tid": "654a694400000000", - "component": "openai", - "language": "python", - "openai.api_base": "https://api.openai.com/v1", - "openai.api_type": "open_ai", - "openai.organization.name": "datadog-4", - "openai.request.client": "OpenAI", - "openai.request.endpoint": "/v1/audio/translations", - "openai.request.filename": "french_audio.mp3", - "openai.request.method": "POST", - "openai.request.model": "whisper-1", - "openai.request.prompt": "and when I've given up,", - "openai.request.response_format": "text", - "openai.request.user": "ddtrace-test", - "openai.response.text": "when I've had enough of running after.\\n", - "openai.user.api_key": "sk-...key>", - "runtime-id": "1061c79d943c4fb2ae50fecccf14398f" - }, - "metrics": { - "_dd.measured": 1, - "_dd.top_level": 1, - "_dd.tracer_kr": 1.0, - "_sampling_priority_v1": 1, - "openai.organization.ratelimit.requests.limit": 50, - "openai.organization.ratelimit.requests.remaining": 49, - "process_id": 7755 - }, - "duration": 1361619, - "start": 1694032243189992558 - }]] diff --git a/tests/snapshots/tests.contrib.openai.test_openai.test_azure_openai_chat_completion.json b/tests/snapshots/tests.contrib.openai.test_openai.test_azure_openai_chat_completion.json index 8257b41b636..17ebf37df05 100644 --- a/tests/snapshots/tests.contrib.openai.test_openai.test_azure_openai_chat_completion.json +++ b/tests/snapshots/tests.contrib.openai.test_openai.test_azure_openai_chat_completion.json @@ -10,43 +10,27 @@ "error": 0, "meta": { "_dd.p.dm": "-0", - "_dd.p.tid": "654a694400000000", + "_dd.p.tid": "685d9f5600000000", "component": "openai", "language": "python", - "openai.api_base": "https://test-openai.openai.azure.com/", - "openai.api_type": "azure", - "openai.api_version": "2023-05-15", "openai.base_url": "https://test-openai.openai.azure.com//openai/deployments/test-openai/", "openai.request.client": "AzureOpenAI", "openai.request.endpoint": "/v1/chat/completions", - "openai.request.max_tokens": "20", - "openai.request.messages.0.content": "What's the weather like in NYC right now?", - "openai.request.messages.0.name": "", - "openai.request.messages.0.role": "user", "openai.request.method": "POST", "openai.request.model": "gpt-35-turbo", - "openai.request.n": "1", - "openai.request.temperature": "0", - "openai.request.user": "ddtrace-test", - "openai.response.choices.0.finish_reason": "length", - "openai.response.choices.0.message.content": "I'm sorry, as an AI language model, I do not have real-time information. Please check", - "openai.response.choices.0.message.role": "assistant", "openai.response.created": "1695243871", "openai.response.id": "chatcmpl-80yf1zsO83O6QA4OlMV9aHRIkSk2G", "openai.response.model": "gpt-35-turbo", "openai.user.api_key": "sk-...key>", - "runtime-id": "b30008eff8b844f093c9206c308a0d01" + "runtime-id": "30ba704c804d4f279f8185780632be35" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1, "_dd.tracer_kr": 1.0, "_sampling_priority_v1": 1, - "openai.response.usage.completion_tokens": 20, - "openai.response.usage.prompt_tokens": 18, - "openai.response.usage.total_tokens": 38, - "process_id": 34781 + "process_id": 44870 }, - "duration": 721540000, - "start": 1695243871179208000 + "duration": 12286000, + "start": 1750966102953045000 }]] diff --git a/tests/snapshots/tests.contrib.openai.test_openai.test_azure_openai_completion.json b/tests/snapshots/tests.contrib.openai.test_openai.test_azure_openai_completion.json index 01fc0431380..940508c3dbd 100644 --- a/tests/snapshots/tests.contrib.openai.test_openai.test_azure_openai_completion.json +++ b/tests/snapshots/tests.contrib.openai.test_openai.test_azure_openai_completion.json @@ -10,40 +10,27 @@ "error": 0, "meta": { "_dd.p.dm": "-0", - "_dd.p.tid": "654a694400000000", + "_dd.p.tid": "685d9f5600000000", "component": "openai", "language": "python", - "openai.api_base": "https://test-openai.openai.azure.com/", - "openai.api_type": "azure", - "openai.api_version": "2023-05-15", "openai.base_url": "https://test-openai.openai.azure.com//openai/deployments/test-openai/", "openai.request.client": "AzureOpenAI", "openai.request.endpoint": "/v1/completions", - "openai.request.max_tokens": "20", "openai.request.method": "POST", "openai.request.model": "gpt-35-turbo", - "openai.request.n": "1", - "openai.request.prompt.0": "why do some languages have words that can't directly be translated to other languages?", - "openai.request.temperature": "0", - "openai.request.user": "ddtrace-test", - "openai.response.choices.0.finish_reason": "length", - "openai.response.choices.0.text": "\". The answer is that languages are not just a collection of words, but also a collection of cultural", "openai.response.created": "1695243395", "openai.response.id": "cmpl-80yXLPWze5qul39qHFOlO1j7VViFv", "openai.response.model": "gpt-35-turbo", "openai.user.api_key": "sk-...key>", - "runtime-id": "4e9e70827aec4d139f86231e56e6ba8d" + "runtime-id": "30ba704c804d4f279f8185780632be35" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1, "_dd.tracer_kr": 1.0, "_sampling_priority_v1": 1, - "openai.response.usage.completion_tokens": 20, - "openai.response.usage.prompt_tokens": 16, - "openai.response.usage.total_tokens": 36, - "process_id": 32811 + "process_id": 44870 }, - "duration": 607544000, - "start": 1695243395538168000 + "duration": 24156000, + "start": 1750966102836011000 }]] diff --git a/tests/snapshots/tests.contrib.openai.test_openai.test_azure_openai_embedding.json b/tests/snapshots/tests.contrib.openai.test_openai.test_azure_openai_embedding.json index d1d4b6b5f5b..ae1f91f5b30 100644 --- a/tests/snapshots/tests.contrib.openai.test_openai.test_azure_openai_embedding.json +++ b/tests/snapshots/tests.contrib.openai.test_openai.test_azure_openai_embedding.json @@ -10,34 +10,25 @@ "error": 0, "meta": { "_dd.p.dm": "-0", - "_dd.p.tid": "654a694400000000", + "_dd.p.tid": "685d9f5b00000000", "component": "openai", "language": "python", - "openai.api_base": "https://test-openai.openai.azure.com/", - "openai.api_type": "azure", - "openai.api_version": "2023-05-15", "openai.base_url": "https://test-openai.openai.azure.com//openai/deployments/test-openai/", "openai.request.client": "AzureOpenAI", "openai.request.endpoint": "/v1/embeddings", - "openai.request.input.0": "Hello world", "openai.request.method": "POST", "openai.request.model": "text-embedding-ada-002", - "openai.request.user": "ddtrace-test", "openai.response.model": "ada", "openai.user.api_key": "sk-...key>", - "runtime-id": "fa7d1c84f7d14029963a06c8be20b905" + "runtime-id": "30ba704c804d4f279f8185780632be35" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1, "_dd.tracer_kr": 1.0, "_sampling_priority_v1": 1, - "openai.response.embedding-length": 1536, - "openai.response.embeddings_count": 1, - "openai.response.usage.prompt_tokens": 2, - "openai.response.usage.total_tokens": 2, - "process_id": 30859 + "process_id": 44870 }, - "duration": 25363000, - "start": 1695242581938352000 + "duration": 9498000, + "start": 1750966107171155000 }]] diff --git a/tests/snapshots/tests.contrib.openai.test_openai.test_chat_completion.json b/tests/snapshots/tests.contrib.openai.test_openai.test_chat_completion.json index adb2bece666..c50bf7be268 100644 --- a/tests/snapshots/tests.contrib.openai.test_openai.test_chat_completion.json +++ b/tests/snapshots/tests.contrib.openai.test_openai.test_chat_completion.json @@ -10,43 +10,20 @@ "error": 0, "meta": { "_dd.p.dm": "-0", - "_dd.p.tid": "654a694400000000", + "_dd.p.tid": "685d9f5b00000000", "component": "openai", "language": "python", - "openai.api_base": "https://api.openai.com/v1", - "openai.api_type": "open_ai", "openai.base_url": "https://api.openai.com/v1/", "openai.organization.name": "datadog-4", "openai.request.client": "OpenAI", "openai.request.endpoint": "/v1/chat/completions", - "openai.request.messages.0.content": "You are a helpful assistant.", - "openai.request.messages.0.name": "", - "openai.request.messages.0.role": "system", - "openai.request.messages.1.content": "Who won the world series in 2020?", - "openai.request.messages.1.name": "", - "openai.request.messages.1.role": "user", - "openai.request.messages.2.content": "The Los Angeles Dodgers won the World Series in 2020.", - "openai.request.messages.2.name": "", - "openai.request.messages.2.role": "assistant", - "openai.request.messages.3.content": "Where was it played?", - "openai.request.messages.3.name": "", - "openai.request.messages.3.role": "user", "openai.request.method": "POST", "openai.request.model": "gpt-3.5-turbo", - "openai.request.n": "2", - "openai.request.top_p": "0.9", - "openai.request.user": "ddtrace-test", - "openai.response.choices.0.finish_reason": "stop", - "openai.response.choices.0.message.content": "The 2020 World Series was played in Arlington, Texas at Globe Life Field.", - "openai.response.choices.0.message.role": "assistant", - "openai.response.choices.1.finish_reason": "stop", - "openai.response.choices.1.message.content": "The 2020 World Series was played at Globe Life Field in Arlington, Texas.", - "openai.response.choices.1.message.role": "assistant", "openai.response.created": "1681853029", "openai.response.id": "chatcmpl-76n5heroUX66dt3wGtwp0tFFedLLu", "openai.response.model": "gpt-3.5-turbo-0301", "openai.user.api_key": "sk-...key>", - "runtime-id": "1061c79d943c4fb2ae50fecccf14398f" + "runtime-id": "30ba704c804d4f279f8185780632be35" }, "metrics": { "_dd.measured": 1, @@ -57,11 +34,8 @@ "openai.organization.ratelimit.requests.remaining": 14999, "openai.organization.ratelimit.tokens.limit": 2000000, "openai.organization.ratelimit.tokens.remaining": 1999929, - "openai.response.usage.completion_tokens": 34, - "openai.response.usage.prompt_tokens": 57, - "openai.response.usage.total_tokens": 91, - "process_id": 7755 + "process_id": 44870 }, - "duration": 5300698, - "start": 1694032241384804632 + "duration": 10786000, + "start": 1750966107264892000 }]] diff --git a/tests/snapshots/tests.contrib.openai.test_openai.test_chat_completion_function_calling.json b/tests/snapshots/tests.contrib.openai.test_openai.test_chat_completion_function_calling.json index 701f349187f..629bbda2f10 100644 --- a/tests/snapshots/tests.contrib.openai.test_openai.test_chat_completion_function_calling.json +++ b/tests/snapshots/tests.contrib.openai.test_openai.test_chat_completion_function_calling.json @@ -10,31 +10,20 @@ "error": 0, "meta": { "_dd.p.dm": "-0", - "_dd.p.tid": "654a694400000000", + "_dd.p.tid": "685d9f6000000000", "component": "openai", "language": "python", - "openai.api_base": "https://api.openai.com/v1", - "openai.api_type": "open_ai", "openai.base_url": "https://api.openai.com/v1/", "openai.organization.name": "datadog-4", "openai.request.client": "OpenAI", "openai.request.endpoint": "/v1/chat/completions", - "openai.request.messages.0.content": "\\n David Nguyen is a sophomore majoring in computer science at Stanford University and has a GPA of 3.8.\\n David is an act...", - "openai.request.messages.0.name": "", - "openai.request.messages.0.role": "user", "openai.request.method": "POST", "openai.request.model": "gpt-3.5-turbo", - "openai.request.user": "ddtrace-test", - "openai.response.choices.0.finish_reason": "function_call", - "openai.response.choices.0.message.content": "", - "openai.response.choices.0.message.role": "assistant", - "openai.response.choices.0.message.tool_calls.0.arguments": "{\\n \"name\": \"David Nguyen\",\\n \"major\": \"computer science\",\\n \"school\": \"Stanford University\",\\n \"grades\": 3.8,\\n \"clubs\": [...", - "openai.response.choices.0.message.tool_calls.0.name": "extract_student_info", "openai.response.created": "1695747601", "openai.response.id": "chatcmpl-835hhNkhB9OBwmSNkrCXncoUudsEU", "openai.response.model": "gpt-3.5-turbo-0613", "openai.user.api_key": "sk-...key>", - "runtime-id": "2fab29c9652a4617a2afcf0ff42a3fa9" + "runtime-id": "30ba704c804d4f279f8185780632be35" }, "metrics": { "_dd.measured": 1, @@ -45,11 +34,8 @@ "openai.organization.ratelimit.requests.remaining": 9999, "openai.organization.ratelimit.tokens.limit": 1000000, "openai.organization.ratelimit.tokens.remaining": 999910, - "openai.response.usage.completion_tokens": 57, - "openai.response.usage.prompt_tokens": 157, - "openai.response.usage.total_tokens": 214, - "process_id": 26590 + "process_id": 44870 }, - "duration": 1024064000, - "start": 1695747600754577000 + "duration": 11960000, + "start": 1750966112668739000 }]] diff --git a/tests/snapshots/tests.contrib.openai.test_openai.test_chat_completion_image_input.json b/tests/snapshots/tests.contrib.openai.test_openai.test_chat_completion_image_input.json index 8f969030564..dc44fb9956b 100644 --- a/tests/snapshots/tests.contrib.openai.test_openai.test_chat_completion_image_input.json +++ b/tests/snapshots/tests.contrib.openai.test_openai.test_chat_completion_image_input.json @@ -10,28 +10,20 @@ "error": 0, "meta": { "_dd.p.dm": "-0", - "_dd.p.tid": "6564c89d00000000", + "_dd.p.tid": "685d9f5e00000000", "component": "openai", "language": "python", - "openai.api_base": "https://api.openai.com/v1", - "openai.api_type": "open_ai", "openai.base_url": "https://api.openai.com/v1/", "openai.organization.name": "datadog-4", "openai.request.client": "OpenAI", "openai.request.endpoint": "/v1/chat/completions", - "openai.request.messages.0.content": "[{'type': 'text', 'text': 'What\u2019s in this image?'}, {'type': 'image_url', 'image_url': 'https://upload.wikimedia.org/wikipedia/c...", - "openai.request.messages.0.name": "", - "openai.request.messages.0.role": "user", "openai.request.method": "POST", "openai.request.model": "gpt-4-vision-preview", - "openai.response.choices.0.finish_reason": "None", - "openai.response.choices.0.message.content": "The image shows a serene natural landscape consisting of a wooden boardwalk that extends through", - "openai.response.choices.0.message.role": "assistant", "openai.response.created": "1701103876", "openai.response.id": "chatcmpl-8PZ7EMif0e0dXa8yyFuSkf0kmWwKp", "openai.response.model": "gpt-4-1106-vision-preview", "openai.user.api_key": "sk-...key>", - "runtime-id": "08f460eea4204da69b46486a3dc357f9" + "runtime-id": "30ba704c804d4f279f8185780632be35" }, "metrics": { "_dd.measured": 1, @@ -42,11 +34,8 @@ "openai.organization.ratelimit.requests.remaining": 98, "openai.organization.ratelimit.tokens.limit": 150000, "openai.organization.ratelimit.tokens.remaining": 149977, - "openai.response.usage.completion_tokens": 16, - "openai.response.usage.prompt_tokens": 1118, - "openai.response.usage.total_tokens": 1134, - "process_id": 45616 + "process_id": 44870 }, - "duration": 26636000, - "start": 1701103773252008000 + "duration": 11668000, + "start": 1750966110207186000 }]] diff --git a/tests/snapshots/tests.contrib.openai.test_openai.test_chat_completion_stream.json b/tests/snapshots/tests.contrib.openai.test_openai.test_chat_completion_stream.json index fe7c9e3b0f2..38e2c762c89 100644 --- a/tests/snapshots/tests.contrib.openai.test_openai.test_chat_completion_stream.json +++ b/tests/snapshots/tests.contrib.openai.test_openai.test_chat_completion_stream.json @@ -10,27 +10,18 @@ "error": 0, "meta": { "_dd.p.dm": "-0", - "_dd.p.tid": "67741fca00000000", + "_dd.p.tid": "685d9f8600000000", "component": "openai", "language": "python", "openai.base_url": "https://api.openai.com/v1/", "openai.organization.name": "datadog-4", "openai.request.client": "OpenAI", "openai.request.endpoint": "/v1/chat/completions", - "openai.request.messages.0.content": "Who won the world series in 2020?", - "openai.request.messages.0.name": "", - "openai.request.messages.0.role": "user", "openai.request.method": "POST", "openai.request.model": "gpt-3.5-turbo", - "openai.request.n": "None", - "openai.request.stream": "True", - "openai.request.user": "ddtrace-test", - "openai.response.choices.0.finish_reason": "stop", - "openai.response.choices.0.message.content": "The Los Angeles Dodgers won the World Series in 2020.", - "openai.response.choices.0.message.role": "assistant", "openai.response.model": "gpt-3.5-turbo-0301", "openai.user.api_key": "sk-...key>", - "runtime-id": "d174f65e33314f43ad1de8cf0a5ca4e0" + "runtime-id": "f223446527aa4182a7dc6c9ae5227bc8" }, "metrics": { "_dd.measured": 1, @@ -41,13 +32,8 @@ "openai.organization.ratelimit.requests.remaining": 2999, "openai.organization.ratelimit.tokens.limit": 250000, "openai.organization.ratelimit.tokens.remaining": 249979, - "openai.request.prompt_tokens_estimated": 0, - "openai.response.completion_tokens_estimated": 0, - "openai.response.usage.completion_tokens": 19, - "openai.response.usage.prompt_tokens": 17, - "openai.response.usage.total_tokens": 36, - "process_id": 22982 + "process_id": 45153 }, - "duration": 29869000, - "start": 1735663562179157000 + "duration": 15580000, + "start": 1750966150114512000 }]] diff --git a/tests/snapshots/tests.contrib.openai.test_openai.test_completion.json b/tests/snapshots/tests.contrib.openai.test_openai.test_completion.json index 67f7aa1574e..2964b329cee 100644 --- a/tests/snapshots/tests.contrib.openai.test_openai.test_completion.json +++ b/tests/snapshots/tests.contrib.openai.test_openai.test_completion.json @@ -10,32 +10,20 @@ "error": 0, "meta": { "_dd.p.dm": "-0", - "_dd.p.tid": "654a694400000000", + "_dd.p.tid": "685d9f5900000000", "component": "openai", "language": "python", - "openai.api_base": "https://api.openai.com/v1", - "openai.api_type": "open_ai", "openai.base_url": "https://api.openai.com/v1/", "openai.organization.name": "datadog-4", "openai.request.client": "OpenAI", "openai.request.endpoint": "/v1/completions", - "openai.request.max_tokens": "10", "openai.request.method": "POST", "openai.request.model": "ada", - "openai.request.n": "2", - "openai.request.prompt.0": "Hello world", - "openai.request.stop": ".", - "openai.request.temperature": "0.8", - "openai.request.user": "ddtrace-test", - "openai.response.choices.0.finish_reason": "length", - "openai.response.choices.0.text": ", relax!\u201d I said to my laptop", - "openai.response.choices.1.finish_reason": "stop", - "openai.response.choices.1.text": " (1", "openai.response.created": "1681852797", "openai.response.id": "cmpl-76n1xLvRKv3mfjx7hJ41UHrHy9ar6", "openai.response.model": "ada", "openai.user.api_key": "sk-...key>", - "runtime-id": "e3412e4f1afe4767a615b30fc1c0f91d" + "runtime-id": "30ba704c804d4f279f8185780632be35" }, "metrics": { "_dd.measured": 1, @@ -46,11 +34,8 @@ "openai.organization.ratelimit.requests.remaining": 2999, "openai.organization.ratelimit.tokens.limit": 250000, "openai.organization.ratelimit.tokens.remaining": 249979, - "openai.response.usage.completion_tokens": 12, - "openai.response.usage.prompt_tokens": 2, - "openai.response.usage.total_tokens": 14, - "process_id": 7557 + "process_id": 44870 }, - "duration": 5707029, - "start": 1694032213378386319 + "duration": 10825000, + "start": 1750966105230139000 }]] diff --git a/tests/snapshots/tests.contrib.openai.test_openai.test_completion_stream.json b/tests/snapshots/tests.contrib.openai.test_openai.test_completion_stream.json index 7cf644cfb3d..d3f3a2502ca 100644 --- a/tests/snapshots/tests.contrib.openai.test_openai.test_completion_stream.json +++ b/tests/snapshots/tests.contrib.openai.test_openai.test_completion_stream.json @@ -10,7 +10,7 @@ "error": 0, "meta": { "_dd.p.dm": "-0", - "_dd.p.tid": "6774231f00000000", + "_dd.p.tid": "685d9fb700000000", "component": "openai", "language": "python", "openai.base_url": "https://api.openai.com/v1/", @@ -19,14 +19,9 @@ "openai.request.endpoint": "/v1/completions", "openai.request.method": "POST", "openai.request.model": "ada", - "openai.request.n": "None", - "openai.request.prompt.0": "Hello world", - "openai.request.stream": "True", - "openai.response.choices.0.finish_reason": "length", - "openai.response.choices.0.text": "! ... A page layouts page drawer? ... Interesting. The \"Tools\" is", "openai.response.model": "ada", "openai.user.api_key": "sk-...key>", - "runtime-id": "11872c9ca653441db861b108a4f795eb" + "runtime-id": "1042920229aa4a039d2564e2e64b1314" }, "metrics": { "_dd.measured": 1, @@ -37,13 +32,8 @@ "openai.organization.ratelimit.requests.remaining": 2999, "openai.organization.ratelimit.tokens.limit": 250000, "openai.organization.ratelimit.tokens.remaining": 249979, - "openai.request.prompt_tokens_estimated": 0, - "openai.response.completion_tokens_estimated": 0, - "openai.response.usage.completion_tokens": 2, - "openai.response.usage.prompt_tokens": 2, - "openai.response.usage.total_tokens": 4, - "process_id": 27488 + "process_id": 45407 }, - "duration": 28739000, - "start": 1735664415266386000 + "duration": 4096000, + "start": 1750966199753673000 }]] diff --git a/tests/snapshots/tests.contrib.openai.test_openai.test_create_moderation.json b/tests/snapshots/tests.contrib.openai.test_openai.test_create_moderation.json index 38c145f1814..edb69fb2f78 100644 --- a/tests/snapshots/tests.contrib.openai.test_openai.test_create_moderation.json +++ b/tests/snapshots/tests.contrib.openai.test_openai.test_create_moderation.json @@ -10,10 +10,9 @@ "error": 0, "meta": { "_dd.p.dm": "-0", + "_dd.p.tid": "685d9f5d00000000", "component": "openai", "language": "python", - "openai.api_base": "https://api.openai.com/v1", - "openai.api_type": "open_ai", "openai.base_url": "https://api.openai.com/v1/", "openai.organization.name": "datadog-4", "openai.request.client": "OpenAI", @@ -24,7 +23,7 @@ "openai.response.id": "modr-8E3q1Ym0ynUPcFCfcCOOqEcguvMNX", "openai.response.model": "text-moderation-006", "openai.user.api_key": "sk-...key>", - "runtime-id": "cbe0e14f746844368fe3213cca093638" + "runtime-id": "30ba704c804d4f279f8185780632be35" }, "metrics": { "_dd.measured": 1, @@ -54,8 +53,8 @@ "openai.response.category_scores.violence": 0.994572103023529, "openai.response.category_scores.violence/graphic": 2.5829390892795345e-07, "openai.response.flagged": 1, - "process_id": 60993 + "process_id": 44870 }, - "duration": 19600000, - "start": 1699904034482287000 + "duration": 9594000, + "start": 1750966109459802000 }]] diff --git a/tests/snapshots/tests.contrib.openai.test_openai.test_embedding.json b/tests/snapshots/tests.contrib.openai.test_openai.test_embedding.json index 1309915df99..5ab47fb8e49 100644 --- a/tests/snapshots/tests.contrib.openai.test_openai.test_embedding.json +++ b/tests/snapshots/tests.contrib.openai.test_openai.test_embedding.json @@ -10,22 +10,18 @@ "error": 0, "meta": { "_dd.p.dm": "-0", - "_dd.p.tid": "654a694400000000", + "_dd.p.tid": "685d9f5d00000000", "component": "openai", "language": "python", - "openai.api_base": "https://api.openai.com/v1", - "openai.api_type": "open_ai", "openai.base_url": "https://api.openai.com/v1/", "openai.organization.name": "datadog-4", "openai.request.client": "OpenAI", "openai.request.endpoint": "/v1/embeddings", - "openai.request.input.0": "hello world", "openai.request.method": "POST", "openai.request.model": "text-embedding-ada-002", - "openai.request.user": "ddtrace-test", "openai.response.model": "text-embedding-ada-002-v2", "openai.user.api_key": "sk-...key>", - "runtime-id": "e3412e4f1afe4767a615b30fc1c0f91d" + "runtime-id": "30ba704c804d4f279f8185780632be35" }, "metrics": { "_dd.measured": 1, @@ -36,12 +32,8 @@ "openai.organization.ratelimit.requests.remaining": 2999, "openai.organization.ratelimit.tokens.limit": 1000000, "openai.organization.ratelimit.tokens.remaining": 999997, - "openai.response.embedding-length": 1536, - "openai.response.embeddings_count": 1, - "openai.response.usage.prompt_tokens": 2, - "openai.response.usage.total_tokens": 2, - "process_id": 7557 + "process_id": 44870 }, - "duration": 5019641, - "start": 1694032214816743677 + "duration": 18427000, + "start": 1750966109262412000 }]] diff --git a/tests/snapshots/tests.contrib.openai.test_openai.test_embedding_array_of_token_arrays.json b/tests/snapshots/tests.contrib.openai.test_openai.test_embedding_array_of_token_arrays.json index 60584a2a1f9..e4f8bf0919f 100644 --- a/tests/snapshots/tests.contrib.openai.test_openai.test_embedding_array_of_token_arrays.json +++ b/tests/snapshots/tests.contrib.openai.test_openai.test_embedding_array_of_token_arrays.json @@ -10,24 +10,18 @@ "error": 0, "meta": { "_dd.p.dm": "-0", - "_dd.p.tid": "654a694400000000", + "_dd.p.tid": "685d9f5d00000000", "component": "openai", "language": "python", - "openai.api_base": "https://api.openai.com/v1", - "openai.api_type": "open_ai", "openai.base_url": "https://api.openai.com/v1/", "openai.organization.name": "datadog-4", "openai.request.client": "OpenAI", "openai.request.endpoint": "/v1/embeddings", - "openai.request.input.0": "[1111, 2222, 3333]", - "openai.request.input.1": "[4444, 5555, 6666]", - "openai.request.input.2": "[7777, 8888, 9999]", "openai.request.method": "POST", "openai.request.model": "text-embedding-ada-002", - "openai.request.user": "ddtrace-test", "openai.response.model": "text-embedding-ada-002-v2", "openai.user.api_key": "sk-...key>", - "runtime-id": "e3412e4f1afe4767a615b30fc1c0f91d" + "runtime-id": "30ba704c804d4f279f8185780632be35" }, "metrics": { "_dd.measured": 1, @@ -38,12 +32,8 @@ "openai.organization.ratelimit.requests.remaining": 2999, "openai.organization.ratelimit.tokens.limit": 1000000, "openai.organization.ratelimit.tokens.remaining": 999990, - "openai.response.embedding-length": 1536, - "openai.response.embeddings_count": 3, - "openai.response.usage.prompt_tokens": 9, - "openai.response.usage.total_tokens": 9, - "process_id": 7557 + "process_id": 44870 }, - "duration": 5680603, - "start": 1694032214965191624 + "duration": 36945000, + "start": 1750966109749756000 }]] diff --git a/tests/snapshots/tests.contrib.openai.test_openai.test_embedding_string_array.json b/tests/snapshots/tests.contrib.openai.test_openai.test_embedding_string_array.json index f9c427d1884..4dc75931786 100644 --- a/tests/snapshots/tests.contrib.openai.test_openai.test_embedding_string_array.json +++ b/tests/snapshots/tests.contrib.openai.test_openai.test_embedding_string_array.json @@ -10,23 +10,18 @@ "error": 0, "meta": { "_dd.p.dm": "-0", - "_dd.p.tid": "654a694400000000", + "_dd.p.tid": "685d9f6400000000", "component": "openai", "language": "python", - "openai.api_base": "https://api.openai.com/v1", - "openai.api_type": "open_ai", "openai.base_url": "https://api.openai.com/v1/", "openai.organization.name": "datadog-4", "openai.request.client": "OpenAI", "openai.request.endpoint": "/v1/embeddings", - "openai.request.input.0": "hello world", - "openai.request.input.1": "hello again", "openai.request.method": "POST", "openai.request.model": "text-embedding-ada-002", - "openai.request.user": "ddtrace-test", "openai.response.model": "text-embedding-ada-002-v2", "openai.user.api_key": "sk-...key>", - "runtime-id": "e3412e4f1afe4767a615b30fc1c0f91d" + "runtime-id": "30ba704c804d4f279f8185780632be35" }, "metrics": { "_dd.measured": 1, @@ -37,12 +32,8 @@ "openai.organization.ratelimit.requests.remaining": 2999, "openai.organization.ratelimit.tokens.limit": 1000000, "openai.organization.ratelimit.tokens.remaining": 999994, - "openai.response.embedding-length": 1536, - "openai.response.embeddings_count": 2, - "openai.response.usage.prompt_tokens": 4, - "openai.response.usage.total_tokens": 4, - "process_id": 7557 + "process_id": 44870 }, - "duration": 5621845, - "start": 1694032214890381746 + "duration": 32298000, + "start": 1750966116893575000 }]] diff --git a/tests/snapshots/tests.contrib.openai.test_openai.test_embedding_token_array.json b/tests/snapshots/tests.contrib.openai.test_openai.test_embedding_token_array.json index 914f1a5863f..6e4e9c14895 100644 --- a/tests/snapshots/tests.contrib.openai.test_openai.test_embedding_token_array.json +++ b/tests/snapshots/tests.contrib.openai.test_openai.test_embedding_token_array.json @@ -10,22 +10,18 @@ "error": 0, "meta": { "_dd.p.dm": "-0", - "_dd.p.tid": "654a694400000000", + "_dd.p.tid": "685d9f5a00000000", "component": "openai", "language": "python", - "openai.api_base": "https://api.openai.com/v1", - "openai.api_type": "open_ai", "openai.base_url": "https://api.openai.com/v1/", "openai.organization.name": "datadog-4", "openai.request.client": "OpenAI", "openai.request.endpoint": "/v1/embeddings", - "openai.request.input.0": "[1111, 2222, 3333]", "openai.request.method": "POST", "openai.request.model": "text-embedding-ada-002", - "openai.request.user": "ddtrace-test", "openai.response.model": "text-embedding-ada-002-v2", "openai.user.api_key": "sk-...key>", - "runtime-id": "e3412e4f1afe4767a615b30fc1c0f91d" + "runtime-id": "30ba704c804d4f279f8185780632be35" }, "metrics": { "_dd.measured": 1, @@ -36,12 +32,8 @@ "openai.organization.ratelimit.requests.remaining": 2999, "openai.organization.ratelimit.tokens.limit": 1000000, "openai.organization.ratelimit.tokens.remaining": 999997, - "openai.response.embedding-length": 1536, - "openai.response.embeddings_count": 1, - "openai.response.usage.prompt_tokens": 3, - "openai.response.usage.total_tokens": 3, - "process_id": 7557 + "process_id": 44870 }, - "duration": 5062833, - "start": 1694032214928348331 + "duration": 18030000, + "start": 1750966106045567000 }]] diff --git a/tests/snapshots/tests.contrib.openai.test_openai.test_file_create.json b/tests/snapshots/tests.contrib.openai.test_openai.test_file_create.json index 838851052ea..8c0b262aeb0 100644 --- a/tests/snapshots/tests.contrib.openai.test_openai.test_file_create.json +++ b/tests/snapshots/tests.contrib.openai.test_openai.test_file_create.json @@ -10,11 +10,9 @@ "error": 0, "meta": { "_dd.p.dm": "-0", - "_dd.p.tid": "654a694400000000", + "_dd.p.tid": "685d9f5700000000", "component": "openai", "language": "python", - "openai.api_base": "https://api.openai.com/v1", - "openai.api_type": "open_ai", "openai.base_url": "https://api.openai.com/v1/", "openai.organization.name": "datadog-4", "openai.request.client": "OpenAI", @@ -22,24 +20,23 @@ "openai.request.filename": "training_data.jsonl", "openai.request.method": "POST", "openai.request.purpose": "fine-tune", - "openai.request.user_provided_filename": "dummy_training_file.jsonl", "openai.response.bytes": "1431", "openai.response.created_at": "1685649224", - "openai.response.filename": "dummy_training_file.jsonl", + "openai.response.filename": "training_data.jsonl", "openai.response.id": "file-l48KgWVF75Tz2HLqLrcUdBPi", "openai.response.purpose": "fine-tune", "openai.response.status": "uploaded", "openai.response.status_details": "None", "openai.user.api_key": "sk-...key>", - "runtime-id": "e3412e4f1afe4767a615b30fc1c0f91d" + "runtime-id": "30ba704c804d4f279f8185780632be35" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1, "_dd.tracer_kr": 1.0, "_sampling_priority_v1": 1, - "process_id": 7557 + "process_id": 44870 }, - "duration": 4993198, - "start": 1694032215530746693 + "duration": 13236000, + "start": 1750966103277538000 }]] diff --git a/tests/snapshots/tests.contrib.openai.test_openai.test_file_delete.json b/tests/snapshots/tests.contrib.openai.test_openai.test_file_delete.json index de2826cdba9..5b37de2a600 100644 --- a/tests/snapshots/tests.contrib.openai.test_openai.test_file_delete.json +++ b/tests/snapshots/tests.contrib.openai.test_openai.test_file_delete.json @@ -10,30 +10,27 @@ "error": 0, "meta": { "_dd.p.dm": "-0", - "_dd.p.tid": "654a694400000000", + "_dd.p.tid": "685d9f5d00000000", "component": "openai", "language": "python", - "openai.api_base": "https://api.openai.com/v1", - "openai.api_type": "open_ai", "openai.base_url": "https://api.openai.com/v1/", "openai.organization.name": "datadog-4", "openai.request.client": "OpenAI", "openai.request.endpoint": "/v1/files/*", "openai.request.file_id": "file-l48KgWVF75Tz2HLqLrcUdBPi", "openai.request.method": "DELETE", - "openai.request.user": "ddtrace-test", "openai.response.deleted": "True", "openai.response.id": "file-l48KgWVF75Tz2HLqLrcUdBPi", "openai.user.api_key": "sk-...key>", - "runtime-id": "e3412e4f1afe4767a615b30fc1c0f91d" + "runtime-id": "30ba704c804d4f279f8185780632be35" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1, "_dd.tracer_kr": 1.0, "_sampling_priority_v1": 1, - "process_id": 7557 + "process_id": 44870 }, - "duration": 4829787, - "start": 1694032215678939023 + "duration": 9519000, + "start": 1750966109168320000 }]] diff --git a/tests/snapshots/tests.contrib.openai.test_openai.test_file_download.json b/tests/snapshots/tests.contrib.openai.test_openai.test_file_download.json index 9cd8b318614..4afd3dc91d7 100644 --- a/tests/snapshots/tests.contrib.openai.test_openai.test_file_download.json +++ b/tests/snapshots/tests.contrib.openai.test_openai.test_file_download.json @@ -10,11 +10,9 @@ "error": 0, "meta": { "_dd.p.dm": "-0", - "_dd.p.tid": "654a694400000000", + "_dd.p.tid": "685d9f6000000000", "component": "openai", "language": "python", - "openai.api_base": "https://api.openai.com/v1", - "openai.api_type": "open_ai", "openai.base_url": "https://api.openai.com/v1/", "openai.organization.name": "datadog-4", "openai.request.client": "OpenAI", @@ -22,7 +20,7 @@ "openai.request.file_id": "file-xC22NUuYBkXvzRt2fLREcGde", "openai.request.method": "GET", "openai.user.api_key": "sk-...key>", - "runtime-id": "e3412e4f1afe4767a615b30fc1c0f91d" + "runtime-id": "30ba704c804d4f279f8185780632be35" }, "metrics": { "_dd.measured": 1, @@ -30,8 +28,8 @@ "_dd.tracer_kr": 1.0, "_sampling_priority_v1": 1, "openai.response.total_bytes": 317, - "process_id": 7557 + "process_id": 44870 }, - "duration": 3998780, - "start": 1694032215972209986 + "duration": 11122000, + "start": 1750966112487105000 }]] diff --git a/tests/snapshots/tests.contrib.openai.test_openai.test_file_list.json b/tests/snapshots/tests.contrib.openai.test_openai.test_file_list.json index 6da8b126d9a..45bd3b86690 100644 --- a/tests/snapshots/tests.contrib.openai.test_openai.test_file_list.json +++ b/tests/snapshots/tests.contrib.openai.test_openai.test_file_list.json @@ -10,19 +10,16 @@ "error": 0, "meta": { "_dd.p.dm": "-0", - "_dd.p.tid": "654a694400000000", + "_dd.p.tid": "685d9f5700000000", "component": "openai", "language": "python", - "openai.api_base": "https://api.openai.com/v1", - "openai.api_type": "open_ai", "openai.base_url": "https://api.openai.com/v1/", "openai.organization.name": "datadog-4", "openai.request.client": "OpenAI", "openai.request.endpoint": "/v1/files", "openai.request.method": "GET", - "openai.request.user": "ddtrace-test", "openai.user.api_key": "sk-...key>", - "runtime-id": "e3412e4f1afe4767a615b30fc1c0f91d" + "runtime-id": "30ba704c804d4f279f8185780632be35" }, "metrics": { "_dd.measured": 1, @@ -30,8 +27,8 @@ "_dd.tracer_kr": 1.0, "_sampling_priority_v1": 1, "openai.response.count": 99, - "process_id": 7557 + "process_id": 44870 }, - "duration": 9906157, - "start": 1694032215363746582 + "duration": 24312000, + "start": 1750966103161058000 }]] diff --git a/tests/snapshots/tests.contrib.openai.test_openai.test_file_retrieve.json b/tests/snapshots/tests.contrib.openai.test_openai.test_file_retrieve.json index baab55a111e..cea708d9941 100644 --- a/tests/snapshots/tests.contrib.openai.test_openai.test_file_retrieve.json +++ b/tests/snapshots/tests.contrib.openai.test_openai.test_file_retrieve.json @@ -10,18 +10,15 @@ "error": 0, "meta": { "_dd.p.dm": "-0", - "_dd.p.tid": "654a694400000000", + "_dd.p.tid": "685d9f5700000000", "component": "openai", "language": "python", - "openai.api_base": "https://api.openai.com/v1", - "openai.api_type": "open_ai", "openai.base_url": "https://api.openai.com/v1/", "openai.organization.name": "datadog-4", "openai.request.client": "OpenAI", "openai.request.endpoint": "/v1/files/*", "openai.request.file_id": "file-Aeh42OWPtbWgt7gfUjXBVFAF", "openai.request.method": "GET", - "openai.request.user": "ddtrace-test", "openai.response.bytes": "91400", "openai.response.created_at": "1683906271", "openai.response.filename": "compiled_results.csv", @@ -30,15 +27,15 @@ "openai.response.status": "processed", "openai.response.status_details": "None", "openai.user.api_key": "sk-...key>", - "runtime-id": "e3412e4f1afe4767a615b30fc1c0f91d" + "runtime-id": "30ba704c804d4f279f8185780632be35" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1, "_dd.tracer_kr": 1.0, "_sampling_priority_v1": 1, - "process_id": 7557 + "process_id": 44870 }, - "duration": 5237268, - "start": 1694032215824426078 + "duration": 9708000, + "start": 1750966103379758000 }]] diff --git a/tests/snapshots/tests.contrib.openai.test_openai.test_image_b64_json_response.json b/tests/snapshots/tests.contrib.openai.test_openai.test_image_b64_json_response.json index cf8112be568..db8b2bd565d 100644 --- a/tests/snapshots/tests.contrib.openai.test_openai.test_image_b64_json_response.json +++ b/tests/snapshots/tests.contrib.openai.test_openai.test_image_b64_json_response.json @@ -10,11 +10,9 @@ "error": 0, "meta": { "_dd.p.dm": "-0", - "_dd.p.tid": "654a694400000000", + "_dd.p.tid": "685d9f5a00000000", "component": "openai", "language": "python", - "openai.api_base": "https://api.openai.com/v1", - "openai.api_type": "open_ai", "openai.base_url": "https://api.openai.com/v1/", "openai.organization.name": "datadog-4", "openai.request.client": "OpenAI", @@ -29,7 +27,7 @@ "openai.response.created": "1685642324", "openai.response.images.0.b64_json": "returned", "openai.user.api_key": "sk-...key>", - "runtime-id": "e3412e4f1afe4767a615b30fc1c0f91d" + "runtime-id": "30ba704c804d4f279f8185780632be35" }, "metrics": { "_dd.measured": 1, @@ -37,8 +35,8 @@ "_dd.tracer_kr": 1.0, "_sampling_priority_v1": 1, "openai.response.images_count": 1, - "process_id": 7557 + "process_id": 44870 }, - "duration": 6400455, - "start": 1694032214777883193 + "duration": 9211000, + "start": 1750966106265538000 }]] diff --git a/tests/snapshots/tests.contrib.openai.test_openai.test_image_create.json b/tests/snapshots/tests.contrib.openai.test_openai.test_image_create.json index 10c57ccbc3e..0d171c5a71b 100644 --- a/tests/snapshots/tests.contrib.openai.test_openai.test_image_create.json +++ b/tests/snapshots/tests.contrib.openai.test_openai.test_image_create.json @@ -10,11 +10,9 @@ "error": 0, "meta": { "_dd.p.dm": "-0", - "_dd.p.tid": "654a694400000000", + "_dd.p.tid": "685d9f5800000000", "component": "openai", "language": "python", - "openai.api_base": "https://api.openai.com/v1", - "openai.api_type": "open_ai", "openai.base_url": "https://api.openai.com/v1/", "openai.organization.name": "datadog-4", "openai.request.client": "OpenAI", @@ -29,7 +27,7 @@ "openai.response.created": "1685630540", "openai.response.images.0.url": "https://oaidalleapiprodscus.blob.core.windows.net/private/org-OS4zcsDN8sF8E8CdhxgMkBV4/user-uYJDLWPStCQHcYnk3EXTJvGk/img-ZLW2TDa...", "openai.user.api_key": "sk-...key>", - "runtime-id": "e3412e4f1afe4767a615b30fc1c0f91d" + "runtime-id": "30ba704c804d4f279f8185780632be35" }, "metrics": { "_dd.measured": 1, @@ -37,8 +35,8 @@ "_dd.tracer_kr": 1.0, "_sampling_priority_v1": 1, "openai.response.images_count": 1, - "process_id": 7557 + "process_id": 44870 }, - "duration": 4441884, - "start": 1694032214065119191 + "duration": 8561000, + "start": 1750966104324773000 }]] diff --git a/tests/snapshots/tests.contrib.openai.test_openai.test_image_edit.json b/tests/snapshots/tests.contrib.openai.test_openai.test_image_edit.json deleted file mode 100644 index 4fe6fe9ccb0..00000000000 --- a/tests/snapshots/tests.contrib.openai.test_openai.test_image_edit.json +++ /dev/null @@ -1,45 +0,0 @@ -[[ - { - "name": "openai.request", - "service": "tests.contrib.openai", - "resource": "createImageEdit", - "trace_id": 0, - "span_id": 1, - "parent_id": 0, - "type": "", - "error": 0, - "meta": { - "_dd.p.dm": "-0", - "_dd.p.tid": "654a694400000000", - "component": "openai", - "language": "python", - "openai.api_base": "https://api.openai.com/v1", - "openai.api_type": "open_ai", - "openai.organization.name": "datadog-4", - "openai.request.client": "OpenAI", - "openai.request.endpoint": "/v1/images/edits", - "openai.request.image": "image.png", - "openai.request.mask": "mask.png", - "openai.request.method": "POST", - "openai.request.model": "dall-e", - "openai.request.n": "1", - "openai.request.prompt": "A sunlit indoor lounge area with a pool containing a flamingo", - "openai.request.response_format": "url", - "openai.request.size": "256x256", - "openai.request.user": "ddtrace-test", - "openai.response.created": "1685631239", - "openai.response.images.0.url": "https://oaidalleapiprodscus.blob.core.windows.net/private/org-OS4zcsDN8sF8E8CdhxgMkBV4/user-uYJDLWPStCQHcYnk3EXTJvGk/img-nKdVUNc...", - "openai.user.api_key": "sk-...key>", - "runtime-id": "e3412e4f1afe4767a615b30fc1c0f91d" - }, - "metrics": { - "_dd.measured": 1, - "_dd.top_level": 1, - "_dd.tracer_kr": 1.0, - "_sampling_priority_v1": 1, - "openai.response.images_count": 1, - "process_id": 7557 - }, - "duration": 4818449, - "start": 1694032214250257137 - }]] diff --git a/tests/snapshots/tests.contrib.openai.test_openai.test_image_edit_binary_input.json b/tests/snapshots/tests.contrib.openai.test_openai.test_image_edit_binary_input.json deleted file mode 100644 index 9ad4da73f6d..00000000000 --- a/tests/snapshots/tests.contrib.openai.test_openai.test_image_edit_binary_input.json +++ /dev/null @@ -1,44 +0,0 @@ -[[ - { - "name": "openai.request", - "service": "tests.contrib.openai", - "resource": "createImageEdit", - "trace_id": 0, - "span_id": 1, - "parent_id": 0, - "type": "", - "error": 0, - "meta": { - "_dd.p.dm": "-0", - "_dd.p.tid": "654a694400000000", - "component": "openai", - "language": "python", - "openai.api_base": "https://api.openai.com/v1", - "openai.api_type": "open_ai", - "openai.organization.name": "datadog-4", - "openai.request.client": "OpenAI", - "openai.request.endpoint": "/v1/images/edits", - "openai.request.image": "", - "openai.request.method": "POST", - "openai.request.model": "dall-e", - "openai.request.n": "1", - "openai.request.prompt": "A sunlit indoor lounge area with a pool containing a flamingo", - "openai.request.response_format": "url", - "openai.request.size": "256x256", - "openai.request.user": "ddtrace-test", - "openai.response.created": "1685631239", - "openai.response.images.0.url": "https://oaidalleapiprodscus.blob.core.windows.net/private/org-OS4zcsDN8sF8E8CdhxgMkBV4/user-uYJDLWPStCQHcYnk3EXTJvGk/img-nKdVUNc...", - "openai.user.api_key": "sk-...key>", - "runtime-id": "e3412e4f1afe4767a615b30fc1c0f91d" - }, - "metrics": { - "_dd.measured": 1, - "_dd.top_level": 1, - "_dd.tracer_kr": 1.0, - "_sampling_priority_v1": 1, - "openai.response.images_count": 1, - "process_id": 7557 - }, - "duration": 4178994, - "start": 1694032214730649147 - }]] diff --git a/tests/snapshots/tests.contrib.openai.test_openai.test_image_variation.json b/tests/snapshots/tests.contrib.openai.test_openai.test_image_variation.json deleted file mode 100644 index 1ea80ab609b..00000000000 --- a/tests/snapshots/tests.contrib.openai.test_openai.test_image_variation.json +++ /dev/null @@ -1,43 +0,0 @@ -[[ - { - "name": "openai.request", - "service": "tests.contrib.openai", - "resource": "createImageVariation", - "trace_id": 0, - "span_id": 1, - "parent_id": 0, - "type": "", - "error": 0, - "meta": { - "_dd.p.dm": "-0", - "_dd.p.tid": "654a694400000000", - "component": "openai", - "language": "python", - "openai.api_base": "https://api.openai.com/v1", - "openai.api_type": "open_ai", - "openai.organization.name": "datadog-4", - "openai.request.client": "OpenAI", - "openai.request.endpoint": "/v1/images/variations", - "openai.request.image": "image.png", - "openai.request.method": "POST", - "openai.request.model": "dall-e", - "openai.request.n": "1", - "openai.request.response_format": "url", - "openai.request.size": "256x256", - "openai.request.user": "ddtrace-test", - "openai.response.created": "1685642045", - "openai.response.images.0.url": "https://oaidalleapiprodscus.blob.core.windows.net/private/org-OS4zcsDN8sF8E8CdhxgMkBV4/user-uYJDLWPStCQHcYnk3EXTJvGk/img-qlcbcQQ...", - "openai.user.api_key": "sk-...key>", - "runtime-id": "e3412e4f1afe4767a615b30fc1c0f91d" - }, - "metrics": { - "_dd.measured": 1, - "_dd.top_level": 1, - "_dd.tracer_kr": 1.0, - "_sampling_priority_v1": 1, - "openai.response.images_count": 1, - "process_id": 7557 - }, - "duration": 4738637, - "start": 1694032214454551735 - }]] diff --git a/tests/snapshots/tests.contrib.openai.test_openai.test_integration_async.json b/tests/snapshots/tests.contrib.openai.test_openai.test_integration_async.json deleted file mode 100644 index f3d41cb4b9c..00000000000 --- a/tests/snapshots/tests.contrib.openai.test_openai.test_integration_async.json +++ /dev/null @@ -1,49 +0,0 @@ -[[ - { - "name": "openai.request", - "service": "ddtrace_subprocess_dir", - "resource": "createCompletion", - "trace_id": 0, - "span_id": 1, - "parent_id": 0, - "type": "", - "error": 0, - "meta": { - "_dd.p.dm": "-0", - "_dd.p.tid": "654a694400000000", - "component": "openai", - "language": "python", - "openai.api_base": "https://api.openai.com/v1", - "openai.api_type": "open_ai", - "openai.organization.name": "datadog-4", - "openai.request.client": "OpenAI", - "openai.request.endpoint": "/v1/completions", - "openai.request.max_tokens": "150", - "openai.request.method": "POST", - "openai.request.model": "curie", - "openai.request.n": "1", - "openai.request.prompt.0": "As Descartes said, I think, therefore", - "openai.request.temperature": "0.8", - "openai.request.user": "ddtrace-test", - "openai.response.choices.0.finish_reason": "length", - "openai.response.choices.0.text": " I am; and I am in a sense a non-human entity woven together from memories, desires and emotions. But, who is to say that I am n...", - "openai.response.created": "1681852797", - "openai.response.id": "cmpl-76n1xq0xOyZWMQ8h6FQ89lgWjPz12", - "openai.response.model": "curie", - "openai.user.api_key": "sk-...key>", - "runtime-id": "78b7c1e9b7834d2ea87da266906e51a2" - }, - "metrics": { - "_dd.measured": 1, - "_dd.top_level": 1, - "_dd.tracer_kr": 1.0, - "_sampling_priority_v1": 1, - "openai.organization.ratelimit.requests.limit": 3000, - "openai.organization.ratelimit.requests.remaining": 2999, - "openai.organization.ratelimit.tokens.limit": 250000, - "openai.organization.ratelimit.tokens.remaining": 249850, - "process_id": 7671 - }, - "duration": 1772243, - "start": 1694032219014359338 - }]] diff --git a/tests/snapshots/tests.contrib.openai.test_openai.test_integration_sync.json b/tests/snapshots/tests.contrib.openai.test_openai.test_integration_sync.json deleted file mode 100644 index 626abda72c8..00000000000 --- a/tests/snapshots/tests.contrib.openai.test_openai.test_integration_sync.json +++ /dev/null @@ -1,77 +0,0 @@ -[[ - { - "name": "openai.request", - "service": "ddtrace_subprocess_dir", - "resource": "createCompletion", - "trace_id": 0, - "span_id": 1, - "parent_id": 0, - "type": "", - "error": 0, - "meta": { - "_dd.p.dm": "-0", - "_dd.p.tid": "6567512700000000", - "component": "openai", - "language": "python", - "openai.api_base": "https://api.openai.com/v1", - "openai.api_type": "open_ai", - "openai.organization.name": "datadog-4", - "openai.request.client": "OpenAI", - "openai.request.endpoint": "/v1/completions", - "openai.request.max_tokens": "10", - "openai.request.method": "POST", - "openai.request.model": "ada", - "openai.request.n": "2", - "openai.request.prompt.0": "Hello world", - "openai.request.stop": ".", - "openai.request.temperature": "0.8", - "openai.response.choices.0.finish_reason": "length", - "openai.response.choices.0.text": ", relax!\u201d I said to my laptop", - "openai.response.choices.1.finish_reason": "stop", - "openai.response.choices.1.text": " (1", - "openai.response.created": "1681852797", - "openai.response.id": "cmpl-76n1xLvRKv3mfjx7hJ41UHrHy9ar6", - "openai.response.model": "ada", - "openai.user.api_key": "sk-...key>", - "runtime-id": "a66f06e3680a48669910ac1315fbe306" - }, - "metrics": { - "_dd.measured": 1, - "_dd.top_level": 1, - "_dd.tracer_kr": 1.0, - "_sampling_priority_v1": 1, - "openai.organization.ratelimit.requests.limit": 3000, - "openai.organization.ratelimit.requests.remaining": 2999, - "openai.organization.ratelimit.tokens.limit": 250000, - "openai.organization.ratelimit.tokens.remaining": 249979, - "process_id": 24412 - }, - "duration": 20821000, - "start": 1701269799707723000 - }, - { - "name": "requests.request", - "service": "openai", - "resource": "POST /v1/completions", - "trace_id": 0, - "span_id": 2, - "parent_id": 1, - "type": "http", - "error": 0, - "meta": { - "_dd.base_service": "ddtrace_subprocess_dir", - "component": "requests", - "http.method": "POST", - "http.status_code": "200", - "http.url": "https://api.openai.com/v1/completions", - "http.useragent": "OpenAI/v1 PythonBindings/0.27.2", - "out.host": "api.openai.com", - "span.kind": "client" - }, - "metrics": { - "_dd.measured": 1, - "_dd.top_level": 1 - }, - "duration": 2952000, - "start": 1701269799724470000 - }]] diff --git a/tests/snapshots/tests.contrib.openai.test_openai.test_misuse.json b/tests/snapshots/tests.contrib.openai.test_openai.test_misuse.json index 67dc45e3d3f..fb3c06ac961 100644 --- a/tests/snapshots/tests.contrib.openai.test_openai.test_misuse.json +++ b/tests/snapshots/tests.contrib.openai.test_openai.test_misuse.json @@ -10,29 +10,26 @@ "error": 1, "meta": { "_dd.p.dm": "-0", - "_dd.p.tid": "654a694400000000", + "_dd.p.tid": "685d9f5c00000000", "component": "openai", - "error.message": "Must provide an 'engine' or 'model' parameter to create a ", - "error.stack": "Traceback (most recent call last):\n File \"/root/project/ddtrace/contrib/openai/patch.py\", line 390, in patched_endpoint\n resp = func(*args, **kwargs)\n File \"/root/project/.riot/venv_py3716_mock_pytest_pytest-mock_coverage_pytest-cov_opentracing_hypothesis6451_vcrpy421_urllib3~126_pytest-asyncio_pillow_openai0265_scikit-learn102/lib/python3.7/site-packages/openai/api_resources/completion.py\", line 25, in create\n return super().create(*args, **kwargs)\n File \"/root/project/.riot/venv_py3716_mock_pytest_pytest-mock_coverage_pytest-cov_opentracing_hypothesis6451_vcrpy421_urllib3~126_pytest-asyncio_pillow_openai0265_scikit-learn102/lib/python3.7/site-packages/openai/api_resources/abstract/engine_api_resource.py\", line 150, in create\n api_key, api_base, api_type, api_version, organization, **params\n File \"/root/project/.riot/venv_py3716_mock_pytest_pytest-mock_coverage_pytest-cov_opentracing_hypothesis6451_vcrpy421_urllib3~126_pytest-asyncio_pillow_openai0265_scikit-learn102/lib/python3.7/site-packages/openai/api_resources/abstract/engine_api_resource.py\", line 93, in __prepare_create_request\n \"engine\",\nopenai.error.InvalidRequestError: Must provide an 'engine' or 'model' parameter to create a \n", - "error.type": "openai.error.InvalidRequestError", + "error.message": "Missing required arguments; Expected either ('model' and 'prompt') or ('model', 'prompt' and 'stream') arguments to be given", + "error.stack": "Traceback (most recent call last):\n File \"/Users/jacob.simpher/go/src/github.com/DataDog/dd-trace-py/ddtrace/contrib/internal/openai/patch.py\", line 269, in patched_endpoint\n resp = func(*args, **kwargs)\n File \"/Users/jacob.simpher/go/src/github.com/DataDog/dd-trace-py/.riot/venv_py31013_mock_pytest_pytest-mock_coverage_pytest-cov_opentracing_hypothesis6451_vcrpy_urllib3~126_pytest-asyncio0211_pytest-randomly_openai[embeddingsdatalib]100_pillow950_httpx0272/lib/python3.10/site-packages/openai/_utils/_utils.py\", line 298, in wrapper\n raise TypeError(msg)\nTypeError: Missing required arguments; Expected either ('model' and 'prompt') or ('model', 'prompt' and 'stream') arguments to be given\n", + "error.type": "builtins.TypeError", "language": "python", - "openai.api_base": "https://api.openai.com/v1", - "openai.api_type": "open_ai", "openai.base_url": "https://api.openai.com/v1/", "openai.request.client": "OpenAI", "openai.request.endpoint": "/v1/completions", "openai.request.method": "POST", - "openai.request.prompt.0": "", "openai.user.api_key": "sk-...key>", - "runtime-id": "e3412e4f1afe4767a615b30fc1c0f91d" + "runtime-id": "30ba704c804d4f279f8185780632be35" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1, "_dd.tracer_kr": 1.0, "_sampling_priority_v1": 1, - "process_id": 7557 + "process_id": 44870 }, - "duration": 1143949, - "start": 1694032217195556859 + "duration": 934000, + "start": 1750966108759274000 }]] diff --git a/tests/snapshots/tests.contrib.openai.test_openai.test_model_delete.json b/tests/snapshots/tests.contrib.openai.test_openai.test_model_delete.json index c58eff9626a..4ddb284a414 100644 --- a/tests/snapshots/tests.contrib.openai.test_openai.test_model_delete.json +++ b/tests/snapshots/tests.contrib.openai.test_openai.test_model_delete.json @@ -10,30 +10,27 @@ "error": 0, "meta": { "_dd.p.dm": "-0", - "_dd.p.tid": "654a694400000000", + "_dd.p.tid": "685d9f5700000000", "component": "openai", "language": "python", - "openai.api_base": "https://api.openai.com/v1", - "openai.api_type": "open_ai", "openai.base_url": "https://api.openai.com/v1/", "openai.organization.name": "datadog-4", "openai.request.client": "OpenAI", "openai.request.endpoint": "/v1/models/*", "openai.request.method": "DELETE", "openai.request.model": "babbage:ft-datadog:dummy-fine-tune-model-2023-06-01-23-15-52", - "openai.request.user": "ddtrace-test", "openai.response.deleted": "True", "openai.response.id": "babbage:ft-datadog:dummy-fine-tune-model-2023-06-01-23-15-52", "openai.user.api_key": "sk-...key>", - "runtime-id": "e3412e4f1afe4767a615b30fc1c0f91d" + "runtime-id": "30ba704c804d4f279f8185780632be35" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1, "_dd.tracer_kr": 1.0, "_sampling_priority_v1": 1, - "process_id": 7557 + "process_id": 44870 }, - "duration": 4871728, - "start": 1694032216812355050 + "duration": 7914000, + "start": 1750966103048716000 }]] diff --git a/tests/snapshots/tests.contrib.openai.test_openai.test_model_list.json b/tests/snapshots/tests.contrib.openai.test_openai.test_model_list.json index 6c1decd8122..b3a9764243e 100644 --- a/tests/snapshots/tests.contrib.openai.test_openai.test_model_list.json +++ b/tests/snapshots/tests.contrib.openai.test_openai.test_model_list.json @@ -10,18 +10,15 @@ "error": 0, "meta": { "_dd.p.dm": "-0", - "_dd.p.tid": "654a694400000000", + "_dd.p.tid": "685d9f5e00000000", "component": "openai", "language": "python", - "openai.api_base": "https://api.openai.com/v1", - "openai.api_type": "open_ai", "openai.base_url": "https://api.openai.com/v1/", "openai.request.client": "OpenAI", "openai.request.endpoint": "/v1/models", "openai.request.method": "GET", - "openai.request.user": "ddtrace-test", "openai.user.api_key": "sk-...key>", - "runtime-id": "e3412e4f1afe4767a615b30fc1c0f91d" + "runtime-id": "30ba704c804d4f279f8185780632be35" }, "metrics": { "_dd.measured": 1, @@ -29,8 +26,8 @@ "_dd.tracer_kr": 1.0, "_sampling_priority_v1": 1, "openai.response.count": 112, - "process_id": 7557 + "process_id": 44870 }, - "duration": 19354643, - "start": 1694032212968004056 + "duration": 23162000, + "start": 1750966110511645000 }]] diff --git a/tests/snapshots/tests.contrib.openai.test_openai.test_model_retrieve.json b/tests/snapshots/tests.contrib.openai.test_openai.test_model_retrieve.json index 37061e9695d..3403ea6c5d2 100644 --- a/tests/snapshots/tests.contrib.openai.test_openai.test_model_retrieve.json +++ b/tests/snapshots/tests.contrib.openai.test_openai.test_model_retrieve.json @@ -10,32 +10,29 @@ "error": 0, "meta": { "_dd.p.dm": "-0", - "_dd.p.tid": "654a694400000000", + "_dd.p.tid": "685d9f5b00000000", "component": "openai", "language": "python", - "openai.api_base": "https://api.openai.com/v1", - "openai.api_type": "open_ai", "openai.base_url": "https://api.openai.com/v1/", "openai.request.client": "OpenAI", "openai.request.endpoint": "/v1/models/*", "openai.request.method": "GET", "openai.request.model": "curie", - "openai.request.user": "ddtrace-test", "openai.response.created": "1649359874", "openai.response.id": "curie", "openai.response.owned_by": "openai", "openai.response.parent": "None", "openai.response.root": "curie", "openai.user.api_key": "sk-...key>", - "runtime-id": "e3412e4f1afe4767a615b30fc1c0f91d" + "runtime-id": "30ba704c804d4f279f8185780632be35" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1, "_dd.tracer_kr": 1.0, "_sampling_priority_v1": 1, - "process_id": 7557 + "process_id": 44870 }, - "duration": 5465877, - "start": 1694032213229778563 + "duration": 49103000, + "start": 1750966107549141000 }]] diff --git a/tests/snapshots/tests.contrib.openai.test_openai.test_response.json b/tests/snapshots/tests.contrib.openai.test_openai.test_response.json index 79d9bcce51a..17c2d2be0f5 100644 --- a/tests/snapshots/tests.contrib.openai.test_openai.test_response.json +++ b/tests/snapshots/tests.contrib.openai.test_openai.test_response.json @@ -10,21 +10,19 @@ "error": 0, "meta": { "_dd.p.dm": "-0", - "_dd.p.tid": "681e37a400000000", + "_dd.p.tid": "685d9fb100000000", "component": "openai", "language": "python", "openai.base_url": "https://api.openai.com/v1/", "openai.organization.name": "datadog-staging", "openai.request.client": "OpenAI", "openai.request.endpoint": "/v1/responses", - "openai.request.max_output_tokens": "100", "openai.request.method": "POST", "openai.request.model": "gpt-4.1", - "openai.request.top_p": "0.9", "openai.request.user": "ddtrace-test", "openai.response.model": "gpt-4.1-2025-04-14", "openai.user.api_key": "sk-...key>", - "runtime-id": "004faf115ab3455695f3b3ef95336182" + "runtime-id": "1042920229aa4a039d2564e2e64b1314" }, "metrics": { "_dd.measured": 1, @@ -35,11 +33,8 @@ "openai.organization.ratelimit.requests.remaining": 9999, "openai.organization.ratelimit.tokens.limit": 30000000, "openai.organization.ratelimit.tokens.remaining": 29999927, - "openai.response.usage.input_tokens": 53, - "openai.response.usage.output_tokens": 40, - "openai.response.usage.total_tokens": 93, - "process_id": 27085 + "process_id": 45407 }, - "duration": 1481426000, - "start": 1746810788728136000 + "duration": 17169000, + "start": 1750966193571494000 }]] diff --git a/tests/snapshots/tests.contrib.openai.test_openai.test_response_error.json b/tests/snapshots/tests.contrib.openai.test_openai.test_response_error.json index 03268d3fb71..5c0c877bf20 100644 --- a/tests/snapshots/tests.contrib.openai.test_openai.test_response_error.json +++ b/tests/snapshots/tests.contrib.openai.test_openai.test_response_error.json @@ -10,10 +10,10 @@ "error": 1, "meta": { "_dd.p.dm": "-0", - "_dd.p.tid": "681e376800000000", + "_dd.p.tid": "685d9fb300000000", "component": "openai", "error.message": "Error code: 400 - {'error': {'message': \"The requested model 'invalid-model' does not exist.\", 'type': 'invalid_request_error', 'param': 'model', 'code': 'model_not_found'}}", - "error.stack": "Traceback (most recent call last):\n File \"/Users/xinyuan.guo/dd-repos/dd-trace-py/ddtrace/contrib/internal/openai/patch.py\", line 261, in patched_endpoint\n resp = func(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/xinyuan.guo/dd-repos/dd-trace-py/.riot/venv_py31210_mock_pytest_pytest-mock_coverage_pytest-cov_opentracing_hypothesis6451_vcrpy_urllib3~126_pytest-asyncio0211_pytest-randomly_openai~1762_tiktoken_pillow/lib/python3.12/site-packages/openai/_utils/_utils.py\", line 287, in wrapper\n return func(*args, **kwargs)\n ^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/xinyuan.guo/dd-repos/dd-trace-py/.riot/venv_py31210_mock_pytest_pytest-mock_coverage_pytest-cov_opentracing_hypothesis6451_vcrpy_urllib3~126_pytest-asyncio0211_pytest-randomly_openai~1762_tiktoken_pillow/lib/python3.12/site-packages/openai/resources/responses/responses.py\", line 656, in create\n return self._post(\n ^^^^^^^^^^^\n File \"/Users/xinyuan.guo/dd-repos/dd-trace-py/.riot/venv_py31210_mock_pytest_pytest-mock_coverage_pytest-cov_opentracing_hypothesis6451_vcrpy_urllib3~126_pytest-asyncio0211_pytest-randomly_openai~1762_tiktoken_pillow/lib/python3.12/site-packages/openai/_base_client.py\", line 1239, in post\n return cast(ResponseT, self.request(cast_to, opts, stream=stream, stream_cls=stream_cls))\n ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^\n File \"/Users/xinyuan.guo/dd-repos/dd-trace-py/.riot/venv_py31210_mock_pytest_pytest-mock_coverage_pytest-cov_opentracing_hypothesis6451_vcrpy_urllib3~126_pytest-asyncio0211_pytest-randomly_openai~1762_tiktoken_pillow/lib/python3.12/site-packages/openai/_base_client.py\", line 1034, in request\n raise self._make_status_error_from_response(err.response) from None\nopenai.BadRequestError: Error code: 400 - {'error': {'message': \"The requested model 'invalid-model' does not exist.\", 'type': 'invalid_request_error', 'param': 'model', 'code': 'model_not_found'}}\n", + "error.stack": "Traceback (most recent call last):\n File \"/Users/jacob.simpher/go/src/github.com/DataDog/dd-trace-py/ddtrace/contrib/internal/openai/patch.py\", line 269, in patched_endpoint\n resp = func(*args, **kwargs)\n File \"/Users/jacob.simpher/go/src/github.com/DataDog/dd-trace-py/.riot/venv_py31013_mock_pytest_pytest-mock_coverage_pytest-cov_opentracing_hypothesis6451_vcrpy_urllib3~126_pytest-asyncio0211_pytest-randomly_openai_tiktoken_pillow/lib/python3.10/site-packages/openai/resources/responses/responses.py\", line 700, in create\n return self._post(\n File \"/Users/jacob.simpher/go/src/github.com/DataDog/dd-trace-py/.riot/venv_py31013_mock_pytest_pytest-mock_coverage_pytest-cov_opentracing_hypothesis6451_vcrpy_urllib3~126_pytest-asyncio0211_pytest-randomly_openai_tiktoken_pillow/lib/python3.10/site-packages/openai/_base_client.py\", line 1249, in post\n return cast(ResponseT, self.request(cast_to, opts, stream=stream, stream_cls=stream_cls))\n File \"/Users/jacob.simpher/go/src/github.com/DataDog/dd-trace-py/.riot/venv_py31013_mock_pytest_pytest-mock_coverage_pytest-cov_opentracing_hypothesis6451_vcrpy_urllib3~126_pytest-asyncio0211_pytest-randomly_openai_tiktoken_pillow/lib/python3.10/site-packages/openai/_base_client.py\", line 1037, in request\n raise self._make_status_error_from_response(err.response) from None\nopenai.BadRequestError: Error code: 400 - {'error': {'message': \"The requested model 'invalid-model' does not exist.\", 'type': 'invalid_request_error', 'param': 'model', 'code': 'model_not_found'}}\n", "error.type": "openai.BadRequestError", "language": "python", "openai.base_url": "https://api.openai.com/v1/", @@ -23,15 +23,15 @@ "openai.request.model": "invalid-model", "openai.request.user": "ddtrace-test", "openai.user.api_key": "sk-...key>", - "runtime-id": "9e8d745115a84d8781a697913880856b" + "runtime-id": "1042920229aa4a039d2564e2e64b1314" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1, "_dd.tracer_kr": 1.0, "_sampling_priority_v1": 1, - "process_id": 26823 + "process_id": 45407 }, - "duration": 288751000, - "start": 1746810728029098000 + "duration": 2267000, + "start": 1750966195657867000 }]] diff --git a/tests/snapshots/tests.contrib.openai.test_openai.test_response_stream.json b/tests/snapshots/tests.contrib.openai.test_openai.test_response_stream.json index 15a0cb36fb5..61867eca266 100644 --- a/tests/snapshots/tests.contrib.openai.test_openai.test_response_stream.json +++ b/tests/snapshots/tests.contrib.openai.test_openai.test_response_stream.json @@ -10,7 +10,7 @@ "error": 0, "meta": { "_dd.p.dm": "-0", - "_dd.p.tid": "681e3e4700000000", + "_dd.p.tid": "685d9fcd00000000", "component": "openai", "language": "python", "openai.base_url": "https://api.openai.com/v1/", @@ -19,23 +19,17 @@ "openai.request.endpoint": "/v1/responses", "openai.request.method": "POST", "openai.request.model": "gpt-4.1", - "openai.request.stream": "True", "openai.response.model": "gpt-4.1-2025-04-14", "openai.user.api_key": "sk-...key>", - "runtime-id": "30471ef7daa045a58ce1cb48f645bc9f" + "runtime-id": "1042920229aa4a039d2564e2e64b1314" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1, "_dd.tracer_kr": 1.0, "_sampling_priority_v1": 1, - "openai.request.prompt_tokens_estimated": 0, - "openai.response.completion_tokens_estimated": 0, - "openai.response.usage.completion_tokens": 12, - "openai.response.usage.prompt_tokens": 9, - "openai.response.usage.total_tokens": 21, - "process_id": 34405 + "process_id": 45407 }, - "duration": 37410000, - "start": 1746812487815666000 + "duration": 227118000, + "start": 1750966221724906000 }]] diff --git a/tests/snapshots/tests.contrib.openai.test_openai.test_response_tools.json b/tests/snapshots/tests.contrib.openai.test_openai.test_response_tools.json index 9d525ee5f6f..9ad1ba662a4 100644 --- a/tests/snapshots/tests.contrib.openai.test_openai.test_response_tools.json +++ b/tests/snapshots/tests.contrib.openai.test_openai.test_response_tools.json @@ -10,7 +10,7 @@ "error": 0, "meta": { "_dd.p.dm": "-0", - "_dd.p.tid": "681e36b800000000", + "_dd.p.tid": "685d9fc300000000", "component": "openai", "language": "python", "openai.base_url": "https://api.openai.com/v1/", @@ -19,10 +19,9 @@ "openai.request.endpoint": "/v1/responses", "openai.request.method": "POST", "openai.request.model": "gpt-4.1", - "openai.request.tools": "[{'type': 'web_search_preview'}]", "openai.response.model": "gpt-4.1-2025-04-14", "openai.user.api_key": "sk-...key>", - "runtime-id": "d833e3ed7def4ba9892137b7a5d4d0b6" + "runtime-id": "1042920229aa4a039d2564e2e64b1314" }, "metrics": { "_dd.measured": 1, @@ -33,11 +32,8 @@ "openai.organization.ratelimit.requests.remaining": 9999, "openai.organization.ratelimit.tokens.limit": 30000000, "openai.organization.ratelimit.tokens.remaining": 29999634, - "openai.response.usage.input_tokens": 347, - "openai.response.usage.output_tokens": 46, - "openai.response.usage.total_tokens": 393, - "process_id": 26121 + "process_id": 45407 }, - "duration": 29555000, - "start": 1746810552251431000 + "duration": 22299000, + "start": 1750966211816159000 }]] diff --git a/tests/snapshots/tests.contrib.openai.test_openai.test_response_tools_stream.json b/tests/snapshots/tests.contrib.openai.test_openai.test_response_tools_stream.json index f089158fa58..509d83f6529 100644 --- a/tests/snapshots/tests.contrib.openai.test_openai.test_response_tools_stream.json +++ b/tests/snapshots/tests.contrib.openai.test_openai.test_response_tools_stream.json @@ -10,7 +10,7 @@ "error": 0, "meta": { "_dd.p.dm": "-0", - "_dd.p.tid": "681e3df600000000", + "_dd.p.tid": "685d9fbe00000000", "component": "openai", "language": "python", "openai.base_url": "https://api.openai.com/v1/", @@ -19,24 +19,17 @@ "openai.request.endpoint": "/v1/responses", "openai.request.method": "POST", "openai.request.model": "gpt-4.1", - "openai.request.stream": "True", - "openai.request.tools": "[{'type': 'web_search_preview'}]", "openai.response.model": "gpt-4.1-2025-04-14", "openai.user.api_key": "sk-...key>", - "runtime-id": "94ddd3cacc11443097f540977c3f6d69" + "runtime-id": "1042920229aa4a039d2564e2e64b1314" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1, "_dd.tracer_kr": 1.0, "_sampling_priority_v1": 1, - "openai.request.prompt_tokens_estimated": 0, - "openai.response.completion_tokens_estimated": 0, - "openai.response.usage.completion_tokens": 13, - "openai.response.usage.prompt_tokens": 303, - "openai.response.usage.total_tokens": 316, - "process_id": 34040 + "process_id": 45407 }, - "duration": 164471000, - "start": 1746812406343262000 + "duration": 233919000, + "start": 1750966206887957000 }]] diff --git a/tests/snapshots/tests.contrib.openai.test_openai.test_span_finish_on_stream_error.json b/tests/snapshots/tests.contrib.openai.test_openai.test_span_finish_on_stream_error.json index d35ad5e0491..2c215602f3a 100644 --- a/tests/snapshots/tests.contrib.openai.test_openai.test_span_finish_on_stream_error.json +++ b/tests/snapshots/tests.contrib.openai.test_openai.test_span_finish_on_stream_error.json @@ -10,34 +10,27 @@ "error": 1, "meta": { "_dd.p.dm": "-0", - "_dd.p.tid": "654a694400000000", + "_dd.p.tid": "685d9f6000000000", "component": "openai", - "error.message": "Incorrect API key provided: sk-wrong****-key. You can find your API key at https://platform.openai.com/account/api-keys.", - "error.stack": "Traceback (most recent call last):\n openai.error.AuthenticationError: Incorrect API key provided: sk-wrong****-key. You can find your API key at https://platform.openai.com/account/api-keys.\n", - "error.type": "openai.error.AuthenticationError", + "error.message": "Error code: 401 - {'error': {'message': 'Incorrect API key provided: sk-wrong****-key. You can find your API key at https://platform.openai.com/account/api-keys.', 'type': 'invalid_request_error', 'param': None, 'code': 'invalid_api_key'}}", + "error.stack": "Traceback (most recent call last):\n File \"/Users/jacob.simpher/go/src/github.com/DataDog/dd-trace-py/ddtrace/contrib/internal/openai/patch.py\", line 269, in patched_endpoint\n resp = func(*args, **kwargs)\n File \"/Users/jacob.simpher/go/src/github.com/DataDog/dd-trace-py/.riot/venv_py31013_mock_pytest_pytest-mock_coverage_pytest-cov_opentracing_hypothesis6451_vcrpy_urllib3~126_pytest-asyncio0211_pytest-randomly_openai[embeddingsdatalib]100_pillow950_httpx0272/lib/python3.10/site-packages/openai/_utils/_utils.py\", line 299, in wrapper\n return func(*args, **kwargs)\n File \"/Users/jacob.simpher/go/src/github.com/DataDog/dd-trace-py/.riot/venv_py31013_mock_pytest_pytest-mock_coverage_pytest-cov_opentracing_hypothesis6451_vcrpy_urllib3~126_pytest-asyncio0211_pytest-randomly_openai[embeddingsdatalib]100_pillow950_httpx0272/lib/python3.10/site-packages/openai/resources/completions.py\", line 532, in create\n return self._post(\n File \"/Users/jacob.simpher/go/src/github.com/DataDog/dd-trace-py/.riot/venv_py31013_mock_pytest_pytest-mock_coverage_pytest-cov_opentracing_hypothesis6451_vcrpy_urllib3~126_pytest-asyncio0211_pytest-randomly_openai[embeddingsdatalib]100_pillow950_httpx0272/lib/python3.10/site-packages/openai/_base_client.py\", line 1055, in post\n return cast(ResponseT, self.request(cast_to, opts, stream=stream, stream_cls=stream_cls))\n File \"/Users/jacob.simpher/go/src/github.com/DataDog/dd-trace-py/.riot/venv_py31013_mock_pytest_pytest-mock_coverage_pytest-cov_opentracing_hypothesis6451_vcrpy_urllib3~126_pytest-asyncio0211_pytest-randomly_openai[embeddingsdatalib]100_pillow950_httpx0272/lib/python3.10/site-packages/openai/_base_client.py\", line 834, in request\n return self._request(\n File \"/Users/jacob.simpher/go/src/github.com/DataDog/dd-trace-py/.riot/venv_py31013_mock_pytest_pytest-mock_coverage_pytest-cov_opentracing_hypothesis6451_vcrpy_urllib3~126_pytest-asyncio0211_pytest-randomly_openai[embeddingsdatalib]100_pillow950_httpx0272/lib/python3.10/site-packages/openai/_base_client.py\", line 877, in _request\n raise self._make_status_error_from_response(err.response) from None\nopenai.AuthenticationError: Error code: 401 - {'error': {'message': 'Incorrect API key provided: sk-wrong****-key. You can find your API key at https://platform.openai.com/account/api-keys.', 'type': 'invalid_request_error', 'param': None, 'code': 'invalid_api_key'}}\n", + "error.type": "openai.AuthenticationError", "language": "python", - "openai.api_base": "https://api.openai.com/v1", - "openai.api_type": "open_ai", "openai.base_url": "https://api.openai.com/v1/", "openai.request.client": "OpenAI", "openai.request.endpoint": "/v1/completions", - "openai.request.max_tokens": "150", "openai.request.method": "POST", "openai.request.model": "text-curie-001", - "openai.request.n": "1", - "openai.request.prompt.0": "how does openai tokenize prompts?", - "openai.request.stream": "True", - "openai.request.temperature": "0.8", "openai.user.api_key": "sk-...-key", - "runtime-id": "0a0a92d644714949b7544ee81c6d1bf1" + "runtime-id": "30ba704c804d4f279f8185780632be35" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1, "_dd.tracer_kr": 1.0, "_sampling_priority_v1": 1, - "process_id": 91222 + "process_id": 44870 }, - "duration": 291271000, - "start": 1694536282656608000 + "duration": 12632000, + "start": 1750966112949925000 }]] diff --git a/tests/snapshots/tests.contrib.openai.test_openai.test_transcribe.json b/tests/snapshots/tests.contrib.openai.test_openai.test_transcribe.json deleted file mode 100644 index bdfe0d0f946..00000000000 --- a/tests/snapshots/tests.contrib.openai.test_openai.test_transcribe.json +++ /dev/null @@ -1,47 +0,0 @@ -[[ - { - "name": "openai.request", - "service": "tests.contrib.openai", - "resource": "createTranscription", - "trace_id": 0, - "span_id": 1, - "parent_id": 0, - "type": "", - "error": 0, - "meta": { - "_dd.p.dm": "-0", - "_dd.p.tid": "654a694400000000", - "component": "openai", - "language": "python", - "openai.api_base": "https://api.openai.com/v1", - "openai.api_type": "open_ai", - "openai.organization.name": "datadog-4", - "openai.request.client": "OpenAI", - "openai.request.endpoint": "/v1/audio/transcriptions", - "openai.request.filename": "english_audio.mp3", - "openai.request.language": "en", - "openai.request.method": "POST", - "openai.request.model": "whisper-1", - "openai.request.prompt": "what's that over there?", - "openai.request.response_format": "verbose_json", - "openai.request.temperature": "0.3", - "openai.request.user": "ddtrace-test", - "openai.response.duration": "2.78", - "openai.response.language": "english", - "openai.response.text": "Look at all those chickens!", - "openai.user.api_key": "sk-...key>", - "runtime-id": "1061c79d943c4fb2ae50fecccf14398f" - }, - "metrics": { - "_dd.measured": 1, - "_dd.top_level": 1, - "_dd.tracer_kr": 1.0, - "_sampling_priority_v1": 1, - "openai.organization.ratelimit.requests.limit": 50, - "openai.organization.ratelimit.requests.remaining": 49, - "openai.response.segments_count": 1, - "process_id": 7755 - }, - "duration": 4677473, - "start": 1694032242909745913 - }]] diff --git a/tests/snapshots/tests.contrib.openai.test_openai.test_translate.json b/tests/snapshots/tests.contrib.openai.test_openai.test_translate.json deleted file mode 100644 index 2582c536ed1..00000000000 --- a/tests/snapshots/tests.contrib.openai.test_openai.test_translate.json +++ /dev/null @@ -1,45 +0,0 @@ -[[ - { - "name": "openai.request", - "service": "tests.contrib.openai", - "resource": "createTranslation", - "trace_id": 0, - "span_id": 1, - "parent_id": 0, - "type": "", - "error": 0, - "meta": { - "_dd.p.dm": "-0", - "_dd.p.tid": "654a694400000000", - "component": "openai", - "language": "python", - "openai.api_base": "https://api.openai.com/v1", - "openai.api_type": "open_ai", - "openai.organization.name": "datadog-4", - "openai.request.client": "OpenAI", - "openai.request.endpoint": "/v1/audio/translations", - "openai.request.filename": "french_audio.mp3", - "openai.request.method": "POST", - "openai.request.model": "whisper-1", - "openai.request.prompt": "and when I've given up,", - "openai.request.response_format": "verbose_json", - "openai.request.user": "ddtrace-test", - "openai.response.duration": "3.62", - "openai.response.language": "english", - "openai.response.text": "when I've had enough of running after.", - "openai.user.api_key": "sk-...key>", - "runtime-id": "1061c79d943c4fb2ae50fecccf14398f" - }, - "metrics": { - "_dd.measured": 1, - "_dd.top_level": 1, - "_dd.tracer_kr": 1.0, - "_sampling_priority_v1": 1, - "openai.organization.ratelimit.requests.limit": 50, - "openai.organization.ratelimit.requests.remaining": 49, - "openai.response.segments_count": 1, - "process_id": 7755 - }, - "duration": 4918689, - "start": 1694032243122777479 - }]] diff --git a/tests/snapshots/tests.contrib.openai.test_openai_v1.test_completion_stream_est_tokens.json b/tests/snapshots/tests.contrib.openai.test_openai_v1.test_completion_stream_est_tokens.json index 445dc39db98..2690c08ec17 100644 --- a/tests/snapshots/tests.contrib.openai.test_openai_v1.test_completion_stream_est_tokens.json +++ b/tests/snapshots/tests.contrib.openai.test_openai_v1.test_completion_stream_est_tokens.json @@ -10,7 +10,7 @@ "error": 0, "meta": { "_dd.p.dm": "-0", - "_dd.p.tid": "677c221c00000000", + "_dd.p.tid": "685d9f5e00000000", "component": "openai", "language": "python", "openai.base_url": "https://api.openai.com/v1/", @@ -19,14 +19,9 @@ "openai.request.endpoint": "/v1/completions", "openai.request.method": "POST", "openai.request.model": "ada", - "openai.request.n": "None", - "openai.request.prompt.0": "Hello world", - "openai.request.stream": "True", - "openai.response.choices.0.finish_reason": "length", - "openai.response.choices.0.text": "! ... A page layouts page drawer? ... Interesting. The \"Tools\" is", "openai.response.model": "ada", "openai.user.api_key": "sk-...key>", - "runtime-id": "24f8e851c87e4f758c73d6acd0aaf82b" + "runtime-id": "30ba704c804d4f279f8185780632be35" }, "metrics": { "_dd.measured": 1, @@ -37,13 +32,8 @@ "openai.organization.ratelimit.requests.remaining": 2999, "openai.organization.ratelimit.tokens.limit": 250000, "openai.organization.ratelimit.tokens.remaining": 249979, - "openai.request.prompt_tokens_estimated": 1, - "openai.response.completion_tokens_estimated": 1, - "openai.response.usage.completion_tokens": 16, - "openai.response.usage.prompt_tokens": 2, - "openai.response.usage.total_tokens": 18, - "process_id": 47101 + "process_id": 44870 }, - "duration": 37957000, - "start": 1736188444222291000 + "duration": 15171000, + "start": 1750966110627253000 }]] diff --git a/tests/snapshots/tests.contrib.openai.test_openai_v1.test_empty_streamed_chat_completion_resp_returns.json b/tests/snapshots/tests.contrib.openai.test_openai_v1.test_empty_streamed_chat_completion_resp_returns.json index 6be1bf6579f..14defbf66dc 100644 --- a/tests/snapshots/tests.contrib.openai.test_openai_v1.test_empty_streamed_chat_completion_resp_returns.json +++ b/tests/snapshots/tests.contrib.openai.test_openai_v1.test_empty_streamed_chat_completion_resp_returns.json @@ -10,40 +10,24 @@ "error": 0, "meta": { "_dd.p.dm": "-0", - "_dd.p.tid": "682e43a000000000", + "_dd.p.tid": "685d9f5c00000000", "component": "openai", "language": "python", "openai.base_url": "https://api.openai.com/v1/", "openai.request.client": "OpenAI", "openai.request.endpoint": "/v1/chat/completions", - "openai.request.messages.0.content": "You are a helpful assistant.", - "openai.request.messages.0.name": "", - "openai.request.messages.0.role": "system", - "openai.request.messages.1.content": "Who won the world series in 2020?", - "openai.request.messages.1.name": "", - "openai.request.messages.1.role": "user", - "openai.request.messages.2.content": "The Los Angeles Dodgers won the World Series in 2020.", - "openai.request.messages.2.name": "", - "openai.request.messages.2.role": "assistant", - "openai.request.messages.3.content": "Where was it played?", - "openai.request.messages.3.name": "", - "openai.request.messages.3.role": "user", "openai.request.method": "POST", "openai.request.model": "gpt-3.5-turbo", - "openai.request.n": "2", - "openai.request.stream": "True", - "openai.request.top_p": "0.9", - "openai.request.user": "ddtrace-test", "openai.user.api_key": "sk-...key>", - "runtime-id": "6689259d4fd54181890b67da2da79e8c" + "runtime-id": "30ba704c804d4f279f8185780632be35" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1, "_dd.tracer_kr": 1.0, "_sampling_priority_v1": 1, - "process_id": 21779 + "process_id": 44870 }, - "duration": 1348003000, - "start": 1747862432348380000 + "duration": 1519000, + "start": 1750966108834780000 }]] diff --git a/tests/snapshots/tests.contrib.openai.test_openai_v1.test_empty_streamed_completion_resp_returns.json b/tests/snapshots/tests.contrib.openai.test_openai_v1.test_empty_streamed_completion_resp_returns.json index 99d09a04502..d6e67308d13 100644 --- a/tests/snapshots/tests.contrib.openai.test_openai_v1.test_empty_streamed_completion_resp_returns.json +++ b/tests/snapshots/tests.contrib.openai.test_openai_v1.test_empty_streamed_completion_resp_returns.json @@ -10,30 +10,24 @@ "error": 0, "meta": { "_dd.p.dm": "-0", - "_dd.p.tid": "682e44fb00000000", + "_dd.p.tid": "685d9f5800000000", "component": "openai", "language": "python", "openai.base_url": "https://api.openai.com/v1/", "openai.request.client": "OpenAI", "openai.request.endpoint": "/v1/completions", - "openai.request.max_tokens": "150", "openai.request.method": "POST", "openai.request.model": "curie", - "openai.request.n": "1", - "openai.request.prompt.0": "As Descartes said, I think, therefore", - "openai.request.stream": "True", - "openai.request.temperature": "0.8", - "openai.request.user": "ddtrace-test", "openai.user.api_key": "sk-...key>", - "runtime-id": "4d7a9550c4664767af07584df0176dc2" + "runtime-id": "30ba704c804d4f279f8185780632be35" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1, "_dd.tracer_kr": 1.0, "_sampling_priority_v1": 1, - "process_id": 24337 + "process_id": 44870 }, - "duration": 845000, - "start": 1747862779488435000 + "duration": 1117000, + "start": 1750966104411585000 }]] diff --git a/tests/snapshots/tests.contrib.openai.test_openai_v1.test_empty_streamed_response_resp_returns.json b/tests/snapshots/tests.contrib.openai.test_openai_v1.test_empty_streamed_response_resp_returns.json index e82d58329b1..59592ff32af 100644 --- a/tests/snapshots/tests.contrib.openai.test_openai_v1.test_empty_streamed_response_resp_returns.json +++ b/tests/snapshots/tests.contrib.openai.test_openai_v1.test_empty_streamed_response_resp_returns.json @@ -10,7 +10,7 @@ "error": 0, "meta": { "_dd.p.dm": "-0", - "_dd.p.tid": "682e47b000000000", + "_dd.p.tid": "685d9fb100000000", "component": "openai", "language": "python", "openai.base_url": "https://api.openai.com/v1/", @@ -18,17 +18,16 @@ "openai.request.endpoint": "/v1/responses", "openai.request.method": "POST", "openai.request.model": "gpt-4.1", - "openai.request.stream": "True", "openai.user.api_key": "sk-...key>", - "runtime-id": "fb5d2f34f378429aa0be083c68187ecb" + "runtime-id": "1042920229aa4a039d2564e2e64b1314" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1, "_dd.tracer_kr": 1.0, "_sampling_priority_v1": 1, - "process_id": 27589 + "process_id": 45407 }, - "duration": 1079000, - "start": 1747863472917077000 + "duration": 725000, + "start": 1750966193983669000 }]] diff --git a/tests/snapshots/tests.contrib.openai.test_openai_v1.test_integration_async.json b/tests/snapshots/tests.contrib.openai.test_openai_v1.test_integration_async.json index ab2f74aa60b..4f2d345fa9d 100644 --- a/tests/snapshots/tests.contrib.openai.test_openai_v1.test_integration_async.json +++ b/tests/snapshots/tests.contrib.openai.test_openai_v1.test_integration_async.json @@ -10,30 +10,20 @@ "error": 0, "meta": { "_dd.p.dm": "-0", - "_dd.p.tid": "6567512a00000000", + "_dd.p.tid": "685d9f5a00000000", "component": "openai", "language": "python", "openai.base_url": "https://api.openai.com/v1/", "openai.organization.name": "datadog-4", "openai.request.client": "OpenAI", "openai.request.endpoint": "/v1/completions", - "openai.request.max_tokens": "10", "openai.request.method": "POST", "openai.request.model": "ada", - "openai.request.n": "2", - "openai.request.prompt.0": "Hello world", - "openai.request.stop": ".", - "openai.request.temperature": "0.8", - "openai.request.user": "ddtrace-test", - "openai.response.choices.0.finish_reason": "length", - "openai.response.choices.0.text": ", relax!\u201d I said to my laptop", - "openai.response.choices.1.finish_reason": "stop", - "openai.response.choices.1.text": " (1", "openai.response.created": "1681852797", "openai.response.id": "cmpl-76n1xLvRKv3mfjx7hJ41UHrHy9ar6", "openai.response.model": "ada", "openai.user.api_key": "sk-...key>", - "runtime-id": "0df8b1821db8449bb0331476cea74166" + "runtime-id": "cda2595eab8f40c1a8761d0a47f4cd02" }, "metrics": { "_dd.measured": 1, @@ -44,11 +34,8 @@ "openai.organization.ratelimit.requests.remaining": 2999, "openai.organization.ratelimit.tokens.limit": 250000, "openai.organization.ratelimit.tokens.remaining": 249979, - "openai.response.usage.completion_tokens": 12, - "openai.response.usage.prompt_tokens": 2, - "openai.response.usage.total_tokens": 14, - "process_id": 24448 + "process_id": 44908 }, - "duration": 17466000, - "start": 1701269802293573000 + "duration": 18549000, + "start": 1750966106910199000 }]] diff --git a/tests/snapshots/tests.contrib.openai.test_openai_v1.test_integration_service_name[None-None].json b/tests/snapshots/tests.contrib.openai.test_openai_v1.test_integration_service_name[None-None].json index d7faa3f22e2..a9c2dd46b92 100644 --- a/tests/snapshots/tests.contrib.openai.test_openai_v1.test_integration_service_name[None-None].json +++ b/tests/snapshots/tests.contrib.openai.test_openai_v1.test_integration_service_name[None-None].json @@ -10,7 +10,7 @@ "error": 0, "meta": { "_dd.p.dm": "-0", - "_dd.p.tid": "65674d7a00000000", + "_dd.p.tid": "685d9f6300000000", "component": "openai", "language": "python", "openai.base_url": "https://api.openai.com/v1/", @@ -19,16 +19,11 @@ "openai.request.endpoint": "/v1/completions", "openai.request.method": "POST", "openai.request.model": "ada", - "openai.request.prompt.0": "hello world", - "openai.response.choices.0.finish_reason": "length", - "openai.response.choices.0.text": ", relax!\u201d I said to my laptop", - "openai.response.choices.1.finish_reason": "stop", - "openai.response.choices.1.text": " (1", "openai.response.created": "1681852797", "openai.response.id": "cmpl-76n1xLvRKv3mfjx7hJ41UHrHy9ar6", "openai.response.model": "ada", "openai.user.api_key": "sk-...key>", - "runtime-id": "353dc092edd14aabbcf9a72caaecf791" + "runtime-id": "c381141a5a154253939344dc3fa807c5" }, "metrics": { "_dd.measured": 1, @@ -39,11 +34,8 @@ "openai.organization.ratelimit.requests.remaining": 2999, "openai.organization.ratelimit.tokens.limit": 250000, "openai.organization.ratelimit.tokens.remaining": 249979, - "openai.response.usage.completion_tokens": 12, - "openai.response.usage.prompt_tokens": 2, - "openai.response.usage.total_tokens": 14, - "process_id": 20806 + "process_id": 45002 }, - "duration": 16421000, - "start": 1701268858436668000 + "duration": 23828000, + "start": 1750966115505140000 }]] diff --git a/tests/snapshots/tests.contrib.openai.test_openai_v1.test_integration_service_name[None-v0].json b/tests/snapshots/tests.contrib.openai.test_openai_v1.test_integration_service_name[None-v0].json index 3af343273f6..3bad519875d 100644 --- a/tests/snapshots/tests.contrib.openai.test_openai_v1.test_integration_service_name[None-v0].json +++ b/tests/snapshots/tests.contrib.openai.test_openai_v1.test_integration_service_name[None-v0].json @@ -10,7 +10,7 @@ "error": 0, "meta": { "_dd.p.dm": "-0", - "_dd.p.tid": "65674d7b00000000", + "_dd.p.tid": "685d9f6200000000", "component": "openai", "language": "python", "openai.base_url": "https://api.openai.com/v1/", @@ -19,16 +19,11 @@ "openai.request.endpoint": "/v1/completions", "openai.request.method": "POST", "openai.request.model": "ada", - "openai.request.prompt.0": "hello world", - "openai.response.choices.0.finish_reason": "length", - "openai.response.choices.0.text": ", relax!\u201d I said to my laptop", - "openai.response.choices.1.finish_reason": "stop", - "openai.response.choices.1.text": " (1", "openai.response.created": "1681852797", "openai.response.id": "cmpl-76n1xLvRKv3mfjx7hJ41UHrHy9ar6", "openai.response.model": "ada", "openai.user.api_key": "sk-...key>", - "runtime-id": "21ae4e699c2945ca8a8b62ad23df4b93" + "runtime-id": "94d5ce1ab774410aba8cdfbc426cc460" }, "metrics": { "_dd.measured": 1, @@ -39,11 +34,8 @@ "openai.organization.ratelimit.requests.remaining": 2999, "openai.organization.ratelimit.tokens.limit": 250000, "openai.organization.ratelimit.tokens.remaining": 249979, - "openai.response.usage.completion_tokens": 12, - "openai.response.usage.prompt_tokens": 2, - "openai.response.usage.total_tokens": 14, - "process_id": 20827 + "process_id": 44998 }, - "duration": 17257000, - "start": 1701268859363022000 + "duration": 18995000, + "start": 1750966114794574000 }]] diff --git a/tests/snapshots/tests.contrib.openai.test_openai_v1.test_integration_service_name[None-v1].json b/tests/snapshots/tests.contrib.openai.test_openai_v1.test_integration_service_name[None-v1].json index 7f51ec196a6..4539e4ed6d1 100644 --- a/tests/snapshots/tests.contrib.openai.test_openai_v1.test_integration_service_name[None-v1].json +++ b/tests/snapshots/tests.contrib.openai.test_openai_v1.test_integration_service_name[None-v1].json @@ -10,7 +10,7 @@ "error": 0, "meta": { "_dd.p.dm": "-0", - "_dd.p.tid": "65674d7c00000000", + "_dd.p.tid": "685d9f5c00000000", "component": "openai", "language": "python", "openai.base_url": "https://api.openai.com/v1/", @@ -19,16 +19,11 @@ "openai.request.endpoint": "/v1/completions", "openai.request.method": "POST", "openai.request.model": "ada", - "openai.request.prompt.0": "hello world", - "openai.response.choices.0.finish_reason": "length", - "openai.response.choices.0.text": ", relax!\u201d I said to my laptop", - "openai.response.choices.1.finish_reason": "stop", - "openai.response.choices.1.text": " (1", "openai.response.created": "1681852797", "openai.response.id": "cmpl-76n1xLvRKv3mfjx7hJ41UHrHy9ar6", "openai.response.model": "ada", "openai.user.api_key": "sk-...key>", - "runtime-id": "e375e3f9aafd4ed48dc476ec5fd3e3fe" + "runtime-id": "841aba39c63b46e2a4c2c6fdcf1d9b00" }, "metrics": { "_dd.measured": 1, @@ -39,11 +34,8 @@ "openai.organization.ratelimit.requests.remaining": 2999, "openai.organization.ratelimit.tokens.limit": 250000, "openai.organization.ratelimit.tokens.remaining": 249979, - "openai.response.usage.completion_tokens": 12, - "openai.response.usage.prompt_tokens": 2, - "openai.response.usage.total_tokens": 14, - "process_id": 20839 + "process_id": 44933 }, - "duration": 17259000, - "start": 1701268860302010000 + "duration": 18134000, + "start": 1750966108228531000 }]] diff --git a/tests/snapshots/tests.contrib.openai.test_openai_v1.test_integration_service_name[mysvc-None].json b/tests/snapshots/tests.contrib.openai.test_openai_v1.test_integration_service_name[mysvc-None].json index 35268ec5092..3a907d2b801 100644 --- a/tests/snapshots/tests.contrib.openai.test_openai_v1.test_integration_service_name[mysvc-None].json +++ b/tests/snapshots/tests.contrib.openai.test_openai_v1.test_integration_service_name[mysvc-None].json @@ -10,7 +10,7 @@ "error": 0, "meta": { "_dd.p.dm": "-0", - "_dd.p.tid": "65674d7d00000000", + "_dd.p.tid": "685d9f5900000000", "component": "openai", "language": "python", "openai.base_url": "https://api.openai.com/v1/", @@ -19,16 +19,11 @@ "openai.request.endpoint": "/v1/completions", "openai.request.method": "POST", "openai.request.model": "ada", - "openai.request.prompt.0": "hello world", - "openai.response.choices.0.finish_reason": "length", - "openai.response.choices.0.text": ", relax!\u201d I said to my laptop", - "openai.response.choices.1.finish_reason": "stop", - "openai.response.choices.1.text": " (1", "openai.response.created": "1681852797", "openai.response.id": "cmpl-76n1xLvRKv3mfjx7hJ41UHrHy9ar6", "openai.response.model": "ada", "openai.user.api_key": "sk-...key>", - "runtime-id": "2d71580ad11e4a7db7e26d9119308dfc" + "runtime-id": "1036de23f0fe49468cd48d79a3599474" }, "metrics": { "_dd.measured": 1, @@ -39,11 +34,8 @@ "openai.organization.ratelimit.requests.remaining": 2999, "openai.organization.ratelimit.tokens.limit": 250000, "openai.organization.ratelimit.tokens.remaining": 249979, - "openai.response.usage.completion_tokens": 12, - "openai.response.usage.prompt_tokens": 2, - "openai.response.usage.total_tokens": 14, - "process_id": 20848 + "process_id": 44901 }, - "duration": 17004000, - "start": 1701268861257868000 + "duration": 18256000, + "start": 1750966105881335000 }]] diff --git a/tests/snapshots/tests.contrib.openai.test_openai_v1.test_integration_service_name[mysvc-v0].json b/tests/snapshots/tests.contrib.openai.test_openai_v1.test_integration_service_name[mysvc-v0].json index 999dbb7529c..29932f10e9b 100644 --- a/tests/snapshots/tests.contrib.openai.test_openai_v1.test_integration_service_name[mysvc-v0].json +++ b/tests/snapshots/tests.contrib.openai.test_openai_v1.test_integration_service_name[mysvc-v0].json @@ -10,7 +10,7 @@ "error": 0, "meta": { "_dd.p.dm": "-0", - "_dd.p.tid": "65674d7e00000000", + "_dd.p.tid": "685d9f5800000000", "component": "openai", "language": "python", "openai.base_url": "https://api.openai.com/v1/", @@ -19,16 +19,11 @@ "openai.request.endpoint": "/v1/completions", "openai.request.method": "POST", "openai.request.model": "ada", - "openai.request.prompt.0": "hello world", - "openai.response.choices.0.finish_reason": "length", - "openai.response.choices.0.text": ", relax!\u201d I said to my laptop", - "openai.response.choices.1.finish_reason": "stop", - "openai.response.choices.1.text": " (1", "openai.response.created": "1681852797", "openai.response.id": "cmpl-76n1xLvRKv3mfjx7hJ41UHrHy9ar6", "openai.response.model": "ada", "openai.user.api_key": "sk-...key>", - "runtime-id": "c7185f8a015241f89346e12ea48f78ea" + "runtime-id": "cb59b7a74ad04b7988e5e4aa0c2c2724" }, "metrics": { "_dd.measured": 1, @@ -39,11 +34,8 @@ "openai.organization.ratelimit.requests.remaining": 2999, "openai.organization.ratelimit.tokens.limit": 250000, "openai.organization.ratelimit.tokens.remaining": 249979, - "openai.response.usage.completion_tokens": 12, - "openai.response.usage.prompt_tokens": 2, - "openai.response.usage.total_tokens": 14, - "process_id": 20864 + "process_id": 44889 }, - "duration": 17872000, - "start": 1701268862200031000 + "duration": 17737000, + "start": 1750966104045349000 }]] diff --git a/tests/snapshots/tests.contrib.openai.test_openai_v1.test_integration_service_name[mysvc-v1].json b/tests/snapshots/tests.contrib.openai.test_openai_v1.test_integration_service_name[mysvc-v1].json index 76d352a3f59..61fa17f102c 100644 --- a/tests/snapshots/tests.contrib.openai.test_openai_v1.test_integration_service_name[mysvc-v1].json +++ b/tests/snapshots/tests.contrib.openai.test_openai_v1.test_integration_service_name[mysvc-v1].json @@ -10,7 +10,7 @@ "error": 0, "meta": { "_dd.p.dm": "-0", - "_dd.p.tid": "65674d7f00000000", + "_dd.p.tid": "685d9f6400000000", "component": "openai", "language": "python", "openai.base_url": "https://api.openai.com/v1/", @@ -19,16 +19,11 @@ "openai.request.endpoint": "/v1/completions", "openai.request.method": "POST", "openai.request.model": "ada", - "openai.request.prompt.0": "hello world", - "openai.response.choices.0.finish_reason": "length", - "openai.response.choices.0.text": ", relax!\u201d I said to my laptop", - "openai.response.choices.1.finish_reason": "stop", - "openai.response.choices.1.text": " (1", "openai.response.created": "1681852797", "openai.response.id": "cmpl-76n1xLvRKv3mfjx7hJ41UHrHy9ar6", "openai.response.model": "ada", "openai.user.api_key": "sk-...key>", - "runtime-id": "9c0b10fb2b774175bc608645b0df6b96" + "runtime-id": "88c41cde899649fd96d20ee6114fe8b5" }, "metrics": { "_dd.measured": 1, @@ -39,11 +34,8 @@ "openai.organization.ratelimit.requests.remaining": 2999, "openai.organization.ratelimit.tokens.limit": 250000, "openai.organization.ratelimit.tokens.remaining": 249979, - "openai.response.usage.completion_tokens": 12, - "openai.response.usage.prompt_tokens": 2, - "openai.response.usage.total_tokens": 14, - "process_id": 20888 + "process_id": 45010 }, - "duration": 16629000, - "start": 1701268863135046000 + "duration": 18516000, + "start": 1750966116623129000 }]] diff --git a/tests/snapshots/tests.contrib.openai.test_openai_v1.test_integration_sync.json b/tests/snapshots/tests.contrib.openai.test_openai_v1.test_integration_sync.json index ab2f74aa60b..108545eb408 100644 --- a/tests/snapshots/tests.contrib.openai.test_openai_v1.test_integration_sync.json +++ b/tests/snapshots/tests.contrib.openai.test_openai_v1.test_integration_sync.json @@ -10,30 +10,20 @@ "error": 0, "meta": { "_dd.p.dm": "-0", - "_dd.p.tid": "6567512a00000000", + "_dd.p.tid": "685d9f5900000000", "component": "openai", "language": "python", "openai.base_url": "https://api.openai.com/v1/", "openai.organization.name": "datadog-4", "openai.request.client": "OpenAI", "openai.request.endpoint": "/v1/completions", - "openai.request.max_tokens": "10", "openai.request.method": "POST", "openai.request.model": "ada", - "openai.request.n": "2", - "openai.request.prompt.0": "Hello world", - "openai.request.stop": ".", - "openai.request.temperature": "0.8", - "openai.request.user": "ddtrace-test", - "openai.response.choices.0.finish_reason": "length", - "openai.response.choices.0.text": ", relax!\u201d I said to my laptop", - "openai.response.choices.1.finish_reason": "stop", - "openai.response.choices.1.text": " (1", "openai.response.created": "1681852797", "openai.response.id": "cmpl-76n1xLvRKv3mfjx7hJ41UHrHy9ar6", "openai.response.model": "ada", "openai.user.api_key": "sk-...key>", - "runtime-id": "0df8b1821db8449bb0331476cea74166" + "runtime-id": "281e4d58dede49839ba4836555e7183d" }, "metrics": { "_dd.measured": 1, @@ -44,11 +34,8 @@ "openai.organization.ratelimit.requests.remaining": 2999, "openai.organization.ratelimit.tokens.limit": 250000, "openai.organization.ratelimit.tokens.remaining": 249979, - "openai.response.usage.completion_tokens": 12, - "openai.response.usage.prompt_tokens": 2, - "openai.response.usage.total_tokens": 14, - "process_id": 24448 + "process_id": 44896 }, - "duration": 17466000, - "start": 1701269802293573000 + "duration": 20102000, + "start": 1750966105058747000 }]] diff --git a/tests/snapshots/tests.contrib.openai_agents.test_openai_agents.test_openai_agents.json b/tests/snapshots/tests.contrib.openai_agents.test_openai_agents.test_openai_agents.json index 53e2a58e4d7..e52cd9830f2 100644 --- a/tests/snapshots/tests.contrib.openai_agents.test_openai_agents.test_openai_agents.json +++ b/tests/snapshots/tests.contrib.openai_agents.test_openai_agents.test_openai_agents.json @@ -10,19 +10,19 @@ "error": 0, "meta": { "_dd.p.dm": "-0", - "_dd.p.tid": "67ddbba500000000", + "_dd.p.tid": "685d853c00000000", "language": "python", - "runtime-id": "fdab2e4305d844608059adb464720398" + "runtime-id": "a9636fc9401c47f0a83bafb1fba83c50" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1, "_dd.tracer_kr": 1.0, "_sampling_priority_v1": 1, - "process_id": 12745 + "process_id": 15968 }, - "duration": 40478000, - "start": 1742584741136500000 + "duration": 225136000, + "start": 1750959420952821000 }, { "name": "Simple Agent", @@ -36,8 +36,8 @@ "metrics": { "_dd.measured": 1 }, - "duration": 40114000, - "start": 1742584741136836000 + "duration": 224350000, + "start": 1750959420953565000 }, { "name": "openai_agents.response", @@ -51,6 +51,6 @@ "metrics": { "_dd.measured": 1 }, - "duration": 33789000, - "start": 1742584741142821000 + "duration": 218891000, + "start": 1750959420958669000 }]] diff --git a/tests/snapshots/tests.contrib.openai_agents.test_openai_agents.test_openai_agents_streaming.json b/tests/snapshots/tests.contrib.openai_agents.test_openai_agents.test_openai_agents_streaming.json index b4ede673871..50c2cbfd8d3 100644 --- a/tests/snapshots/tests.contrib.openai_agents.test_openai_agents.test_openai_agents_streaming.json +++ b/tests/snapshots/tests.contrib.openai_agents.test_openai_agents.test_openai_agents_streaming.json @@ -10,19 +10,19 @@ "error": 0, "meta": { "_dd.p.dm": "-0", - "_dd.p.tid": "67ed62bc00000000", + "_dd.p.tid": "685d853d00000000", "language": "python", - "runtime-id": "d891ce7651f442458b2cdbcfe2248c2f" + "runtime-id": "a9636fc9401c47f0a83bafb1fba83c50" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1, "_dd.tracer_kr": 1.0, "_sampling_priority_v1": 1, - "process_id": 19979 + "process_id": 15968 }, - "duration": 75781000, - "start": 1743610556051114000 + "duration": 154392000, + "start": 1750959421225996000 }, { "name": "Simple Agent", @@ -36,8 +36,8 @@ "metrics": { "_dd.measured": 1 }, - "duration": 75112000, - "start": 1743610556051704000 + "duration": 154267000, + "start": 1750959421226091000 }, { "name": "openai_agents.response", @@ -51,6 +51,6 @@ "metrics": { "_dd.measured": 1 }, - "duration": 69376000, - "start": 1743610556056880000 + "duration": 153615000, + "start": 1750959421226365000 }]] diff --git a/tests/snapshots/tests.contrib.openai_agents.test_openai_agents.test_openai_agents_sync.json b/tests/snapshots/tests.contrib.openai_agents.test_openai_agents.test_openai_agents_sync.json index 0d479b5426e..9ffabcc3ee2 100644 --- a/tests/snapshots/tests.contrib.openai_agents.test_openai_agents.test_openai_agents_sync.json +++ b/tests/snapshots/tests.contrib.openai_agents.test_openai_agents.test_openai_agents_sync.json @@ -10,19 +10,19 @@ "error": 0, "meta": { "_dd.p.dm": "-0", - "_dd.p.tid": "67ed626f00000000", + "_dd.p.tid": "685d853d00000000", "language": "python", - "runtime-id": "a8fe362345964b32a3398a733e8a535c" + "runtime-id": "a9636fc9401c47f0a83bafb1fba83c50" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1, "_dd.tracer_kr": 1.0, "_sampling_priority_v1": 1, - "process_id": 19196 + "process_id": 15968 }, - "duration": 56405000, - "start": 1743610479253321000 + "duration": 2873000, + "start": 1750959421205457000 }, { "name": "Simple Agent", @@ -36,8 +36,8 @@ "metrics": { "_dd.measured": 1 }, - "duration": 56030000, - "start": 1743610479253656000 + "duration": 2729000, + "start": 1750959421205574000 }, { "name": "openai_agents.response", @@ -51,6 +51,6 @@ "metrics": { "_dd.measured": 1 }, - "duration": 50521000, - "start": 1743610479258793000 + "duration": 2208000, + "start": 1750959421205855000 }]] diff --git a/tests/snapshots/tests.contrib.openai_agents.test_openai_agents.test_openai_agents_with_tool_error.json b/tests/snapshots/tests.contrib.openai_agents.test_openai_agents.test_openai_agents_with_tool_error.json index d180d620f62..f1d1d245f3e 100644 --- a/tests/snapshots/tests.contrib.openai_agents.test_openai_agents.test_openai_agents_with_tool_error.json +++ b/tests/snapshots/tests.contrib.openai_agents.test_openai_agents.test_openai_agents_with_tool_error.json @@ -10,19 +10,19 @@ "error": 0, "meta": { "_dd.p.dm": "-0", - "_dd.p.tid": "67ddbba500000000", + "_dd.p.tid": "685d853d00000000", "language": "python", - "runtime-id": "fdab2e4305d844608059adb464720398" + "runtime-id": "a9636fc9401c47f0a83bafb1fba83c50" }, "metrics": { "_dd.measured": 1, "_dd.top_level": 1, "_dd.tracer_kr": 1.0, "_sampling_priority_v1": 1, - "process_id": 12745 + "process_id": 15968 }, - "duration": 18328000, - "start": 1742584741205971000 + "duration": 13467000, + "start": 1750959421399333000 }, { "name": "Addition Agent", @@ -36,8 +36,8 @@ "metrics": { "_dd.measured": 1 }, - "duration": 18181000, - "start": 1742584741206095000 + "duration": 13338000, + "start": 1750959421399437000 }, { "name": "openai_agents.response", @@ -51,8 +51,8 @@ "metrics": { "_dd.measured": 1 }, - "duration": 9562000, - "start": 1742584741206747000 + "duration": 9136000, + "start": 1750959421399782000 }, { "name": "add", @@ -66,8 +66,8 @@ "metrics": { "_dd.measured": 1 }, - "duration": 242000, - "start": 1742584741216489000 + "duration": 238000, + "start": 1750959421409138000 }, { "name": "openai_agents.response", @@ -81,6 +81,6 @@ "metrics": { "_dd.measured": 1 }, - "duration": 7141000, - "start": 1742584741216938000 + "duration": 2980000, + "start": 1750959421409596000 }]]