diff --git a/libs/core/langchain_core/runnables/base.py b/libs/core/langchain_core/runnables/base.py index d4019d10d8a..5438dd7f04e 100644 --- a/libs/core/langchain_core/runnables/base.py +++ b/libs/core/langchain_core/runnables/base.py @@ -79,6 +79,7 @@ if TYPE_CHECKING: AsyncCallbackManagerForChainRun, CallbackManagerForChainRun, ) + from langchain_core.prompts.base import BasePromptTemplate from langchain_core.runnables.fallbacks import ( RunnableWithFallbacks as RunnableWithFallbacksT, ) @@ -394,6 +395,17 @@ class Runnable(Generic[Input, Output], ABC): graph.add_edge(runnable_node, output_node) return graph + def get_prompts( + self, config: Optional[RunnableConfig] = None + ) -> List[BasePromptTemplate]: + from langchain_core.prompts.base import BasePromptTemplate + + prompts = [] + for _, node in self.get_graph(config=config).nodes.items(): + if isinstance(node.data, BasePromptTemplate): + prompts.append(node.data) + return prompts + def __or__( self, other: Union[