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
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
17 changed files with 221 additions and 7119 deletions

View File

@ -87,44 +87,7 @@
"template": "hello {name}!", "template": "hello {name}!",
"template_format": "f-string" "template_format": "f-string"
}, },
"name": "PromptTemplate", "name": "PromptTemplate"
"graph": {
"nodes": [
{
"id": 0,
"type": "schema",
"data": "PromptInput"
},
{
"id": 1,
"type": "runnable",
"data": {
"id": [
"langchain",
"prompts",
"prompt",
"PromptTemplate"
],
"name": "PromptTemplate"
}
},
{
"id": 2,
"type": "schema",
"data": "PromptTemplateOutput"
}
],
"edges": [
{
"source": 0,
"target": 1
},
{
"source": 1,
"target": 2
}
]
}
}, },
"llm": { "llm": {
"lc": 1, "lc": 1,
@ -154,44 +117,7 @@
"max_retries": 2, "max_retries": 2,
"disallowed_special": "all" "disallowed_special": "all"
}, },
"name": "OpenAI", "name": "OpenAI"
"graph": {
"nodes": [
{
"id": 0,
"type": "schema",
"data": "OpenAIInput"
},
{
"id": 1,
"type": "runnable",
"data": {
"id": [
"langchain",
"llms",
"openai",
"OpenAI"
],
"name": "OpenAI"
}
},
{
"id": 2,
"type": "schema",
"data": "OpenAIOutput"
}
],
"edges": [
{
"source": 0,
"target": 1
},
{
"source": 1,
"target": 2
}
]
}
}, },
"output_key": "text", "output_key": "text",
"output_parser": { "output_parser": {
@ -204,85 +130,11 @@
"StrOutputParser" "StrOutputParser"
], ],
"kwargs": {}, "kwargs": {},
"name": "StrOutputParser", "name": "StrOutputParser"
"graph": {
"nodes": [
{
"id": 0,
"type": "schema",
"data": "StrOutputParserInput"
},
{
"id": 1,
"type": "runnable",
"data": {
"id": [
"langchain",
"schema",
"output_parser",
"StrOutputParser"
],
"name": "StrOutputParser"
}
},
{
"id": 2,
"type": "schema",
"data": "StrOutputParserOutput"
}
],
"edges": [
{
"source": 0,
"target": 1
},
{
"source": 1,
"target": 2
}
]
}
}, },
"return_final_only": true "return_final_only": true
}, },
"name": "LLMChain", "name": "LLMChain"
"graph": {
"nodes": [
{
"id": 0,
"type": "schema",
"data": "ChainInput"
},
{
"id": 1,
"type": "runnable",
"data": {
"id": [
"langchain",
"chains",
"llm",
"LLMChain"
],
"name": "LLMChain"
}
},
{
"id": 2,
"type": "schema",
"data": "ChainOutput"
}
],
"edges": [
{
"source": 0,
"target": 1
},
{
"source": 1,
"target": 2
}
]
}
} }
''' '''
# --- # ---
@ -338,87 +190,13 @@
"template": "hello {name}!", "template": "hello {name}!",
"template_format": "f-string" "template_format": "f-string"
}, },
"name": "PromptTemplate", "name": "PromptTemplate"
"graph": {
"nodes": [
{
"id": 0,
"type": "schema",
"data": "PromptInput"
},
{
"id": 1,
"type": "runnable",
"data": {
"id": [
"langchain",
"prompts",
"prompt",
"PromptTemplate"
],
"name": "PromptTemplate"
}
},
{
"id": 2,
"type": "schema",
"data": "PromptTemplateOutput"
}
],
"edges": [
{
"source": 0,
"target": 1
},
{
"source": 1,
"target": 2
}
]
}
} }
} }
} }
] ]
}, },
"name": "ChatPromptTemplate", "name": "ChatPromptTemplate"
"graph": {
"nodes": [
{
"id": 0,
"type": "schema",
"data": "PromptInput"
},
{
"id": 1,
"type": "runnable",
"data": {
"id": [
"langchain",
"prompts",
"chat",
"ChatPromptTemplate"
],
"name": "ChatPromptTemplate"
}
},
{
"id": 2,
"type": "schema",
"data": "ChatPromptTemplateOutput"
}
],
"edges": [
{
"source": 0,
"target": 1
},
{
"source": 1,
"target": 2
}
]
}
}, },
"llm": { "llm": {
"lc": 1, "lc": 1,
@ -443,44 +221,7 @@
"max_retries": 2, "max_retries": 2,
"n": 1 "n": 1
}, },
"name": "ChatOpenAI", "name": "ChatOpenAI"
"graph": {
"nodes": [
{
"id": 0,
"type": "schema",
"data": "ChatOpenAIInput"
},
{
"id": 1,
"type": "runnable",
"data": {
"id": [
"langchain",
"chat_models",
"openai",
"ChatOpenAI"
],
"name": "ChatOpenAI"
}
},
{
"id": 2,
"type": "schema",
"data": "ChatOpenAIOutput"
}
],
"edges": [
{
"source": 0,
"target": 1
},
{
"source": 1,
"target": 2
}
]
}
}, },
"output_key": "text", "output_key": "text",
"output_parser": { "output_parser": {
@ -493,85 +234,11 @@
"StrOutputParser" "StrOutputParser"
], ],
"kwargs": {}, "kwargs": {},
"name": "StrOutputParser", "name": "StrOutputParser"
"graph": {
"nodes": [
{
"id": 0,
"type": "schema",
"data": "StrOutputParserInput"
},
{
"id": 1,
"type": "runnable",
"data": {
"id": [
"langchain",
"schema",
"output_parser",
"StrOutputParser"
],
"name": "StrOutputParser"
}
},
{
"id": 2,
"type": "schema",
"data": "StrOutputParserOutput"
}
],
"edges": [
{
"source": 0,
"target": 1
},
{
"source": 1,
"target": 2
}
]
}
}, },
"return_final_only": true "return_final_only": true
}, },
"name": "LLMChain", "name": "LLMChain"
"graph": {
"nodes": [
{
"id": 0,
"type": "schema",
"data": "ChainInput"
},
{
"id": 1,
"type": "runnable",
"data": {
"id": [
"langchain",
"chains",
"llm",
"LLMChain"
],
"name": "LLMChain"
}
},
{
"id": 2,
"type": "schema",
"data": "ChainOutput"
}
],
"edges": [
{
"source": 0,
"target": 1
},
{
"source": 1,
"target": 2
}
]
}
} }
''' '''
# --- # ---
@ -603,44 +270,7 @@
"template": "hello {name}!", "template": "hello {name}!",
"template_format": "f-string" "template_format": "f-string"
}, },
"name": "PromptTemplate", "name": "PromptTemplate"
"graph": {
"nodes": [
{
"id": 0,
"type": "schema",
"data": "PromptInput"
},
{
"id": 1,
"type": "runnable",
"data": {
"id": [
"langchain",
"prompts",
"prompt",
"PromptTemplate"
],
"name": "PromptTemplate"
}
},
{
"id": 2,
"type": "schema",
"data": "PromptTemplateOutput"
}
],
"edges": [
{
"source": 0,
"target": 1
},
{
"source": 1,
"target": 2
}
]
}
}, },
"llm": { "llm": {
"lc": 1, "lc": 1,
@ -670,44 +300,7 @@
"max_retries": 2, "max_retries": 2,
"disallowed_special": "all" "disallowed_special": "all"
}, },
"name": "OpenAI", "name": "OpenAI"
"graph": {
"nodes": [
{
"id": 0,
"type": "schema",
"data": "OpenAIInput"
},
{
"id": 1,
"type": "runnable",
"data": {
"id": [
"langchain",
"llms",
"openai",
"OpenAI"
],
"name": "OpenAI"
}
},
{
"id": 2,
"type": "schema",
"data": "OpenAIOutput"
}
],
"edges": [
{
"source": 0,
"target": 1
},
{
"source": 1,
"target": 2
}
]
}
}, },
"output_key": "text", "output_key": "text",
"output_parser": { "output_parser": {
@ -720,85 +313,11 @@
"StrOutputParser" "StrOutputParser"
], ],
"kwargs": {}, "kwargs": {},
"name": "StrOutputParser", "name": "StrOutputParser"
"graph": {
"nodes": [
{
"id": 0,
"type": "schema",
"data": "StrOutputParserInput"
},
{
"id": 1,
"type": "runnable",
"data": {
"id": [
"langchain",
"schema",
"output_parser",
"StrOutputParser"
],
"name": "StrOutputParser"
}
},
{
"id": 2,
"type": "schema",
"data": "StrOutputParserOutput"
}
],
"edges": [
{
"source": 0,
"target": 1
},
{
"source": 1,
"target": 2
}
]
}
}, },
"return_final_only": true "return_final_only": true
}, },
"name": "LLMChain", "name": "LLMChain"
"graph": {
"nodes": [
{
"id": 0,
"type": "schema",
"data": "ChainInput"
},
{
"id": 1,
"type": "runnable",
"data": {
"id": [
"langchain",
"chains",
"llm",
"LLMChain"
],
"name": "LLMChain"
}
},
{
"id": 2,
"type": "schema",
"data": "ChainOutput"
}
],
"edges": [
{
"source": 0,
"target": 1
},
{
"source": 1,
"target": 2
}
]
}
} }
''' '''
# --- # ---
@ -832,44 +351,7 @@
"max_retries": 2, "max_retries": 2,
"disallowed_special": "all" "disallowed_special": "all"
}, },
"name": "OpenAI", "name": "OpenAI"
"graph": {
"nodes": [
{
"id": 0,
"type": "schema",
"data": "OpenAIInput"
},
{
"id": 1,
"type": "runnable",
"data": {
"id": [
"langchain",
"llms",
"openai",
"OpenAI"
],
"name": "OpenAI"
}
},
{
"id": 2,
"type": "schema",
"data": "OpenAIOutput"
}
],
"edges": [
{
"source": 0,
"target": 1
},
{
"source": 1,
"target": 2
}
]
}
} }
''' '''
# --- # ---

