跳到主要内容
Streamlit 是一种更快地构建和共享数据应用的方式。Streamlit 可以在几分钟内将数据脚本转换为可共享的 Web 应用。全部使用纯 Python。无需前端经验。在 streamlit.io/generative-ai 上查看更多示例。
在 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 与工具结合使用

目前主要支持的用例是可视化 Agent with Tools(或 Agent Executor)的操作。您可以在 Streamlit 应用中创建一个代理,然后简单地将 StreamlitCallbackHandler 传递给 agent.run(),以便在您的应用中实时可视化思考和操作。
import streamlit as st
from langchain_classic import hub
from langchain.agents import AgentExecutor, create_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_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 等的支援将在未来添加。
以编程方式连接这些文档到 Claude、VSCode 等,通过 MCP 获取实时答案。
© . This site is unofficial and not affiliated with LangChain, Inc.