Skip to content

Commit bfd1072

Browse files
authored
Revert "fix(core): trace invocation params in metadata (#36080)"
This reverts commit 70c88c0.
1 parent 475408f commit bfd1072

File tree

2 files changed

+0
-163
lines changed

2 files changed

+0
-163
lines changed

libs/core/langchain_core/language_models/chat_models.py

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -556,7 +556,6 @@ def stream(
556556
params = self._get_invocation_params(stop=stop, **kwargs)
557557
options = {"stop": stop, **kwargs, **ls_structured_output_format_dict}
558558
inheritable_metadata = {
559-
**self._get_metadata_invocation_params(params),
560559
**(config.get("metadata") or {}),
561560
**self._get_ls_params_with_defaults(stop=stop, **kwargs),
562561
}
@@ -685,7 +684,6 @@ async def astream(
685684
params = self._get_invocation_params(stop=stop, **kwargs)
686685
options = {"stop": stop, **kwargs, **ls_structured_output_format_dict}
687686
inheritable_metadata = {
688-
**self._get_metadata_invocation_params(params),
689687
**(config.get("metadata") or {}),
690688
**self._get_ls_params_with_defaults(stop=stop, **kwargs),
691689
}
@@ -839,18 +837,6 @@ def _get_invocation_params(
839837
params["stop"] = stop
840838
return {**params, **kwargs}
841839

842-
def _get_metadata_invocation_params(
843-
self,
844-
invocation_params: dict[str, Any],
845-
) -> dict[str, Any]:
846-
"""Filter invocation params for inclusion in run metadata."""
847-
secret_keys = set(self.lc_secrets.keys())
848-
return {
849-
k: v
850-
for k, v in invocation_params.items()
851-
if v is not None and k not in secret_keys and k != "tools"
852-
}
853-
854840
def _get_ls_params(
855841
self,
856842
stop: list[str] | None = None,
@@ -974,7 +960,6 @@ def generate(
974960
params = self._get_invocation_params(stop=stop, **kwargs)
975961
options = {"stop": stop, **ls_structured_output_format_dict}
976962
inheritable_metadata = {
977-
**self._get_metadata_invocation_params(params),
978963
**(metadata or {}),
979964
**self._get_ls_params_with_defaults(stop=stop, **kwargs),
980965
}
@@ -1098,7 +1083,6 @@ async def agenerate(
10981083
params = self._get_invocation_params(stop=stop, **kwargs)
10991084
options = {"stop": stop, **ls_structured_output_format_dict}
11001085
inheritable_metadata = {
1101-
**self._get_metadata_invocation_params(params),
11021086
**(metadata or {}),
11031087
**self._get_ls_params_with_defaults(stop=stop, **kwargs),
11041088
}

libs/core/tests/unit_tests/language_models/chat_models/test_base.py

Lines changed: 0 additions & 147 deletions
Original file line numberDiff line numberDiff line change
@@ -1390,150 +1390,3 @@ def test_generate_response_from_error_handles_streaming_response_failure() -> No
13901390
assert metadata["body"] is None
13911391
assert metadata["headers"] == {"content-type": "application/json"}
13921392
assert metadata["status_code"] == 400
1393-
1394-
1395-
class FakeChatModelWithSecrets(BaseChatModel):
1396-
"""Fake chat model with lc_secrets for testing metadata filtering."""
1397-
1398-
api_key: str = "secret-key"
1399-
model: str = "test-model"
1400-
thinking: dict[str, Any] | None = None
1401-
1402-
@property
1403-
def lc_secrets(self) -> dict[str, str]:
1404-
return {"api_key": "API_KEY"}
1405-
1406-
@property
1407-
def _identifying_params(self) -> dict[str, Any]:
1408-
return {
1409-
"model": self.model,
1410-
"thinking": self.thinking,
1411-
}
1412-
1413-
@property
1414-
def _llm_type(self) -> str:
1415-
return "fake-chat-model-with-secrets"
1416-
1417-
def _generate(
1418-
self,
1419-
messages: list[BaseMessage], # noqa: ARG002
1420-
stop: list[str] | None = None, # noqa: ARG002
1421-
run_manager: CallbackManagerForLLMRun | None = None, # noqa: ARG002
1422-
**kwargs: Any, # noqa: ARG002
1423-
) -> ChatResult:
1424-
return ChatResult(
1425-
generations=[ChatGeneration(message=AIMessage(content="test response"))]
1426-
)
1427-
1428-
1429-
def test_init_params_in_metadata() -> None:
1430-
"""Test that init params are included in run metadata."""
1431-
llm = FakeChatModelWithSecrets(thinking={"type": "enabled", "budget_tokens": 10000})
1432-
with collect_runs() as cb:
1433-
llm.invoke("hi")
1434-
assert len(cb.traced_runs) == 1
1435-
run = cb.traced_runs[0]
1436-
assert run.extra is not None
1437-
metadata = run.extra.get("metadata", {})
1438-
assert "model" in metadata
1439-
assert metadata["model"] == "test-model"
1440-
assert "thinking" in metadata
1441-
assert metadata["thinking"] == {"type": "enabled", "budget_tokens": 10000}
1442-
1443-
1444-
def test_init_params_filter_none_values() -> None:
1445-
"""Test that None values are filtered from init params in metadata."""
1446-
llm = FakeChatModelWithSecrets(thinking=None)
1447-
with collect_runs() as cb:
1448-
llm.invoke("hi")
1449-
assert len(cb.traced_runs) == 1
1450-
run = cb.traced_runs[0]
1451-
assert run.extra is not None
1452-
metadata = run.extra.get("metadata", {})
1453-
assert "thinking" not in metadata
1454-
1455-
1456-
def test_init_params_filter_secrets() -> None:
1457-
"""Test that lc_secrets keys are filtered from init params in metadata."""
1458-
llm = FakeChatModelWithSecrets()
1459-
with collect_runs() as cb:
1460-
llm.invoke("hi")
1461-
assert len(cb.traced_runs) == 1
1462-
run = cb.traced_runs[0]
1463-
assert run.extra is not None
1464-
metadata = run.extra.get("metadata", {})
1465-
assert "api_key" not in metadata
1466-
1467-
1468-
def test_runtime_params_in_metadata() -> None:
1469-
"""Test that runtime invocation params (kwargs) are included in metadata."""
1470-
llm = FakeChatModelWithSecrets()
1471-
with collect_runs() as cb:
1472-
llm.invoke("hi", effort="low")
1473-
assert len(cb.traced_runs) == 1
1474-
run = cb.traced_runs[0]
1475-
assert run.extra is not None
1476-
metadata = run.extra.get("metadata", {})
1477-
assert "effort" in metadata
1478-
assert metadata["effort"] == "low"
1479-
1480-
1481-
def test_runtime_secrets_filtered_from_metadata() -> None:
1482-
"""Test that runtime secret params (kwargs) are filtered from metadata."""
1483-
llm = FakeChatModelWithSecrets()
1484-
with collect_runs() as cb:
1485-
llm.invoke("hi", api_key="runtime-secret")
1486-
assert len(cb.traced_runs) == 1
1487-
run = cb.traced_runs[0]
1488-
assert run.extra is not None
1489-
metadata = run.extra.get("metadata", {})
1490-
assert "api_key" not in metadata
1491-
1492-
1493-
def test_user_metadata_takes_precedence() -> None:
1494-
"""Test that user-provided metadata takes precedence over invocation params."""
1495-
llm = FakeChatModelWithSecrets(model="init-model")
1496-
with collect_runs() as cb:
1497-
llm.invoke("hi", config={"metadata": {"model": "user-override"}})
1498-
assert len(cb.traced_runs) == 1
1499-
run = cb.traced_runs[0]
1500-
assert run.extra is not None
1501-
metadata = run.extra.get("metadata", {})
1502-
assert metadata["model"] == "user-override"
1503-
1504-
1505-
async def test_invocation_params_in_metadata_ainvoke() -> None:
1506-
"""Test that invocation params are included in run metadata for ainvoke."""
1507-
llm = FakeChatModelWithSecrets(thinking={"type": "enabled"})
1508-
with collect_runs() as cb:
1509-
await llm.ainvoke("hi")
1510-
assert len(cb.traced_runs) == 1
1511-
run = cb.traced_runs[0]
1512-
assert run.extra is not None
1513-
metadata = run.extra.get("metadata", {})
1514-
assert "thinking" in metadata
1515-
1516-
1517-
def test_invocation_params_in_metadata_stream() -> None:
1518-
"""Test that invocation params are included in run metadata for stream."""
1519-
llm = FakeChatModelWithSecrets(thinking={"type": "enabled"})
1520-
with collect_runs() as cb:
1521-
list(llm.stream("hi"))
1522-
assert len(cb.traced_runs) == 1
1523-
run = cb.traced_runs[0]
1524-
assert run.extra is not None
1525-
metadata = run.extra.get("metadata", {})
1526-
assert "thinking" in metadata
1527-
1528-
1529-
async def test_invocation_params_in_metadata_astream() -> None:
1530-
"""Test that invocation params are included in run metadata for astream."""
1531-
llm = FakeChatModelWithSecrets(thinking={"type": "enabled"})
1532-
with collect_runs() as cb:
1533-
async for _ in llm.astream("hi"):
1534-
pass
1535-
assert len(cb.traced_runs) == 1
1536-
run = cb.traced_runs[0]
1537-
assert run.extra is not None
1538-
metadata = run.extra.get("metadata", {})
1539-
assert "thinking" in metadata

0 commit comments

Comments
 (0)