本文目录
  1. 20.1 Chain 的作用
  2. 20.2 RAG 中 Chain 的作用
  3. 二十一、OutputParser
  4. 21.1 为什么需要 OutputParser?
  5. 二十二、三种常见 OutputParser
  6. 22.1 StrOutputParser
  7. 22.2 JsonOutputParser
  8. 22.3 PydanticOutputParser
  9. 22.4 JsonOutputParser 与 PydanticOutputParser 区别

Chain 与 OutputParser

20.1 Chain 的作用

Chain 不是模型。

它负责:

将多个组件按照数据流连接起来。

例如:

chain = prompt | llm

表示:

Prompt输出

↓

LLM输入

20.2 RAG 中 Chain 的作用

未来 RAG:

用户问题

↓

Retriever

↓

Prompt

↓

LLM

↓

OutputParser

↓

答案

本质也是一条 Chain。


二十一、OutputParser

21.1 为什么需要 OutputParser?

模型返回内容:

  • 格式不稳定
  • 可能包含多余解释
  • 不一定符合程序要求

OutputParser 负责:

模型输出

↓

业务需要的数据格式

二十二、三种常见 OutputParser

22.1 StrOutputParser

作用:

AIMessage

↓

str

代码:

parser = StrOutputParser()

chain = prompt | llm | parser

最终:

result = "模型回答文本"

22.2 JsonOutputParser

作用:

AIMessage

↓

dict

适合:

  • 意图识别
  • 信息抽取
  • 工作流控制

22.3 PydanticOutputParser

作用:

AIMessage

↓

Pydantic对象

定义数据结构:

from pydantic import BaseModel


class User(BaseModel):
    name:str
    age:int

创建:

parser = PydanticOutputParser(
    pydantic_object=User
)

表示:

输出必须符合 User 格式。


22.4 JsonOutputParser 与 PydanticOutputParser 区别

Json:

保证是JSON

Pydantic:

保证字段存在
+
保证字段类型
+
生成强类型对象

企业项目更推荐严格结构化输出时使用 Pydantic。