View File

@ -1354,7 +1354,7 @@ class CallbackManager(BaseCallbackManager):
def on_chain_start( def on_chain_start(
self, self,
serialized: Dict[str, Any], serialized: Optional[Dict[str, Any]],
inputs: Union[Dict[str, Any], Any], inputs: Union[Dict[str, Any], Any],
run_id: Optional[UUID] = None, run_id: Optional[UUID] = None,
**kwargs: Any, **kwargs: Any,
@ -1362,7 +1362,7 @@ class CallbackManager(BaseCallbackManager):
"""Run when chain starts running. """Run when chain starts running.
Args: Args:
serialized (Dict[str, Any]): The serialized chain. serialized (Optional[Dict[str, Any]]): The serialized chain.
inputs (Union[Dict[str, Any], Any]): The inputs to the chain. inputs (Union[Dict[str, Any], Any]): The inputs to the chain.
run_id (UUID, optional): The ID of the run. Defaults to None. run_id (UUID, optional): The ID of the run. Defaults to None.
**kwargs (Any): Additional keyword arguments. **kwargs (Any): Additional keyword arguments.
@ -1398,7 +1398,7 @@ class CallbackManager(BaseCallbackManager):
def on_tool_start( def on_tool_start(
self, self,
serialized: Dict[str, Any], serialized: Optional[Dict[str, Any]],
input_str: str, input_str: str,
run_id: Optional[UUID] = None, run_id: Optional[UUID] = None,
parent_run_id: Optional[UUID] = None, parent_run_id: Optional[UUID] = None,
@ -1453,7 +1453,7 @@ class CallbackManager(BaseCallbackManager):
def on_retriever_start( def on_retriever_start(
self, self,
serialized: Dict[str, Any], serialized: Optional[Dict[str, Any]],
query: str, query: str,
run_id: Optional[UUID] = None, run_id: Optional[UUID] = None,
parent_run_id: Optional[UUID] = None, parent_run_id: Optional[UUID] = None,
@ -1462,7 +1462,7 @@ class CallbackManager(BaseCallbackManager):
"""Run when the retriever starts running. """Run when the retriever starts running.
Args: Args:
serialized (Dict[str, Any]): The serialized retriever. serialized (Optional[Dict[str, Any]]): The serialized retriever.
query (str): The query. query (str): The query.
run_id (UUID, optional): The ID of the run. Defaults to None. run_id (UUID, optional): The ID of the run. Defaults to None.
parent_run_id (UUID, optional): The ID of the parent run. Defaults to None. parent_run_id (UUID, optional): The ID of the parent run. Defaults to None.
@ -1840,7 +1840,7 @@ class AsyncCallbackManager(BaseCallbackManager):
async def on_chain_start( async def on_chain_start(
self, self,
serialized: Dict[str, Any], serialized: Optional[Dict[str, Any]],
inputs: Union[Dict[str, Any], Any], inputs: Union[Dict[str, Any], Any],
run_id: Optional[UUID] = None, run_id: Optional[UUID] = None,
**kwargs: Any, **kwargs: Any,
@ -1848,7 +1848,7 @@ class AsyncCallbackManager(BaseCallbackManager):
"""Async run when chain starts running. """Async run when chain starts running.
Args: Args:
serialized (Dict[str, Any]): The serialized chain. serialized (Optional[Dict[str, Any]]): The serialized chain.
inputs (Union[Dict[str, Any], Any]): The inputs to the chain. inputs (Union[Dict[str, Any], Any]): The inputs to the chain.
run_id (UUID, optional): The ID of the run. Defaults to None. run_id (UUID, optional): The ID of the run. Defaults to None.
**kwargs (Any): Additional keyword arguments. **kwargs (Any): Additional keyword arguments.
@ -1886,7 +1886,7 @@ class AsyncCallbackManager(BaseCallbackManager):
async def on_tool_start( async def on_tool_start(
self, self,
serialized: Dict[str, Any], serialized: Optional[Dict[str, Any]],
input_str: str, input_str: str,
run_id: Optional[UUID] = None, run_id: Optional[UUID] = None,
parent_run_id: Optional[UUID] = None, parent_run_id: Optional[UUID] = None,
@ -1895,7 +1895,7 @@ class AsyncCallbackManager(BaseCallbackManager):
"""Run when the tool starts running. """Run when the tool starts running.
Args: Args:
serialized (Dict[str, Any]): The serialized tool. serialized (Optional[Dict[str, Any]]): The serialized tool.
input_str (str): The input to the tool. input_str (str): The input to the tool.
run_id (UUID, optional): The ID of the run. Defaults to None. run_id (UUID, optional): The ID of the run. Defaults to None.
parent_run_id (UUID, optional): The ID of the parent run. parent_run_id (UUID, optional): The ID of the parent run.
@ -1975,7 +1975,7 @@ class AsyncCallbackManager(BaseCallbackManager):
async def on_retriever_start( async def on_retriever_start(
self, self,
serialized: Dict[str, Any], serialized: Optional[Dict[str, Any]],
query: str, query: str,
run_id: Optional[UUID] = None, run_id: Optional[UUID] = None,
parent_run_id: Optional[UUID] = None, parent_run_id: Optional[UUID] = None,
@ -1984,7 +1984,7 @@ class AsyncCallbackManager(BaseCallbackManager):
"""Run when the retriever starts running. """Run when the retriever starts running.
Args: Args:
serialized (Dict[str, Any]): The serialized retriever. serialized (Optional[Dict[str, Any]]): The serialized retriever.
query (str): The query. query (str): The query.
run_id (UUID, optional): The ID of the run. Defaults to None. run_id (UUID, optional): The ID of the run. Defaults to None.
parent_run_id (UUID, optional): The ID of the parent run. Defaults to None. parent_run_id (UUID, optional): The ID of the parent run. Defaults to None.

View File

@ -19,6 +19,7 @@ from typing import (
import yaml import yaml
from langchain_core.load import dumpd
from langchain_core.output_parsers.base import BaseOutputParser from langchain_core.output_parsers.base import BaseOutputParser
from langchain_core.prompt_values import ( from langchain_core.prompt_values import (
ChatPromptValueConcrete, ChatPromptValueConcrete,
@ -188,6 +189,7 @@ class BasePromptTemplate(
input, input,
config, config,
run_type="prompt", run_type="prompt",
serialized=dumpd(self),
) )
async def ainvoke( async def ainvoke(
@ -212,6 +214,7 @@ class BasePromptTemplate(
input, input,
config, config,
run_type="prompt", run_type="prompt",
serialized=dumpd(self),
) )
@abstractmethod @abstractmethod

View File

@ -30,7 +30,6 @@ from typing_extensions import TypedDict
from langchain_core._api import deprecated from langchain_core._api import deprecated
from langchain_core.documents import Document from langchain_core.documents import Document
from langchain_core.load.dump import dumpd
from langchain_core.runnables import ( from langchain_core.runnables import (
Runnable, Runnable,
RunnableConfig, RunnableConfig,
@ -235,9 +234,9 @@ class BaseRetriever(RunnableSerializable[RetrieverInput, RetrieverOutput], ABC):
local_metadata=self.metadata, local_metadata=self.metadata,
) )
run_manager = callback_manager.on_retriever_start( run_manager = callback_manager.on_retriever_start(
dumpd(self), None,
input, input,
name=config.get("run_name"), name=config.get("run_name") or self.get_name(),
run_id=kwargs.pop("run_id", None), run_id=kwargs.pop("run_id", None),
) )
try: try:
@ -298,9 +297,9 @@ class BaseRetriever(RunnableSerializable[RetrieverInput, RetrieverOutput], ABC):
local_metadata=self.metadata, local_metadata=self.metadata,
) )
run_manager = await callback_manager.on_retriever_start( run_manager = await callback_manager.on_retriever_start(
dumpd(self), None,
input, input,
name=config.get("run_name"), name=config.get("run_name") or self.get_name(),
run_id=kwargs.pop("run_id", None), run_id=kwargs.pop("run_id", None),
) )
try: try:

View File

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

View File

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

View File

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

View File

@ -73,14 +73,15 @@ class RunInfo(TypedDict):
parent_run_id: Optional[UUID] parent_run_id: Optional[UUID]
def _assign_name(name: Optional[str], serialized: Dict[str, Any]) -> str: def _assign_name(name: Optional[str], serialized: Optional[Dict[str, Any]]) -> str:
"""Assign a name to a run.""" """Assign a name to a run."""
if name is not None: if name is not None:
return name return name
if "name" in serialized: if serialized is not None:
return serialized["name"] if "name" in serialized:
elif "id" in serialized: return serialized["name"]
return serialized["id"][-1] elif "id" in serialized:
return serialized["id"][-1]
return "Unnamed" return "Unnamed"

View File

@ -1236,43 +1236,6 @@
# --- # ---
# name: test_chat_prompt_w_msgs_placeholder_ser_des[chat_prompt] # name: test_chat_prompt_w_msgs_placeholder_ser_des[chat_prompt]
dict({ dict({
'graph': dict({
'edges': list([
dict({
'source': 0,
'target': 1,
}),
dict({
'source': 1,
'target': 2,
}),
]),
'nodes': list([
dict({
'data': 'PromptInput',
'id': 0,
'type': 'schema',
}),
dict({
'data': dict({
'id': list([
'langchain',
'prompts',
'chat',
'ChatPromptTemplate',
]),
'name': 'ChatPromptTemplate',
}),
'id': 1,
'type': 'runnable',
}),
dict({
'data': 'ChatPromptTemplateOutput',
'id': 2,
'type': 'schema',
}),
]),
}),
'id': list([ 'id': list([
'langchain', 'langchain',
'prompts', 'prompts',
@ -1293,43 +1256,6 @@
]), ]),
'kwargs': dict({ 'kwargs': dict({
'prompt': dict({ 'prompt': dict({
'graph': dict({
'edges': list([
dict({
'source': 0,
'target': 1,
}),
dict({
'source': 1,
'target': 2,
}),
]),
'nodes': list([
dict({
'data': 'PromptInput',
'id': 0,
'type': 'schema',
}),
dict({
'data': dict({
'id': list([
'langchain',
'prompts',
'prompt',
'PromptTemplate',
]),
'name': 'PromptTemplate',
}),
'id': 1,
'type': 'runnable',
}),
dict({
'data': 'PromptTemplateOutput',
'id': 2,
'type': 'schema',
}),
]),
}),
'id': list([ 'id': list([
'langchain', 'langchain',
'prompts', 'prompts',
@ -1372,43 +1298,6 @@
]), ]),
'kwargs': dict({ 'kwargs': dict({
'prompt': dict({ 'prompt': dict({
'graph': dict({
'edges': list([
dict({
'source': 0,
'target': 1,
}),
dict({
'source': 1,
'target': 2,
}),
]),
'nodes': list([
dict({
'data': 'PromptInput',
'id': 0,
'type': 'schema',
}),
dict({
'data': dict({
'id': list([
'langchain',
'prompts',
'prompt',
'PromptTemplate',
]),
'name': 'PromptTemplate',
}),
'id': 1,
'type': 'runnable',
}),
dict({
'data': 'PromptTemplateOutput',
'id': 2,
'type': 'schema',
}),
]),
}),
'id': list([ 'id': list([
'langchain', 'langchain',
'prompts', 'prompts',
@ -1453,43 +1342,6 @@
# --- # ---
# name: test_chat_tmpl_serdes # name: test_chat_tmpl_serdes
dict({ dict({
'graph': dict({
'edges': list([
dict({
'source': 0,
'target': 1,
}),
dict({
'source': 1,
'target': 2,
}),
]),
'nodes': list([
dict({
'data': 'PromptInput',
'id': 0,
'type': 'schema',
}),
dict({
'data': dict({
'id': list([
'langchain',
'prompts',
'chat',
'ChatPromptTemplate',
]),
'name': 'ChatPromptTemplate',
}),
'id': 1,
'type': 'runnable',
}),
dict({
'data': 'ChatPromptTemplateOutput',
'id': 2,
'type': 'schema',
}),
]),
}),
'id': list([ 'id': list([
'langchain', 'langchain',
'prompts', 'prompts',
@ -1514,43 +1366,6 @@
]), ]),
'kwargs': dict({ 'kwargs': dict({
'prompt': dict({ 'prompt': dict({
'graph': dict({
'edges': list([
dict({
'source': 0,
'target': 1,
}),
dict({
'source': 1,
'target': 2,
}),
]),
'nodes': list([
dict({
'data': 'PromptInput',
'id': 0,
'type': 'schema',
}),
dict({
'data': dict({
'id': list([
'langchain',
'prompts',
'prompt',
'PromptTemplate',
]),
'name': 'PromptTemplate',
}),
'id': 1,
'type': 'runnable',
}),
dict({
'data': 'PromptTemplateOutput',
'id': 2,
'type': 'schema',
}),
]),
}),
'id': list([ 'id': list([
'langchain', 'langchain',
'prompts', 'prompts',
@ -1582,43 +1397,6 @@
'kwargs': dict({ 'kwargs': dict({
'prompt': list([ 'prompt': list([
dict({ dict({
'graph': dict({
'edges': list([
dict({
'source': 0,
'target': 1,
}),
dict({
'source': 1,
'target': 2,
}),
]),
'nodes': list([
dict({
'data': 'PromptInput',
'id': 0,
'type': 'schema',
}),
dict({
'data': dict({
'id': list([
'langchain',
'prompts',
'prompt',
'PromptTemplate',
]),
'name': 'PromptTemplate',
}),
'id': 1,
'type': 'runnable',
}),
dict({
'data': 'PromptTemplateOutput',
'id': 2,
'type': 'schema',
}),
]),
}),
'id': list([ 'id': list([
'langchain', 'langchain',
'prompts', 'prompts',
@ -1650,43 +1428,6 @@
]), ]),
'kwargs': dict({ 'kwargs': dict({
'prompt': dict({ 'prompt': dict({
'graph': dict({
'edges': list([
dict({
'source': 0,
'target': 1,
}),
dict({
'source': 1,
'target': 2,
}),
]),
'nodes': list([
dict({
'data': 'PromptInput',
'id': 0,
'type': 'schema',
}),
dict({
'data': dict({
'id': list([
'langchain',
'prompts',
'prompt',
'PromptTemplate',
]),
'name': 'PromptTemplate',
}),
'id': 1,
'type': 'runnable',
}),
dict({
'data': 'PromptTemplateOutput',
'id': 2,
'type': 'schema',
}),
]),
}),
'id': list([ 'id': list([
'langchain', 'langchain',
'prompts', 'prompts',
@ -1718,43 +1459,6 @@
'kwargs': dict({ 'kwargs': dict({
'prompt': list([ 'prompt': list([
dict({ dict({
'graph': dict({
'edges': list([
dict({
'source': 0,
'target': 1,
}),
dict({
'source': 1,
'target': 2,
}),
]),
'nodes': list([
dict({
'data': 'PromptInput',
'id': 0,
'type': 'schema',
}),
dict({
'data': dict({
'id': list([
'langchain',
'prompts',
'prompt',
'PromptTemplate',
]),
'name': 'PromptTemplate',
}),
'id': 1,
'type': 'runnable',
}),
dict({
'data': 'PromptTemplateOutput',
'id': 2,
'type': 'schema',
}),
]),
}),
'id': list([ 'id': list([
'langchain', 'langchain',
'prompts', 'prompts',
@ -1772,43 +1476,6 @@
'type': 'constructor', 'type': 'constructor',
}), }),
dict({ dict({
'graph': dict({
'edges': list([
dict({
'source': 0,
'target': 1,
}),
dict({
'source': 1,
'target': 2,
}),
]),
'nodes': list([
dict({
'data': 'PromptInput',
'id': 0,
'type': 'schema',
}),
dict({
'data': dict({
'id': list([
'langchain',
'prompts',
'prompt',
'PromptTemplate',
]),
'name': 'PromptTemplate',
}),
'id': 1,
'type': 'runnable',
}),
dict({
'data': 'PromptTemplateOutput',
'id': 2,
'type': 'schema',
}),
]),
}),
'id': list([ 'id': list([
'langchain', 'langchain',
'prompts', 'prompts',
@ -1826,43 +1493,6 @@
'type': 'constructor', 'type': 'constructor',
}), }),
dict({ dict({
'graph': dict({
'edges': list([
dict({
'source': 0,
'target': 1,
}),
dict({
'source': 1,
'target': 2,
}),
]),
'nodes': list([
dict({
'data': 'PromptInput',
'id': 0,
'type': 'schema',
}),
dict({
'data': dict({
'id': list([
'langchain',
'prompts',
'prompt',
'PromptTemplate',
]),
'name': 'PromptTemplate',
}),
'id': 1,
'type': 'runnable',
}),
dict({
'data': 'PromptTemplateOutput',
'id': 2,
'type': 'schema',
}),
]),
}),
'id': list([ 'id': list([
'langchain', 'langchain',
'prompts', 'prompts',
@ -1880,43 +1510,6 @@
'type': 'constructor', 'type': 'constructor',
}), }),
dict({ dict({
'graph': dict({
'edges': list([
dict({
'source': 0,
'target': 1,
}),
dict({
'source': 1,
'target': 2,
}),
]),
'nodes': list([
dict({
'data': 'PromptInput',
'id': 0,
'type': 'schema',
}),
dict({
'data': dict({
'id': list([
'langchain',
'prompts',
'image',
'ImagePromptTemplate',
]),
'name': 'ImagePromptTemplate',
}),
'id': 1,
'type': 'runnable',
}),
dict({
'data': 'ImagePromptTemplateOutput',
'id': 2,
'type': 'schema',
}),
]),
}),
'id': list([ 'id': list([
'langchain', 'langchain',
'prompts', 'prompts',
@ -1936,43 +1529,6 @@
'type': 'constructor', 'type': 'constructor',
}), }),
dict({ dict({
'graph': dict({
'edges': list([
dict({
'source': 0,
'target': 1,
}),
dict({
'source': 1,
'target': 2,
}),
]),
'nodes': list([
dict({
'data': 'PromptInput',
'id': 0,
'type': 'schema',
}),
dict({
'data': dict({
'id': list([
'langchain',
'prompts',
'image',
'ImagePromptTemplate',
]),
'name': 'ImagePromptTemplate',
}),
'id': 1,
'type': 'runnable',
}),
dict({
'data': 'ImagePromptTemplateOutput',
'id': 2,
'type': 'schema',
}),
]),
}),
'id': list([ 'id': list([
'langchain', 'langchain',
'prompts', 'prompts',
@ -1992,43 +1548,6 @@
'type': 'constructor', 'type': 'constructor',
}), }),
dict({ dict({
'graph': dict({
'edges': list([
dict({
'source': 0,
'target': 1,
}),
dict({
'source': 1,
'target': 2,
}),
]),
'nodes': list([
dict({
'data': 'PromptInput',
'id': 0,
'type': 'schema',
}),
dict({
'data': dict({
'id': list([
'langchain',
'prompts',
'image',
'ImagePromptTemplate',
]),
'name': 'ImagePromptTemplate',
}),
'id': 1,
'type': 'runnable',
}),
dict({
'data': 'ImagePromptTemplateOutput',
'id': 2,
'type': 'schema',
}),
]),
}),
'id': list([ 'id': list([
'langchain', 'langchain',
'prompts', 'prompts',
@ -2048,43 +1567,6 @@
'type': 'constructor', 'type': 'constructor',
}), }),
dict({ dict({
'graph': dict({
'edges': list([
dict({
'source': 0,
'target': 1,
}),
dict({
'source': 1,
'target': 2,
}),
]),
'nodes': list([
dict({
'data': 'PromptInput',
'id': 0,
'type': 'schema',
}),
dict({
'data': dict({
'id': list([
'langchain',
'prompts',
'image',
'ImagePromptTemplate',
]),
'name': 'ImagePromptTemplate',
}),
'id': 1,
'type': 'runnable',
}),
dict({
'data': 'ImagePromptTemplateOutput',
'id': 2,
'type': 'schema',
}),
]),
}),
'id': list([ 'id': list([
'langchain', 'langchain',
'prompts', 'prompts',
@ -2105,43 +1587,6 @@
'type': 'constructor', 'type': 'constructor',
}), }),
dict({ dict({
'graph': dict({
'edges': list([
dict({
'source': 0,
'target': 1,
}),
dict({
'source': 1,
'target': 2,
}),
]),
'nodes': list([
dict({
'data': 'PromptInput',
'id': 0,
'type': 'schema',
}),
dict({
'data': dict({
'id': list([
'langchain',
'prompts',
'image',
'ImagePromptTemplate',
]),
'name': 'ImagePromptTemplate',
}),
'id': 1,
'type': 'runnable',
}),
dict({
'data': 'ImagePromptTemplateOutput',
'id': 2,
'type': 'schema',
}),
]),
}),
'id': list([ 'id': list([
'langchain', 'langchain',
'prompts', 'prompts',
@ -2160,43 +1605,6 @@
'type': 'constructor', 'type': 'constructor',
}), }),
dict({ dict({
'graph': dict({
'edges': list([
dict({
'source': 0,
'target': 1,
}),
dict({
'source': 1,
'target': 2,
}),
]),
'nodes': list([
dict({
'data': 'PromptInput',
'id': 0,
'type': 'schema',
}),
dict({
'data': dict({
'id': list([
'langchain',
'prompts',
'image',
'ImagePromptTemplate',
]),
'name': 'ImagePromptTemplate',
}),
'id': 1,
'type': 'runnable',
}),
dict({
'data': 'ImagePromptTemplateOutput',
'id': 2,
'type': 'schema',
}),
]),
}),
'id': list([ 'id': list([
'langchain', 'langchain',
'prompts', 'prompts',
@ -2215,43 +1623,6 @@
'type': 'constructor', 'type': 'constructor',
}), }),
dict({ dict({
'graph': dict({
'edges': list([
dict({
'source': 0,
'target': 1,
}),
dict({
'source': 1,
'target': 2,
}),
]),
'nodes': list([
dict({
'data': 'PromptInput',
'id': 0,
'type': 'schema',
}),
dict({
'data': dict({
'id': list([
'langchain',
'prompts',
'image',
'ImagePromptTemplate',
]),
'name': 'ImagePromptTemplate',
}),
'id': 1,
'type': 'runnable',
}),
dict({
'data': 'ImagePromptTemplateOutput',
'id': 2,
'type': 'schema',
}),
]),
}),
'id': list([ 'id': list([
'langchain', 'langchain',
'prompts', 'prompts',

View File

@ -35,44 +35,7 @@
} }
} }
}, },
"name": "RunnableParallel<buz>", "name": "RunnableParallel<buz>"
"graph": {
"nodes": [
{
"id": 0,
"type": "schema",
"data": "Parallel<buz>Input"
},
{
"id": 1,
"type": "schema",
"data": "Parallel<buz>Output"
},
{
"id": 2,
"type": "runnable",
"data": {
"id": [
"langchain_core",
"runnables",
"base",
"RunnableLambda"
],
"name": "Lambda"
}
}
],
"edges": [
{
"source": 0,
"target": 2
},
{
"source": 2,
"target": 1
}
]
}
}, },
"last": { "last": {
"lc": 1, "lc": 1,
@ -110,44 +73,7 @@
"template": "what did baz say to {buz}", "template": "what did baz say to {buz}",
"template_format": "f-string" "template_format": "f-string"
}, },
"name": "PromptTemplate", "name": "PromptTemplate"
"graph": {
"nodes": [
{
"id": 0,
"type": "schema",
"data": "PromptInput"
},
{
"id": 1,
"type": "runnable",
"data": {
"id": [
"langchain",
"prompts",
"prompt",
"PromptTemplate"
],
"name": "PromptTemplate"
}
},
{
"id": 2,
"type": "schema",
"data": "PromptTemplateOutput"
}
],
"edges": [
{
"source": 0,
"target": 1
},
{
"source": 1,
"target": 2
}
]
}
}, },
"last": { "last": {
"lc": 1, "lc": 1,
@ -159,101 +85,10 @@
"FakeListLLM" "FakeListLLM"
], ],
"repr": "FakeListLLM(responses=['foo'], i=1)", "repr": "FakeListLLM(responses=['foo'], i=1)",
"name": "FakeListLLM", "name": "FakeListLLM"
"graph": {
"nodes": [
{
"id": 0,
"type": "schema",
"data": "FakeListLLMInput"
},
{
"id": 1,
"type": "runnable",
"data": {
"id": [
"langchain_core",
"language_models",
"fake",
"FakeListLLM"
],
"name": "FakeListLLM"
}
},
{
"id": 2,
"type": "schema",
"data": "FakeListLLMOutput"
}
],
"edges": [
{
"source": 0,
"target": 1
},
{
"source": 1,
"target": 2
}
]
}
} }
}, },
"name": "RunnableSequence", "name": "RunnableSequence"
"graph": {
"nodes": [
{
"id": 0,
"type": "schema",
"data": "PromptInput"
},
{
"id": 1,
"type": "runnable",
"data": {
"id": [
"langchain",
"prompts",
"prompt",
"PromptTemplate"
],
"name": "PromptTemplate"
}
},
{
"id": 2,
"type": "runnable",
"data": {
"id": [
"langchain_core",
"language_models",
"fake",
"FakeListLLM"
],
"name": "FakeListLLM"
}
},
{
"id": 3,
"type": "schema",
"data": "FakeListLLMOutput"
}
],
"edges": [
{
"source": 0,
"target": 1
},
{
"source": 2,
"target": 3
},
{
"source": 1,
"target": 2
}
]
}
}, },
"fallbacks": [ "fallbacks": [
{ {
@ -282,44 +117,7 @@
"template": "what did baz say to {buz}", "template": "what did baz say to {buz}",
"template_format": "f-string" "template_format": "f-string"
}, },
"name": "PromptTemplate", "name": "PromptTemplate"
"graph": {
"nodes": [
{
"id": 0,
"type": "schema",
"data": "PromptInput"
},
{
"id": 1,
"type": "runnable",
"data": {
"id": [
"langchain",
"prompts",
"prompt",
"PromptTemplate"
],
"name": "PromptTemplate"
}
},
{
"id": 2,
"type": "schema",
"data": "PromptTemplateOutput"
}
],
"edges": [
{
"source": 0,
"target": 1
},
{
"source": 1,
"target": 2
}
]
}
}, },
"last": { "last": {
"lc": 1, "lc": 1,
@ -331,101 +129,10 @@
"FakeListLLM" "FakeListLLM"
], ],
"repr": "FakeListLLM(responses=['bar'])", "repr": "FakeListLLM(responses=['bar'])",
"name": "FakeListLLM", "name": "FakeListLLM"
"graph": {
"nodes": [
{
"id": 0,
"type": "schema",
"data": "FakeListLLMInput"
},
{
"id": 1,
"type": "runnable",
"data": {
"id": [
"langchain_core",
"language_models",
"fake",
"FakeListLLM"
],
"name": "FakeListLLM"
}
},
{
"id": 2,
"type": "schema",
"data": "FakeListLLMOutput"
}
],
"edges": [
{
"source": 0,
"target": 1
},
{
"source": 1,
"target": 2
}
]
}
} }
}, },
"name": "RunnableSequence", "name": "RunnableSequence"
"graph": {
"nodes": [
{
"id": 0,
"type": "schema",
"data": "PromptInput"
},
{
"id": 1,
"type": "runnable",
"data": {
"id": [
"langchain",
"prompts",
"prompt",
"PromptTemplate"
],
"name": "PromptTemplate"
}
},
{
"id": 2,
"type": "runnable",
"data": {
"id": [
"langchain_core",
"language_models",
"fake",
"FakeListLLM"
],
"name": "FakeListLLM"
}
},
{
"id": 3,
"type": "schema",
"data": "FakeListLLMOutput"
}
],
"edges": [
{
"source": 0,
"target": 1
},
{
"source": 2,
"target": 3
},
{
"source": 1,
"target": 2
}
]
}
} }
], ],
"exceptions_to_handle": [ "exceptions_to_handle": [
@ -440,101 +147,10 @@
} }
] ]
}, },
"name": "RunnableWithFallbacks", "name": "RunnableWithFallbacks"
"graph": {
"nodes": [
{
"id": 0,
"type": "schema",
"data": "PromptInput"
},
{
"id": 1,
"type": "runnable",
"data": {
"id": [
"langchain",
"schema",
"runnable",
"RunnableWithFallbacks"
],
"name": "WithFallbacks"
}
},
{
"id": 2,
"type": "schema",
"data": "FakeListLLMOutput"
}
],
"edges": [
{
"source": 0,
"target": 1
},
{
"source": 1,
"target": 2
}
]
}
} }
}, },
"name": "RunnableSequence", "name": "RunnableSequence"
"graph": {
"nodes": [
{
"id": 0,
"type": "schema",
"data": "Parallel<buz>Input"
},
{
"id": 1,
"type": "runnable",
"data": {
"id": [
"langchain_core",
"runnables",
"base",
"RunnableLambda"
],
"name": "Lambda"
}
},
{
"id": 2,
"type": "runnable",
"data": {
"id": [
"langchain",
"schema",
"runnable",
"RunnableWithFallbacks"
],
"name": "WithFallbacks"
}
},
{
"id": 3,
"type": "schema",
"data": "FakeListLLMOutput"
}
],
"edges": [
{
"source": 0,
"target": 1
},
{
"source": 2,
"target": 3
},
{
"source": 1,
"target": 2
}
]
}
} }
''' '''
# --- # ---
@ -571,85 +187,11 @@
"RunnablePassthrough" "RunnablePassthrough"
], ],
"kwargs": {}, "kwargs": {},
"name": "RunnablePassthrough", "name": "RunnablePassthrough"
"graph": {
"nodes": [
{
"id": 0,
"type": "schema",
"data": "PassthroughInput"
},
{
"id": 1,
"type": "runnable",
"data": {
"id": [
"langchain",
"schema",
"runnable",
"RunnablePassthrough"
],
"name": "Passthrough"
}
},
{
"id": 2,
"type": "schema",
"data": "PassthroughOutput"
}
],
"edges": [
{
"source": 0,
"target": 1
},
{
"source": 1,
"target": 2
}
]
}
} }
} }
}, },
"name": "RunnableParallel<text>", "name": "RunnableParallel<text>"
"graph": {
"nodes": [
{
"id": 0,
"type": "schema",
"data": "Parallel<text>Input"
},
{
"id": 1,
"type": "schema",
"data": "Parallel<text>Output"
},
{
"id": 2,
"type": "runnable",
"data": {
"id": [
"langchain",
"schema",
"runnable",
"RunnablePassthrough"
],
"name": "Passthrough"
}
}
],
"edges": [
{
"source": 0,
"target": 2
},
{
"source": 2,
"target": 1
}
]
}
}, },
"last": { "last": {
"lc": 1, "lc": 1,
@ -698,101 +240,10 @@
], ],
"exception_key": "exception" "exception_key": "exception"
}, },
"name": "RunnableWithFallbacks", "name": "RunnableWithFallbacks"
"graph": {
"nodes": [
{
"id": 0,
"type": "schema",
"data": "_raise_error_input"
},
{
"id": 1,
"type": "runnable",
"data": {
"id": [
"langchain",
"schema",
"runnable",
"RunnableWithFallbacks"
],
"name": "WithFallbacks"
}
},
{
"id": 2,
"type": "schema",
"data": "_raise_error_output"
}
],
"edges": [
{
"source": 0,
"target": 1
},
{
"source": 1,
"target": 2
}
]
}
} }
}, },
"name": "RunnableSequence", "name": "RunnableSequence"
"graph": {
"nodes": [
{
"id": 0,
"type": "schema",
"data": "Parallel<text>Input"
},
{
"id": 1,
"type": "runnable",
"data": {
"id": [
"langchain",
"schema",
"runnable",
"RunnablePassthrough"
],
"name": "Passthrough"
}
},
{
"id": 2,
"type": "runnable",
"data": {
"id": [
"langchain",
"schema",
"runnable",
"RunnableWithFallbacks"
],
"name": "WithFallbacks"
}
},
{
"id": 3,
"type": "schema",
"data": "_raise_error_output"
}
],
"edges": [
{
"source": 0,
"target": 1
},
{
"source": 2,
"target": 3
},
{
"source": 1,
"target": 2
}
]
}
} }
''' '''
# --- # ---
@ -818,44 +269,7 @@
"FakeListLLM" "FakeListLLM"
], ],
"repr": "FakeListLLM(responses=['foo'], i=1)", "repr": "FakeListLLM(responses=['foo'], i=1)",
"name": "FakeListLLM", "name": "FakeListLLM"
"graph": {
"nodes": [
{
"id": 0,
"type": "schema",
"data": "FakeListLLMInput"
},
{
"id": 1,
"type": "runnable",
"data": {
"id": [
"langchain_core",
"language_models",
"fake",
"FakeListLLM"
],
"name": "FakeListLLM"
}
},
{
"id": 2,
"type": "schema",
"data": "FakeListLLMOutput"
}
],
"edges": [
{
"source": 0,
"target": 1
},
{
"source": 1,
"target": 2
}
]
}
}, },
"fallbacks": [ "fallbacks": [
{ {
@ -868,44 +282,7 @@
"FakeListLLM" "FakeListLLM"
], ],
"repr": "FakeListLLM(responses=['bar'])", "repr": "FakeListLLM(responses=['bar'])",
"name": "FakeListLLM", "name": "FakeListLLM"
"graph": {
"nodes": [
{
"id": 0,
"type": "schema",
"data": "FakeListLLMInput"
},
{
"id": 1,
"type": "runnable",
"data": {
"id": [
"langchain_core",
"language_models",
"fake",
"FakeListLLM"
],
"name": "FakeListLLM"
}
},
{
"id": 2,
"type": "schema",
"data": "FakeListLLMOutput"
}
],
"edges": [
{
"source": 0,
"target": 1
},
{
"source": 1,
"target": 2
}
]
}
} }
], ],
"exceptions_to_handle": [ "exceptions_to_handle": [
@ -920,44 +297,7 @@
} }
] ]
}, },
"name": "RunnableWithFallbacks", "name": "RunnableWithFallbacks"
"graph": {
"nodes": [
{
"id": 0,
"type": "schema",
"data": "FakeListLLMInput"
},
{
"id": 1,
"type": "runnable",
"data": {
"id": [
"langchain",
"schema",
"runnable",
"RunnableWithFallbacks"
],
"name": "WithFallbacks"
}
},
{
"id": 2,
"type": "schema",
"data": "FakeListLLMOutput"
}
],
"edges": [
{
"source": 0,
"target": 1
},
{
"source": 1,
"target": 2
}
]
}
} }
''' '''
# --- # ---
@ -983,44 +323,7 @@
"FakeListLLM" "FakeListLLM"
], ],
"repr": "FakeListLLM(responses=['foo'], i=1)", "repr": "FakeListLLM(responses=['foo'], i=1)",
"name": "FakeListLLM", "name": "FakeListLLM"
"graph": {
"nodes": [
{
"id": 0,
"type": "schema",
"data": "FakeListLLMInput"
},
{
"id": 1,
"type": "runnable",
"data": {
"id": [
"langchain_core",
"language_models",
"fake",
"FakeListLLM"
],
"name": "FakeListLLM"
}
},
{
"id": 2,
"type": "schema",
"data": "FakeListLLMOutput"
}
],
"edges": [
{
"source": 0,
"target": 1
},
{
"source": 1,
"target": 2
}
]
}
}, },
"fallbacks": [ "fallbacks": [
{ {
@ -1033,44 +336,7 @@
"FakeListLLM" "FakeListLLM"
], ],
"repr": "FakeListLLM(responses=['baz'], i=1)", "repr": "FakeListLLM(responses=['baz'], i=1)",
"name": "FakeListLLM", "name": "FakeListLLM"
"graph": {
"nodes": [
{
"id": 0,
"type": "schema",
"data": "FakeListLLMInput"
},
{
"id": 1,
"type": "runnable",
"data": {
"id": [
"langchain_core",
"language_models",
"fake",
"FakeListLLM"
],
"name": "FakeListLLM"
}
},
{
"id": 2,
"type": "schema",
"data": "FakeListLLMOutput"
}
],
"edges": [
{
"source": 0,
"target": 1
},
{
"source": 1,
"target": 2
}
]
}
}, },
{ {
"lc": 1, "lc": 1,
@ -1082,44 +348,7 @@
"FakeListLLM" "FakeListLLM"
], ],
"repr": "FakeListLLM(responses=['bar'])", "repr": "FakeListLLM(responses=['bar'])",
"name": "FakeListLLM", "name": "FakeListLLM"
"graph": {
"nodes": [
{
"id": 0,
"type": "schema",
"data": "FakeListLLMInput"
},
{
"id": 1,
"type": "runnable",
"data": {
"id": [
"langchain_core",
"language_models",
"fake",
"FakeListLLM"
],
"name": "FakeListLLM"
}
},
{
"id": 2,
"type": "schema",
"data": "FakeListLLMOutput"
}
],
"edges": [
{
"source": 0,
"target": 1
},
{
"source": 1,
"target": 2
}
]
}
} }
], ],
"exceptions_to_handle": [ "exceptions_to_handle": [
@ -1134,44 +363,7 @@
} }
] ]
}, },
"name": "RunnableWithFallbacks", "name": "RunnableWithFallbacks"
"graph": {
"nodes": [
{
"id": 0,
"type": "schema",
"data": "FakeListLLMInput"
},
{
"id": 1,
"type": "runnable",
"data": {
"id": [
"langchain",
"schema",
"runnable",
"RunnableWithFallbacks"
],
"name": "WithFallbacks"
}
},
{
"id": 2,
"type": "schema",
"data": "FakeListLLMOutput"
}
],
"edges": [
{
"source": 0,
"target": 1
},
{
"source": 1,
"target": 2
}
]
}
} }
''' '''
# --- # ---

File diff suppressed because one or more lines are too long

View File

@ -2520,7 +2520,7 @@ async def test_stream_log_retriever() -> None:
"ChatPromptTemplate", "ChatPromptTemplate",
"FakeListLLM", "FakeListLLM",
"FakeListLLM:2", "FakeListLLM:2",
"Retriever", "FakeRetriever",
"RunnableLambda", "RunnableLambda",
"RunnableParallel<documents,question>", "RunnableParallel<documents,question>",
"RunnableParallel<one,two>", "RunnableParallel<one,two>",

View File

@ -1280,7 +1280,7 @@ async def test_event_stream_with_retriever_and_formatter() -> None:
"data": {"input": {"query": "hello"}}, "data": {"input": {"query": "hello"}},
"event": "on_retriever_start", "event": "on_retriever_start",
"metadata": {}, "metadata": {},
"name": "Retriever", "name": "HardCodedRetriever",
"run_id": "", "run_id": "",
"parent_ids": [], "parent_ids": [],
"tags": ["seq:step:1"], "tags": ["seq:step:1"],
@ -1302,7 +1302,7 @@ async def test_event_stream_with_retriever_and_formatter() -> None:
}, },
"event": "on_retriever_end", "event": "on_retriever_end",
"metadata": {}, "metadata": {},
"name": "Retriever", "name": "HardCodedRetriever",
"run_id": "", "run_id": "",
"parent_ids": [], "parent_ids": [],
"tags": ["seq:step:1"], "tags": ["seq:step:1"],

View File

@ -23,7 +23,6 @@ from langchain_core.callbacks import CallbackManagerForRetrieverRun, Callbacks
from langchain_core.chat_history import BaseChatMessageHistory from langchain_core.chat_history import BaseChatMessageHistory
from langchain_core.documents import Document from langchain_core.documents import Document
from langchain_core.language_models import FakeStreamingListLLM, GenericFakeChatModel from langchain_core.language_models import FakeStreamingListLLM, GenericFakeChatModel
from langchain_core.load import dumpd
from langchain_core.messages import ( from langchain_core.messages import (
AIMessage, AIMessage,
AIMessageChunk, AIMessageChunk,
@ -2080,7 +2079,7 @@ class StreamingRunnable(Runnable[Input, Output]):
config = ensure_config(config) config = ensure_config(config)
callback_manager = get_callback_manager_for_config(config) callback_manager = get_callback_manager_for_config(config)
run_manager = callback_manager.on_chain_start( run_manager = callback_manager.on_chain_start(
dumpd(self), None,
input, input,
name=config.get("run_name", self.get_name()), name=config.get("run_name", self.get_name()),
run_id=config.get("run_id"), run_id=config.get("run_id"),

View File

@ -18,7 +18,6 @@ from langchain_core.callbacks import (
CallbackManagerForChainRun, CallbackManagerForChainRun,
Callbacks, Callbacks,
) )
from langchain_core.load.dump import dumpd
from langchain_core.memory import BaseMemory from langchain_core.memory import BaseMemory
from langchain_core.outputs import RunInfo from langchain_core.outputs import RunInfo
from langchain_core.pydantic_v1 import BaseModel, Field, root_validator, validator from langchain_core.pydantic_v1 import BaseModel, Field, root_validator, validator
@ -143,7 +142,7 @@ class Chain(RunnableSerializable[Dict[str, Any], Dict[str, Any]], ABC):
new_arg_supported = inspect.signature(self._call).parameters.get("run_manager") new_arg_supported = inspect.signature(self._call).parameters.get("run_manager")
run_manager = callback_manager.on_chain_start( run_manager = callback_manager.on_chain_start(
dumpd(self), None,
inputs, inputs,
run_id, run_id,
name=run_name, name=run_name,
@ -195,7 +194,7 @@ class Chain(RunnableSerializable[Dict[str, Any], Dict[str, Any]], ABC):
) )
new_arg_supported = inspect.signature(self._acall).parameters.get("run_manager") new_arg_supported = inspect.signature(self._acall).parameters.get("run_manager")
run_manager = await callback_manager.on_chain_start( run_manager = await callback_manager.on_chain_start(
dumpd(self), None,
inputs, inputs,
run_id, run_id,
name=run_name, name=run_name,

View File

@ -17,7 +17,6 @@ from langchain_core.language_models import (
BaseLanguageModel, BaseLanguageModel,
LanguageModelInput, LanguageModelInput,
) )
from langchain_core.load.dump import dumpd
from langchain_core.messages import BaseMessage from langchain_core.messages import BaseMessage
from langchain_core.output_parsers import BaseLLMOutputParser, StrOutputParser from langchain_core.output_parsers import BaseLLMOutputParser, StrOutputParser
from langchain_core.outputs import ChatGeneration, Generation, LLMResult from langchain_core.outputs import ChatGeneration, Generation, LLMResult
@ -240,7 +239,7 @@ class LLMChain(Chain):
callbacks, self.callbacks, self.verbose callbacks, self.callbacks, self.verbose
) )
run_manager = callback_manager.on_chain_start( run_manager = callback_manager.on_chain_start(
dumpd(self), None,
{"input_list": input_list}, {"input_list": input_list},
) )
try: try:
@ -260,7 +259,7 @@ class LLMChain(Chain):
callbacks, self.callbacks, self.verbose callbacks, self.callbacks, self.verbose
) )
run_manager = await callback_manager.on_chain_start( run_manager = await callback_manager.on_chain_start(
dumpd(self), None,
{"input_list": input_list}, {"input_list": input_list},
) )
try: try:

View File

@ -24,7 +24,6 @@ from langchain_core.callbacks import (
CallbackManagerForRetrieverRun, CallbackManagerForRetrieverRun,
) )
from langchain_core.documents import Document from langchain_core.documents import Document
from langchain_core.load.dump import dumpd
from langchain_core.pydantic_v1 import root_validator from langchain_core.pydantic_v1 import root_validator
from langchain_core.retrievers import BaseRetriever, RetrieverLike from langchain_core.retrievers import BaseRetriever, RetrieverLike
from langchain_core.runnables import RunnableConfig from langchain_core.runnables import RunnableConfig
@ -106,9 +105,9 @@ class EnsembleRetriever(BaseRetriever):
local_metadata=self.metadata, local_metadata=self.metadata,
) )
run_manager = callback_manager.on_retriever_start( run_manager = callback_manager.on_retriever_start(
dumpd(self), None,
input, input,
name=config.get("run_name"), name=config.get("run_name") or self.get_name(),
**kwargs, **kwargs,
) )
try: try:
@ -139,9 +138,9 @@ class EnsembleRetriever(BaseRetriever):
local_metadata=self.metadata, local_metadata=self.metadata,
) )
run_manager = await callback_manager.on_retriever_start( run_manager = await callback_manager.on_retriever_start(
dumpd(self), None,
input, input,
name=config.get("run_name"), name=config.get("run_name") or self.get_name(),
**kwargs, **kwargs,
) )
try: try: