pub struct StructuredOutputParser { /* private fields */ }Expand description
结构化输出解析器
将 LLM 输出的键值对格式(每行一个 key: value)解析为 HashMap。
适用于 LLM 以非 JSON 格式输出结构化信息的场景。
§格式
输入格式应为每行一个 key: value,例如:
姓名: 张三
年龄: 28
城市: 北京§示例
ⓘ
use langchainrust::output_parsers::StructuredOutputParser;
let parser = StructuredOutputParser::new();
let result = parser.parse("姓名: 张三\n年龄: 28").await?;
assert_eq!(result.get("姓名").unwrap(), "张三");Implementations§
Source§impl StructuredOutputParser
impl StructuredOutputParser
pub fn new() -> Self
Sourcepub fn with_separator(separator: char) -> Self
pub fn with_separator(separator: char) -> Self
使用自定义分隔符创建解析器
Trait Implementations§
Source§impl BaseOutputParser<HashMap<String, String>> for StructuredOutputParser
impl BaseOutputParser<HashMap<String, String>> for StructuredOutputParser
Source§fn parse<'life0, 'life1, 'async_trait>(
&'life0 self,
text: &'life1 str,
) -> Pin<Box<dyn Future<Output = OutputParserResult<HashMap<String, String>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn parse<'life0, 'life1, 'async_trait>(
&'life0 self,
text: &'life1 str,
) -> Pin<Box<dyn Future<Output = OutputParserResult<HashMap<String, String>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
将原始 LLM 输出文本解析为目标类型
Source§fn get_format_instructions(&self) -> String
fn get_format_instructions(&self) -> String
获取格式指令(用于提示 LLM 按指定格式输出)
Source§fn parse_with_retry<'life0, 'life1, 'async_trait>(
&'life0 self,
text: &'life1 str,
_max_retries: usize,
) -> Pin<Box<dyn Future<Output = OutputParserResult<Output>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
fn parse_with_retry<'life0, 'life1, 'async_trait>(
&'life0 self,
text: &'life1 str,
_max_retries: usize,
) -> Pin<Box<dyn Future<Output = OutputParserResult<Output>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
带重试的解析(默认实现:不重试)
Source§impl Default for StructuredOutputParser
impl Default for StructuredOutputParser
Source§impl Runnable<String, HashMap<String, String>> for StructuredOutputParser
impl Runnable<String, HashMap<String, String>> for StructuredOutputParser
Source§type Error = OutputParserError
type Error = OutputParserError
Error type.
Source§fn invoke<'life0, 'async_trait>(
&'life0 self,
input: String,
_config: Option<RunnableConfig>,
) -> Pin<Box<dyn Future<Output = Result<HashMap<String, String>, Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn invoke<'life0, 'async_trait>(
&'life0 self,
input: String,
_config: Option<RunnableConfig>,
) -> Pin<Box<dyn Future<Output = Result<HashMap<String, String>, Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Transforms single input to output. Read more
Source§fn stream<'life0, 'async_trait>(
&'life0 self,
input: String,
_config: Option<RunnableConfig>,
) -> Pin<Box<dyn Future<Output = Result<Pin<Box<dyn Stream<Item = Result<HashMap<String, String>, Self::Error>> + Send>>, Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn stream<'life0, 'async_trait>(
&'life0 self,
input: String,
_config: Option<RunnableConfig>,
) -> Pin<Box<dyn Future<Output = Result<Pin<Box<dyn Stream<Item = Result<HashMap<String, String>, Self::Error>> + Send>>, Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Streaming output - for real-time responses (LLM, etc). Read more
Source§fn batch<'life0, 'async_trait>(
&'life0 self,
inputs: Vec<Input>,
config: Option<RunnableConfig>,
) -> Pin<Box<dyn Future<Output = Result<Vec<Output>, Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
fn batch<'life0, 'async_trait>(
&'life0 self,
inputs: Vec<Input>,
config: Option<RunnableConfig>,
) -> Pin<Box<dyn Future<Output = Result<Vec<Output>, Self::Error>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
Batch processing - transforms multiple inputs to outputs. Read more
Auto Trait Implementations§
impl Freeze for StructuredOutputParser
impl RefUnwindSafe for StructuredOutputParser
impl Send for StructuredOutputParser
impl Sync for StructuredOutputParser
impl Unpin for StructuredOutputParser
impl UnsafeUnpin for StructuredOutputParser
impl UnwindSafe for StructuredOutputParser
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more