Skip to main content
Streamlit은 데이터 앱을 빠르게 구축하고 공유할 수 있는 도구입니다. Streamlit은 데이터 스크립트를 몇 분 만에 공유 가능한 웹 앱으로 변환합니다. 순수 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)의 행동을 시각화하는 것입니다. Streamlit 앱에서 에이전트를 생성하고 agent.run()StreamlitCallbackHandler를 전달하기만 하면 앱에서 사고 과정과 행동을 실시간으로 시각화할 수 있습니다.
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이나 다른 로컬 환경 변수 관리 도구를 사용하는 것입니다.

추가 시나리오

현재 StreamlitCallbackHandler는 LangChain Agent Executor와 함께 사용하도록 설계되었습니다. 추가 에이전트 유형에 대한 지원, Chain과의 직접 사용 등은 향후 추가될 예정입니다.
Connect these docs programmatically to Claude, VSCode, and more via MCP for real-time answers.
I