Skip to content

Commit cbe05b0

Browse files
authored
Merge branch '3.x-staging' into quinna.halim/graphql-spans-add-events-on-errors
2 parents 2bf8bb5 + 9ba79f4 commit cbe05b0

17 files changed

+6
-49
lines changed

ddtrace/contrib/internal/langchain/constants.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,3 @@
8080
}
8181

8282
API_KEY = "langchain.request.api_key"
83-
MODEL = "langchain.request.model"
84-
COMPLETION_TOKENS = "langchain.tokens.completion_tokens"
85-
PROMPT_TOKENS = "langchain.tokens.prompt_tokens"
86-
TOTAL_COST = "langchain.tokens.total_cost"

ddtrace/contrib/internal/langchain/patch.py

Lines changed: 1 addition & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -41,10 +41,6 @@
4141

4242
from ddtrace import config
4343
from ddtrace.contrib.internal.langchain.constants import API_KEY
44-
from ddtrace.contrib.internal.langchain.constants import COMPLETION_TOKENS
45-
from ddtrace.contrib.internal.langchain.constants import MODEL
46-
from ddtrace.contrib.internal.langchain.constants import PROMPT_TOKENS
47-
from ddtrace.contrib.internal.langchain.constants import TOTAL_COST
4844
from ddtrace.contrib.internal.langchain.constants import agent_output_parser_classes
4945
from ddtrace.contrib.internal.langchain.constants import text_embedding_models
5046
from ddtrace.contrib.internal.langchain.constants import vectorstore_classes
@@ -114,9 +110,7 @@ def _extract_api_key(instance: Any) -> str:
114110
return ""
115111

116112

