mirror of
https://github.com/hwchase17/langchain.git
synced 2025-06-22 14:49:29 +00:00
[Core] Inherit tracing metadata & tags (#26838)
This commit is contained in:
parent
3796e143f8
commit
9b6ac41442
@ -20,7 +20,7 @@ from typing import (
|
|||||||
)
|
)
|
||||||
from uuid import UUID
|
from uuid import UUID
|
||||||
|
|
||||||
from langsmith.run_helpers import get_run_tree_context
|
from langsmith.run_helpers import get_tracing_context
|
||||||
from tenacity import RetryCallState
|
from tenacity import RetryCallState
|
||||||
|
|
||||||
from langchain_core.callbacks.base import (
|
from langchain_core.callbacks.base import (
|
||||||
@ -2232,9 +2232,15 @@ def _configure(
|
|||||||
tracing_v2_callback_var,
|
tracing_v2_callback_var,
|
||||||
)
|
)
|
||||||
|
|
||||||
run_tree = get_run_tree_context()
|
tracing_context = get_tracing_context()
|
||||||
|
tracing_metadata = tracing_context["metadata"]
|
||||||
|
tracing_tags = tracing_context["tags"]
|
||||||
|
run_tree: Optional[Run] = tracing_context["parent"]
|
||||||
parent_run_id = None if run_tree is None else run_tree.id
|
parent_run_id = None if run_tree is None else run_tree.id
|
||||||
callback_manager = callback_manager_cls(handlers=[], parent_run_id=parent_run_id)
|
callback_manager = callback_manager_cls(
|
||||||
|
handlers=[],
|
||||||
|
parent_run_id=parent_run_id,
|
||||||
|
)
|
||||||
if inheritable_callbacks or local_callbacks:
|
if inheritable_callbacks or local_callbacks:
|
||||||
if isinstance(inheritable_callbacks, list) or inheritable_callbacks is None:
|
if isinstance(inheritable_callbacks, list) or inheritable_callbacks is None:
|
||||||
inheritable_callbacks_ = inheritable_callbacks or []
|
inheritable_callbacks_ = inheritable_callbacks or []
|
||||||
@ -2278,6 +2284,10 @@ def _configure(
|
|||||||
if inheritable_metadata or local_metadata:
|
if inheritable_metadata or local_metadata:
|
||||||
callback_manager.add_metadata(inheritable_metadata or {})
|
callback_manager.add_metadata(inheritable_metadata or {})
|
||||||
callback_manager.add_metadata(local_metadata or {}, False)
|
callback_manager.add_metadata(local_metadata or {}, False)
|
||||||
|
if tracing_metadata:
|
||||||
|
callback_manager.add_metadata(tracing_metadata.copy())
|
||||||
|
if tracing_tags:
|
||||||
|
callback_manager.add_tags(tracing_tags.copy())
|
||||||
|
|
||||||
v1_tracing_enabled_ = env_var_is_set("LANGCHAIN_TRACING") or env_var_is_set(
|
v1_tracing_enabled_ = env_var_is_set("LANGCHAIN_TRACING") or env_var_is_set(
|
||||||
"LANGCHAIN_HANDLER"
|
"LANGCHAIN_HANDLER"
|
||||||
|
@ -390,7 +390,12 @@ def test_tree_is_constructed() -> None:
|
|||||||
|
|
||||||
rid = uuid.uuid4()
|
rid = uuid.uuid4()
|
||||||
|
|
||||||
with tracing_context(client=mock_client_, enabled=True):
|
with tracing_context(
|
||||||
|
client=mock_client_,
|
||||||
|
enabled=True,
|
||||||
|
metadata={"some_foo": "some_bar"},
|
||||||
|
tags=["afoo"],
|
||||||
|
):
|
||||||
assert parent(langsmith_extra={"on_end": collect_run, "run_id": rid}) == "foo"
|
assert parent(langsmith_extra={"on_end": collect_run, "run_id": rid}) == "foo"
|
||||||
|
|
||||||
assert collected
|
assert collected
|
||||||
@ -404,6 +409,10 @@ def test_tree_is_constructed() -> None:
|
|||||||
grandchild_run = child_run.child_runs[0]
|
grandchild_run = child_run.child_runs[0]
|
||||||
assert grandchild_run.name == "grandchild"
|
assert grandchild_run.name == "grandchild"
|
||||||
assert grandchild_run.child_runs
|
assert grandchild_run.child_runs
|
||||||
|
assert grandchild_run.metadata.get("some_foo") == "some_bar"
|
||||||
|
assert "afoo" in grandchild_run.tags # type: ignore
|
||||||
kitten_run = grandchild_run.child_runs[0]
|
kitten_run = grandchild_run.child_runs[0]
|
||||||
assert kitten_run.name == "kitten"
|
assert kitten_run.name == "kitten"
|
||||||
assert not kitten_run.child_runs
|
assert not kitten_run.child_runs
|
||||||
|
assert kitten_run.metadata.get("some_foo") == "some_bar"
|
||||||
|
assert "afoo" in kitten_run.tags # type: ignore
|
||||||
|
Loading…
Reference in New Issue
Block a user