LangChain decorators 是建立在 LangChain 之上的一层,为编写自定义 LangChain 提示词和链提供语法糖 🍭
如需反馈、提交 Issue 或贡献代码,请在此处提交 Issue:
ju-bezdek/langchain-decorators
主要原则与优势:
- 更符合
Python风格的代码编写方式 - 编写多行提示词时不会因缩进破坏代码流程
- 充分利用 IDE 内置的提示、类型检查和文档弹窗支持,快速查看函数中的提示词、参数等信息
- 充分发挥 🦜🔗 LangChain 生态系统的全部能力
- 支持可选参数
- 通过将参数绑定到同一个类,轻松在提示词之间共享参数
快速开始
安装
示例
建议从以下示例开始:定义其他参数
这里我们只是用llm_prompt 装饰器将函数标记为提示词,有效地将其转化为 LLMChain,而不是直接运行它。
标准 LLMChain 需要比 inputs_variables 和 prompt 更多的初始化参数……这里这些实现细节被隐藏在装饰器中。
工作原理如下:
- 使用全局设置:
- 使用预定义的提示词类型
- 直接在装饰器中定义设置
传递 memory 和/或 callbacks:
只需在函数中声明它们(或使用 kwargs 传递任何内容)简化流式传输
如果我们想利用流式传输:- 需要将提示词定义为异步函数
- 在装饰器上启用流式传输,或者定义启用了流式传输的 PromptType
- 使用 StreamingContext 捕获流
提示词声明
默认情况下,提示词是整个函数文档字符串,除非您标记了您的提示词。为提示词添加文档
我们可以通过使用<prompt> 语言标签标记代码块来指定文档的哪个部分是提示词定义:
输出解析器
llm_prompt装饰器会根据输出类型自动检测最佳输出解析器(如果未设置,则返回原始字符串)- 原生支持 list、dict 和 pydantic 输出(自动处理)

