core[minor]: Remove serialized manifest from tracing requests for non-llm runs (#26270)

- This takes a long time to compute, isn't used, and currently called on
every invocation of every chain/retriever/etc
This commit is contained in:
Nuno Campos
2024-09-10 12:58:24 -07:00
committed by GitHub
parent 979232257b
commit 212c688ee0
17 changed files with 221 additions and 7119 deletions

View File

@@ -38,7 +38,6 @@ from typing import (
from typing_extensions import Literal, get_args
from langchain_core._api import beta_decorator
from langchain_core.load.dump import dumpd
from langchain_core.load.serializable import (
Serializable,
SerializedConstructor,
@@ -1763,6 +1762,7 @@ class Runnable(Generic[Input, Output], ABC):
input: Input,
config: Optional[RunnableConfig],
run_type: Optional[str] = None,
serialized: Optional[Dict[str, Any]] = None,
**kwargs: Optional[Any],
) -> Output:
"""Helper method to transform an Input value to an Output value,
@@ -1770,7 +1770,7 @@ class Runnable(Generic[Input, Output], ABC):
config = ensure_config(config)
callback_manager = get_callback_manager_for_config(config)
run_manager = callback_manager.on_chain_start(
dumpd(self),
serialized,
input,
run_type=run_type,
name=config.get("run_name") or self.get_name(),
@@ -1811,6 +1811,7 @@ class Runnable(Generic[Input, Output], ABC):
input: Input,
config: Optional[RunnableConfig],
run_type: Optional[str] = None,
serialized: Optional[Dict[str, Any]] = None,
**kwargs: Optional[Any],
) -> Output:
"""Helper method to transform an Input value to an Output value,
@@ -1818,7 +1819,7 @@ class Runnable(Generic[Input, Output], ABC):
config = ensure_config(config)
callback_manager = get_async_callback_manager_for_config(config)
run_manager = await callback_manager.on_chain_start(
dumpd(self),
serialized,
input,
run_type=run_type,
name=config.get("run_name") or self.get_name(),
@@ -1871,7 +1872,7 @@ class Runnable(Generic[Input, Output], ABC):
callback_managers = [get_callback_manager_for_config(c) for c in configs]
run_managers = [
callback_manager.on_chain_start(
dumpd(self),
None,
input,
run_type=run_type,
name=config.get("run_name") or self.get_name(),
@@ -1944,7 +1945,7 @@ class Runnable(Generic[Input, Output], ABC):
run_managers: List[AsyncCallbackManagerForChainRun] = await asyncio.gather(
*(
callback_manager.on_chain_start(
dumpd(self),
None,
input,
run_type=run_type,
name=config.get("run_name") or self.get_name(),
@@ -2023,7 +2024,7 @@ class Runnable(Generic[Input, Output], ABC):
config = ensure_config(config)
callback_manager = get_callback_manager_for_config(config)
run_manager = callback_manager.on_chain_start(
dumpd(self),
None,
{"input": ""},
run_type=run_type,
name=config.get("run_name") or self.get_name(),
@@ -2123,7 +2124,7 @@ class Runnable(Generic[Input, Output], ABC):
config = ensure_config(config)
callback_manager = get_async_callback_manager_for_config(config)
run_manager = await callback_manager.on_chain_start(
dumpd(self),
None,
{"input": ""},
run_type=run_type,
name=config.get("run_name") or self.get_name(),
@@ -2325,7 +2326,6 @@ class RunnableSerializable(Serializable, Runnable[Input, Output]):
dumped = super().to_json()
try:
dumped["name"] = self.get_name()
dumped["graph"] = self.get_graph().to_json()
except Exception:
pass
return dumped
@@ -2857,7 +2857,7 @@ class RunnableSequence(RunnableSerializable[Input, Output]):
callback_manager = get_callback_manager_for_config(config)
# start the root run
run_manager = callback_manager.on_chain_start(
dumpd(self),
None,
input,
name=config.get("run_name") or self.get_name(),
run_id=config.pop("run_id", None),
@@ -2897,7 +2897,7 @@ class RunnableSequence(RunnableSerializable[Input, Output]):
callback_manager = get_async_callback_manager_for_config(config)
# start the root run
run_manager = await callback_manager.on_chain_start(
dumpd(self),
None,
input,
name=config.get("run_name") or self.get_name(),
run_id=config.pop("run_id", None),
@@ -2962,7 +2962,7 @@ class RunnableSequence(RunnableSerializable[Input, Output]):
# start the root runs, one per input
run_managers = [
cm.on_chain_start(
dumpd(self),
None,
input,
name=config.get("run_name") or self.get_name(),
run_id=config.pop("run_id", None),
@@ -3089,7 +3089,7 @@ class RunnableSequence(RunnableSerializable[Input, Output]):
run_managers: List[AsyncCallbackManagerForChainRun] = await asyncio.gather(
*(
cm.on_chain_start(
dumpd(self),
None,
input,
name=config.get("run_name") or self.get_name(),
run_id=config.pop("run_id", None),
@@ -3544,7 +3544,7 @@ class RunnableParallel(RunnableSerializable[Input, Dict[str, Any]]):
)
# start the root run
run_manager = callback_manager.on_chain_start(
dumpd(self),
None,
input,
name=config.get("run_name") or self.get_name(),
run_id=config.pop("run_id", None),
@@ -3596,7 +3596,7 @@ class RunnableParallel(RunnableSerializable[Input, Dict[str, Any]]):
callback_manager = get_async_callback_manager_for_config(config)
# start the root run
run_manager = await callback_manager.on_chain_start(
dumpd(self),
None,
input,
name=config.get("run_name") or self.get_name(),
run_id=config.pop("run_id", None),

View File

@@ -14,7 +14,6 @@ from typing import (
cast,
)
from langchain_core.load.dump import dumpd
from langchain_core.pydantic_v1 import BaseModel
from langchain_core.runnables.base import (
Runnable,
@@ -207,9 +206,9 @@ class RunnableBranch(RunnableSerializable[Input, Output]):
config = ensure_config(config)
callback_manager = get_callback_manager_for_config(config)
run_manager = callback_manager.on_chain_start(
dumpd(self),
None,
input,
name=config.get("run_name"),
name=config.get("run_name") or self.get_name(),
run_id=config.pop("run_id", None),
)
@@ -246,7 +245,7 @@ class RunnableBranch(RunnableSerializable[Input, Output]):
except BaseException as e:
run_manager.on_chain_error(e)
raise
run_manager.on_chain_end(dumpd(output))
run_manager.on_chain_end(output)
return output
async def ainvoke(
@@ -256,9 +255,9 @@ class RunnableBranch(RunnableSerializable[Input, Output]):
config = ensure_config(config)
callback_manager = get_async_callback_manager_for_config(config)
run_manager = await callback_manager.on_chain_start(
dumpd(self),
None,
input,
name=config.get("run_name"),
name=config.get("run_name") or self.get_name(),
run_id=config.pop("run_id", None),
)
try:
@@ -294,7 +293,7 @@ class RunnableBranch(RunnableSerializable[Input, Output]):
except BaseException as e:
await run_manager.on_chain_error(e)
raise
await run_manager.on_chain_end(dumpd(output))
await run_manager.on_chain_end(output)
return output
def stream(
@@ -320,9 +319,9 @@ class RunnableBranch(RunnableSerializable[Input, Output]):
config = ensure_config(config)
callback_manager = get_callback_manager_for_config(config)
run_manager = callback_manager.on_chain_start(
dumpd(self),
None,
input,
name=config.get("run_name"),
name=config.get("run_name") or self.get_name(),
run_id=config.pop("run_id", None),
)
final_output: Optional[Output] = None
@@ -407,9 +406,9 @@ class RunnableBranch(RunnableSerializable[Input, Output]):
config = ensure_config(config)
callback_manager = get_async_callback_manager_for_config(config)
run_manager = await callback_manager.on_chain_start(
dumpd(self),
None,
input,
name=config.get("run_name"),
name=config.get("run_name") or self.get_name(),
run_id=config.pop("run_id", None),
)
final_output: Optional[Output] = None

View File

@@ -18,7 +18,6 @@ from typing import (
cast,
)
from langchain_core.load.dump import dumpd
from langchain_core.pydantic_v1 import BaseModel
from langchain_core.runnables.base import Runnable, RunnableSerializable
from langchain_core.runnables.config import (
@@ -163,9 +162,9 @@ class RunnableWithFallbacks(RunnableSerializable[Input, Output]):
callback_manager = get_callback_manager_for_config(config)
# start the root run
run_manager = callback_manager.on_chain_start(
dumpd(self),
None,
input,
name=config.get("run_name"),
name=config.get("run_name") or self.get_name(),
run_id=config.pop("run_id", None),
)
first_error = None
@@ -214,9 +213,9 @@ class RunnableWithFallbacks(RunnableSerializable[Input, Output]):
callback_manager = get_async_callback_manager_for_config(config)
# start the root run
run_manager = await callback_manager.on_chain_start(
dumpd(self),
None,
input,
name=config.get("run_name"),
name=config.get("run_name") or self.get_name(),
run_id=config.pop("run_id", None),
)
@@ -287,9 +286,9 @@ class RunnableWithFallbacks(RunnableSerializable[Input, Output]):
# start the root runs, one per input
run_managers = [
cm.on_chain_start(
dumpd(self),
None,
input if isinstance(input, dict) else {"input": input},
name=config.get("run_name"),
name=config.get("run_name") or self.get_name(),
run_id=config.pop("run_id", None),
)
for cm, input, config in zip(callback_managers, inputs, configs)
@@ -380,9 +379,9 @@ class RunnableWithFallbacks(RunnableSerializable[Input, Output]):
run_managers: List[AsyncCallbackManagerForChainRun] = await asyncio.gather(
*(
cm.on_chain_start(
dumpd(self),
None,
input,
name=config.get("run_name"),
name=config.get("run_name") or self.get_name(),
run_id=config.pop("run_id", None),
)
for cm, input, config in zip(callback_managers, inputs, configs)
@@ -458,9 +457,9 @@ class RunnableWithFallbacks(RunnableSerializable[Input, Output]):
callback_manager = get_callback_manager_for_config(config)
# start the root run
run_manager = callback_manager.on_chain_start(
dumpd(self),
None,
input,
name=config.get("run_name"),
name=config.get("run_name") or self.get_name(),
run_id=config.pop("run_id", None),
)
first_error = None
@@ -521,9 +520,9 @@ class RunnableWithFallbacks(RunnableSerializable[Input, Output]):
callback_manager = get_async_callback_manager_for_config(config)
# start the root run
run_manager = await callback_manager.on_chain_start(
dumpd(self),
None,
input,
name=config.get("run_name"),
name=config.get("run_name") or self.get_name(),
run_id=config.pop("run_id", None),
)
first_error = None