Skip to main content
在 GitHub 上打开

Streamlit (流式)

Streamlit 是构建和共享数据应用程序的更快方式。Streamlit 可在几分钟内将数据脚本转换为可共享的 Web 应用程序。全部使用纯 Python。无需前端经验。 在 streamlit.io/generative-ai 中查看更多示例。

Open in GitHub Codespaces

在本指南中,我们将演示如何使用StreamlitCallbackHandler要在 交互式 Streamlit 应用程序。使用 MRKL 代理,通过下面正在运行的应用程序进行试用:

安装和设置

pip install langchain streamlit

您可以运行streamlit hello加载示例应用程序并验证您的安装是否成功。请参阅 Streamlit 的入门文档中的完整说明。

展示想法和行动

要创建StreamlitCallbackHandler,则只需提供父容器来呈现输出。

from langchain_community.callbacks.streamlit import (
StreamlitCallbackHandler,
)
import streamlit as st

st_callback = StreamlitCallbackHandler(st.container())

API 参考中介绍了用于自定义显示行为的其他关键字参数。

方案 1:将代理与工具结合使用

目前支持的主要使用案例是使用工具可视化代理(或 Agent Executor)的作。您可以创建一个 agent 并简单地将StreamlitCallbackHandleragent.run()为了可视化 思想和行动存在于您的应用程序中。

import streamlit as st
from langchain import hub
from langchain.agents import AgentExecutor, create_react_agent, load_tools
from langchain_openai import OpenAI

llm = OpenAI(temperature=0, streaming=True)
tools = load_tools(["ddg-search"])
prompt = hub.pull("hwchase17/react")
agent = create_react_agent(llm, tools, prompt)
agent_executor = AgentExecutor(agent=agent, tools=tools, verbose=True)

if prompt := st.chat_input():
st.chat_message("user").write(prompt)
with st.chat_message("assistant"):
st_callback = StreamlitCallbackHandler(st.container())
response = agent_executor.invoke(
{"input": prompt}, {"callbacks": [st_callback]}
)
st.write(response["output"])

注意:您需要设置OPENAI_API_KEY才能成功运行上述应用代码。 最简单的方法是通过 Streamlit secrets.toml, 或任何其他本地 ENV 管理工具。

其他方案

现在StreamlitCallbackHandler适合与 LangChain Agent Executor 一起使用。支持其他代理类型, 直接与 Chains 一起使用,将来将添加 etc。

你可能还对使用 StreamlitChatMessageHistory for LangChain 感兴趣。