This repository contains reference implementations of various LangChain agents as Streamlit apps including:
basic_streaming.py
: Simple streaming app withlangchain.chat_models.ChatOpenAI
(View the app)mrkl_demo.py
: An agent that replicates the MRKL demo (View the app)minimal_agent.py
: A minimal agent with search (requires settingOPENAI_API_KEY
env to run)search_and_chat.py
: A search-enabled chatbot that remembers chat history (View the app)chat_with_documents.py
: Chatbot capable of answering queries by referring custom documents (View the app)chat_with_sql_db.py
: Chatbot which can communicate with your database (View the app)chat_pandas_df.py
: Chatbot to ask questions about a pandas DF (View the app)
Apps feature LangChain 🤝 Streamlit integrations such as the Callback integration.
This project uses Poetry for dependency management.
# Create Python environment
$ poetry install
# Install git pre-commit hooks
$ poetry shell
$ pre-commit install
# Run mrkl_demo.py or another app the same way
$ streamlit run streamlit_agent/mrkl_demo.py
This project includes Dockerfile
to run the app in Docker container. In order to optimise the Docker Image is optimised for size and building time with cache techniques.
To generate Image with DOCKER_BUILDKIT
, follow below command
DOCKER_BUILDKIT=1 docker build --target=runtime . -t langchain-streamlit-agent:latest
- Run the docker container directly
docker run -d --name langchain-streamlit-agent -p 8051:8051 langchain-streamlit-agent:latest
- Run the docker container using docker-compose (Recommended)
Edit the Command in docker-compose
with target streamlit app
docker-compose up
We plan to add more agent and chain examples over time and improve the existing ones - PRs welcome! 🚀