目录
LangChain Experssion Language简介
LangChain Experssion Language示例大赏
Create a runnable with the `@chain` decorator:chain chain
Add fallbacks:出错了怎么回退
Stream custom generator functions:让答案变得流式一些
Inspect your runnables:chain长啥样
Add message history (memory):加入历史记录的chain chain
LangChain Experssion Language简介
哒哒,我又来了!首先继续介绍一下咱们明星产品Langchain的LangChain Experssion Language,简称LCEL,感觉就是为了节省代码量,让程序猿们更好地搭建基于大语言模型的应用,而在LangChain框架中整了新的语法来搭建prompt+LLM的chain。来,大家直接看官网链接:LangChain Expression Language (LCEL) | 🦜️🔗 Langchain。
本文的例子主要来自官网给出的How to示例(How to | 🦜️🔗 Langchain)。就是我现在没工作在家自己学习一下,毕竟也是做NLP的。然后就自己理解看一遍代码,如果有问题的话欢迎来评论。本文是二,有二必然有一,但是未必有三。为了让大家不会觉得看不下去,是的,我分了两篇文章《LangChain Experssion Language之How to(一)》和《LangChain Experssion Language之How to(二)》。下面来简单看看这篇文章里的示例吧。
LangChain Experssion Language示例大赏
Create a runnable with the `@chain` decorator:chain chain
可以利用chain定义你的chain
@chain
def custom_chain(text):prompt_val1 = prompt1.invoke({"topic": text})output1 = ChatOpenAI().invoke(prompt_val1)parsed_output1 = StrOutputParser().invoke(output1)chain2 = prompt2 | ChatOpenAI() | StrOutputParser()return chain2.invoke({"joke": parsed_output1})
Add fallbacks:出错了怎么回退
由于LLM可能会出现API错误,因此这一节示例就是告诉你发生错误的时候怎么回退。
因为API的调用限制报错,比如openai_llm有问题,利用with_fallbacks回退到anthropic_llm。
from unittest.mock import patchimport httpx
from openai import RateLimitErrorreq