117-
def _tag_openai_token_usage(
118-
span: Span, llm_output: Dict[str, Any], propagated_cost: int = 0, propagate: bool = False
119-
) -> None:
113+
def _tag_openai_token_usage(span: Span, llm_output: Dict[str, Any]) -> None:
120114
"""
121115
Extract token usage from llm_output, tag on span.
122116
Calculate the total cost for each LLM/chat_model, then propagate those values up the trace so that
@@ -126,23 +120,6 @@ def _tag_openai_token_usage(
126120
current_metric_value = span.get_metric("langchain.tokens.%s_tokens" % token_type) or 0
127121
metric_value = llm_output["token_usage"].get("%s_tokens" % token_type, 0)
128122
span.set_metric("langchain.tokens.%s_tokens" % token_type, current_metric_value + metric_value)
129-
total_cost = span.get_metric(TOTAL_COST) or 0
130-
if not propagate and get_openai_token_cost_for_model:
131-
try:
132-
completion_cost = get_openai_token_cost_for_model(
133-
span.get_tag(MODEL),
134-
span.get_metric(COMPLETION_TOKENS),
135-
is_completion=True,
136-
)
137-
prompt_cost = get_openai_token_cost_for_model(span.get_tag(MODEL), span.get_metric(PROMPT_TOKENS))
138-
total_cost = completion_cost + prompt_cost
139-
except ValueError:
140-
# If not in langchain's openai model catalog, the above helpers will raise a ValueError.
141-
log.debug("Cannot calculate token/cost as the model is not in LangChain's OpenAI model catalog.")
142-
if get_openai_token_cost_for_model:
143-
span.set_metric(TOTAL_COST, propagated_cost + total_cost)
144-
if span._parent is not None:
145-
_tag_openai_token_usage(span._parent, llm_output, propagated_cost=propagated_cost + total_cost, propagate=True)
146123

147124

148125
def _is_openai_llm_instance(instance):
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
upgrade:
3+
- |
4+
langchain: Removes the `langchain.tokens.total_cost` span metric for OpenAI calls.
5+
For continued cost estimation of OpenAI calls, enable `LLM Observability <https://docs.datadoghq.com/llm_observability/>`_.

tests/contrib/langchain/test_langchain.py

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
"meta.langchain.request.openai.parameters.logprobs",
2424
"meta.langchain.request.openai.parameters.seed", # langchain-openai llm call now includes seed as param
2525
"meta.langchain.request.openai.parameters.logprobs", # langchain-openai llm call now includes seed as param
26-
"metrics.langchain.tokens.total_cost", # total_cost depends on if tiktoken is installed
2726
# these are sometimes named differently
2827
"meta.langchain.request.openai.parameters.max_tokens",
2928
"meta.langchain.request.openai.parameters.max_completion_tokens",

tests/snapshots/tests.contrib.langchain.test_langchain.test_lcel_chain_batch.json

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,6 @@
6161
"_dd.measured": 1,
6262
"langchain.tokens.completion_tokens": 16,
6363
"langchain.tokens.prompt_tokens": 14,
64-
"langchain.tokens.total_cost": 5.3e-05,
6564
"langchain.tokens.total_tokens": 30
6665
},
6766
"duration": 6742000,
@@ -95,7 +94,6 @@
9594
"_dd.measured": 1,
9695
"langchain.tokens.completion_tokens": 15,
9796
"langchain.tokens.prompt_tokens": 14,
98-
"langchain.tokens.total_cost": 5.1000000000000006e-05,
9997
"langchain.tokens.total_tokens": 29
10098
},
10199
"duration": 3314000,

tests/snapshots/tests.contrib.langchain.test_langchain.test_lcel_chain_complicated.json

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
"_sampling_priority_v1": 1,
2626
"langchain.tokens.completion_tokens": 19,
2727
"langchain.tokens.prompt_tokens": 53,
28-
"langchain.tokens.total_cost": 0.0001175,
2928
"langchain.tokens.total_tokens": 72,
3029
"process_id": 82010
3130
},
@@ -60,7 +59,6 @@
6059
"_dd.measured": 1,
6160
"langchain.tokens.completion_tokens": 19,
6261
"langchain.tokens.prompt_tokens": 53,
63-
"langchain.tokens.total_cost": 0.0001175,
6462
"langchain.tokens.total_tokens": 72
6563
},
6664
"duration": 3680000,

tests/snapshots/tests.contrib.langchain.test_langchain.test_lcel_chain_nested.json

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,6 @@
2525
"_sampling_priority_v1": 1,
2626
"langchain.tokens.completion_tokens": 53,
2727
"langchain.tokens.prompt_tokens": 50,
28-
"langchain.tokens.total_cost": 0.000181,
2928
"langchain.tokens.total_tokens": 103,
3029
"process_id": 82010
3130
},
@@ -51,7 +50,6 @@
5150
"_dd.measured": 1,
5251
"langchain.tokens.completion_tokens": 16,
5352
"langchain.tokens.prompt_tokens": 18,
54-
"langchain.tokens.total_cost": 5.9e-05,
5553
"langchain.tokens.total_tokens": 34
5654
},
5755
"duration": 63808000,
@@ -85,7 +83,6 @@
8583
"_dd.measured": 1,
8684
"langchain.tokens.completion_tokens": 16,
8785
"langchain.tokens.prompt_tokens": 18,
88-
"langchain.tokens.total_cost": 5.9e-05,
8986
"langchain.tokens.total_tokens": 34
9087
},
9188
"duration": 61552000,
@@ -119,7 +116,6 @@
119116
"_dd.measured": 1,
120117
"langchain.tokens.completion_tokens": 37,
121118
"langchain.tokens.prompt_tokens": 32,
122-
"langchain.tokens.total_cost": 0.000122,
123119
"langchain.tokens.total_tokens": 69
124120
},
125121
"duration": 3288000,

tests/snapshots/tests.contrib.langchain.test_langchain.test_lcel_chain_simple.json

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
"_sampling_priority_v1": 1,
2525
"langchain.tokens.completion_tokens": 101,
2626
"langchain.tokens.prompt_tokens": 20,
27-
"langchain.tokens.total_cost": 0.000232,
2827
"langchain.tokens.total_tokens": 121,
2928
"process_id": 82010
3029
},
@@ -61,7 +60,6 @@
6160
"_dd.measured": 1,
6261
"langchain.tokens.completion_tokens": 101,
6362
"langchain.tokens.prompt_tokens": 20,
64-
"langchain.tokens.total_cost": 0.000232,
6563
"langchain.tokens.total_tokens": 121
6664
},
6765
"duration": 6142000,

tests/snapshots/tests.contrib.langchain.test_langchain.test_lcel_chain_simple_async.json

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,6 @@
2424
"_sampling_priority_v1": 1,
2525
"langchain.tokens.completion_tokens": 78,
2626
"langchain.tokens.prompt_tokens": 20,
27-
"langchain.tokens.total_cost": 0.000186,
2827
"langchain.tokens.total_tokens": 98,
2928
"process_id": 82010
3029
},
@@ -61,7 +60,6 @@
6160
"_dd.measured": 1,
6261
"langchain.tokens.completion_tokens": 78,
6362
"langchain.tokens.prompt_tokens": 20,
64-
"langchain.tokens.total_cost": 0.000186,
6563
"langchain.tokens.total_tokens": 98
6664
},
6765
"duration": 3399000,

tests/snapshots/tests.contrib.langchain.test_langchain.test_lcel_with_tools_openai.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,6 @@
3737
"_sampling_priority_v1": 1,
3838
"langchain.tokens.completion_tokens": 32,
3939
"langchain.tokens.prompt_tokens": 85,
40-
"langchain.tokens.total_cost": 9.05e-05,
4140
"langchain.tokens.total_tokens": 117,
4241
"process_id": 82010
4342
},

tests/snapshots/tests.contrib.langchain.test_langchain.test_openai_chat_model_async_generate.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@
4343
"_sampling_priority_v1": 1,
4444
"langchain.tokens.completion_tokens": 150,
4545
"langchain.tokens.prompt_tokens": 60,
46-
"langchain.tokens.total_cost": 0.00038999999999999994,
4746
"langchain.tokens.total_tokens": 210,
4847
"process_id": 82010
4948
},

tests/snapshots/tests.contrib.langchain.test_langchain.test_openai_chat_model_sync_call_langchain_openai.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@
3535
"_sampling_priority_v1": 1,
3636
"langchain.tokens.completion_tokens": 83,
3737
"langchain.tokens.prompt_tokens": 20,
38-
"langchain.tokens.total_cost": 0.00019600000000000002,
3938
"langchain.tokens.total_tokens": 103,
4039
"process_id": 82010
4140
},

tests/snapshots/tests.contrib.langchain.test_langchain.test_openai_chat_model_sync_generate.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,6 @@
4343
"_sampling_priority_v1": 1,
4444
"langchain.tokens.completion_tokens": 110,
4545
"langchain.tokens.prompt_tokens": 60,
46-
"langchain.tokens.total_cost": 0.00031,
4746
"langchain.tokens.total_tokens": 170,
4847
"process_id": 82010
4948
},

tests/snapshots/tests.contrib.langchain.test_langchain.test_openai_chat_model_vision_generate.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,6 @@
3535
"_sampling_priority_v1": 1,
3636
"langchain.tokens.completion_tokens": 56,
3737
"langchain.tokens.prompt_tokens": 1151,
38-
"langchain.tokens.total_cost": 0,
3938
"langchain.tokens.total_tokens": 1207,
4039
"process_id": 34354
4140
},

tests/snapshots/tests.contrib.langchain.test_langchain.test_openai_llm_async.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@
3636
"_sampling_priority_v1": 1,
3737
"langchain.tokens.completion_tokens": 12,
3838
"langchain.tokens.prompt_tokens": 10,
39-
"langchain.tokens.total_cost": 3.9e-05,
4039
"langchain.tokens.total_tokens": 22,
4140
"process_id": 82010
4241
},

tests/snapshots/tests.contrib.langchain.test_langchain.test_openai_llm_sync.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,6 @@
3636
"_sampling_priority_v1": 1,
3737
"langchain.tokens.completion_tokens": 256,
3838
"langchain.tokens.prompt_tokens": 17,
39-
"langchain.tokens.total_cost": 0.0005375,
4039
"langchain.tokens.total_tokens": 273,
4140
"process_id": 82010
4241
},

tests/snapshots/tests.contrib.langchain.test_langchain.test_openai_llm_sync_multiple_prompts.json

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@
4040
"_sampling_priority_v1": 1,
4141
"langchain.tokens.completion_tokens": 271,
4242
"langchain.tokens.prompt_tokens": 23,
43-
"langchain.tokens.total_cost": 0.0005765000000000001,
4443
"langchain.tokens.total_tokens": 294,
4544
"process_id": 82010
4645
},

0 commit comments

Comments
 (0)