LangChain - Chain
概念
LangChain中链是一种将各个组件串联在一起,按顺序执行,前一个组件的输出作为下一个组件的输入。
这也是链式调用的核心价值:实现数据的自动化流转与组件的协同工作。调用形式
chain = prompt_template | model
核心前提:即Runnable子类对象才能入链(以及Callable、Mapping接口子类对象也可加入)。类的继承关系图如下:

chain链使用
执行过程:
- 通过
|链接提示词模板对象和模型对象 - 返回值chain对象是RunnableSerializable对象(是Runnable接口的直接子类)
- 通过invoke或stream进行阻塞执行或流式执行

注意事项
构建链的时候要注意整体兼容性,注意前后组件的输入和输出要求。
- 模型输入:PromptValue 或 字符串或序列(BaseMessage、list、tuple、str、dict)。
- 模型输出:AIMessage 提示词模板输入:要求是字典
- 提示词模板输出:PromptValue 对象
- StrOutputParser:AIMessage 输入、str输出
- JsonOutputParser:AIMessage 输入、dict输出

