LangChain 装饰器是 LangChain 上层的一个封装,为编写自定义 LangChain 提示和链提供了语法糖 🍭。 如需反馈、问题、贡献,请在此处提出问题:ju-bezdek/langchain-decorators
主要原则和优点
- 更
pythonic的代码编写方式 - 编写多行提示,不会因为缩进而破坏代码流
- 利用 IDE 内置的提示、类型检查和带有文档的弹出窗口支持,快速查看函数以了解提示、它消耗的参数等。
- 利用 🦜🔗 LangChain 生态系统的所有强大功能
- 增加对可选参数的支持
- 通过将参数绑定到一个类,轻松地在提示之间共享参数
快速开始
安装
示例
一个好的开始方式是查看这里的示例定义其他参数
在这里,我们只是用llm_prompt装饰器将一个函数标记为一个提示,使其有效地成为一个 LLMChain。而不是运行它 标准的 LLMchain 需要比 inputs_variables 和 prompt 更多的初始化参数……这里的实现细节隐藏在装饰器中。下面是它的工作原理:- 使用全局设置
- 使用预定义的提示类型
- 直接在装饰器中定义设置
传递记忆和/或回调
要传递这些参数中的任何一个,只需在函数中声明它们(或使用 kwargs 传递任何内容)简化流式传输
如果我们想利用流式传输- 我们需要将提示定义为异步函数
- 在装饰器上打开流式传输,或者我们可以定义一个打开流式传输的 PromptType
- 使用 StreamingContext 捕获流
提示声明
默认情况下,提示是整个函数文档,除非你标记你的提示记录你的提示
我们可以通过指定带有<prompt>语言标签的代码块来指定文档的哪一部分是提示定义
人类消息
(我们使用的是 LLM(GPT 支持 system、assistant、user)强制执行的真实角色)输出解析器
- llm_prompt 装饰器根据输出类型原生尝试检测最佳输出解析器。(如果未设置,它将返回原始字符串)
- 列表、字典和 pydantic 输出也原生(自动)支持