Streamlit은 데이터 앱을 더 빠르게 구축하고 공유하는 방법입니다. Streamlit은 데이터 스크립트를 몇 분 만에 공유 가능한 웹 앱으로 변환합니다. 순수 Python만으로 가능합니다. 프론트엔드 경험이 필요하지 않습니다. streamlit.io/generative-ai에서 더 많은 예제를 확인하세요.
Open in GitHub Codespaces 이 가이드에서는 StreamlitCallbackHandler를 사용하여 대화형 Streamlit 앱에서 agent의 생각과 행동을 표시하는 방법을 보여드립니다. MRKL agent를 사용하는 아래 실행 중인 앱으로 직접 사용해보세요:

설치 및 설정

pip install langchain streamlit
streamlit hello를 실행하여 샘플 앱을 로드하고 설치가 성공적으로 완료되었는지 확인할 수 있습니다. Streamlit의 시작하기 문서에서 전체 지침을 확인하세요.

생각과 행동 표시하기

StreamlitCallbackHandler를 생성하려면 출력을 렌더링할 부모 container만 제공하면 됩니다.
from langchain_community.callbacks.streamlit import (
    StreamlitCallbackHandler,
)
import streamlit as st

st_callback = StreamlitCallbackHandler(st.container())
표시 동작을 사용자 정의하기 위한 추가 키워드 인수는 API reference에 설명되어 있습니다.

시나리오 1: Tool을 사용하는 Agent 사용하기

현재 주요 지원 사용 사례는 Tool을 사용하는 Agent(또는 Agent Executor)의 행동을 시각화하는 것입니다. Streamlit 앱에서 agent를 생성하고 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 또는 다른 로컬 ENV 관리 도구를 사용하는 것입니다.

추가 시나리오

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