pub struct LLMRouterChain { /* private fields */ }Expand description
LLM Router Chain
Uses an LLM to intelligently determine the routing destination.
Implementations§
Source§impl LLMRouterChain
impl LLMRouterChain
Sourcepub fn new<L>(llm: L) -> Self
pub fn new<L>(llm: L) -> Self
Create a new empty LLMRouterChain with the given LLM.
Sourcepub fn add_route(
self,
name: impl Into<String>,
description: impl Into<String>,
chain: Arc<dyn BaseChain>,
) -> Self
pub fn add_route( self, name: impl Into<String>, description: impl Into<String>, chain: Arc<dyn BaseChain>, ) -> Self
Add a route destination.
Sourcepub fn add_route_with_keywords(
self,
name: impl Into<String>,
description: impl Into<String>,
chain: Arc<dyn BaseChain>,
keywords: Vec<&str>,
) -> Self
pub fn add_route_with_keywords( self, name: impl Into<String>, description: impl Into<String>, chain: Arc<dyn BaseChain>, keywords: Vec<&str>, ) -> Self
Add a route destination with a keyword list for keyword-based routing.
Sourcepub fn with_default(self, chain: Arc<dyn BaseChain>) -> Self
pub fn with_default(self, chain: Arc<dyn BaseChain>) -> Self
Set the default chain used when no route matches.
Sourcepub fn with_input_key(self, key: impl Into<String>) -> Self
pub fn with_input_key(self, key: impl Into<String>) -> Self
Set the input key.
Sourcepub fn with_verbose(self, verbose: bool) -> Self
pub fn with_verbose(self, verbose: bool) -> Self
Set verbose mode.
Sourcepub fn destinations(&self) -> &[RouteDestination]
pub fn destinations(&self) -> &[RouteDestination]
Get the route destinations.
Sourcepub fn default_chain(&self) -> Option<&Arc<dyn BaseChain>>
pub fn default_chain(&self) -> Option<&Arc<dyn BaseChain>>
Get the default chain, if set.
Trait Implementations§
Source§impl BaseChain for LLMRouterChain
impl BaseChain for LLMRouterChain
Source§fn invoke_with_config<'life0, 'async_trait>(
&'life0 self,
inputs: HashMap<String, Value>,
config: Option<RunnableConfig>,
) -> Pin<Box<dyn Future<Output = Result<ChainResult, ChainError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn invoke_with_config<'life0, 'async_trait>(
&'life0 self,
inputs: HashMap<String, Value>,
config: Option<RunnableConfig>,
) -> Pin<Box<dyn Future<Output = Result<ChainResult, ChainError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Execute the Chain with config propagation.
Dispatches this chain’s on_chain_start/on_chain_end, threads
config into the routing LLM call, and into the routed destination
chain via invoke_with_config.
Source§fn stream<'life0, 'async_trait>(
&'life0 self,
inputs: HashMap<String, Value>,
) -> Pin<Box<dyn Future<Output = Result<ChainStream, ChainError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn stream<'life0, 'async_trait>(
&'life0 self,
inputs: HashMap<String, Value>,
) -> Pin<Box<dyn Future<Output = Result<ChainStream, ChainError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Stream execution for LLMRouterChain.
The routing LLM call must complete first (to determine the destination),
then delegates to the selected chain’s stream() method.
Source§fn stream_with_config<'life0, 'async_trait>(
&'life0 self,
inputs: HashMap<String, Value>,
config: Option<RunnableConfig>,
) -> Pin<Box<dyn Future<Output = Result<ChainStream, ChainError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn stream_with_config<'life0, 'async_trait>(
&'life0 self,
inputs: HashMap<String, Value>,
config: Option<RunnableConfig>,
) -> Pin<Box<dyn Future<Output = Result<ChainStream, ChainError>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Stream execute the Chain with config propagation.