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)basic_memory.py: Simple app usingStreamlitChatMessageHistoryfor LLM conversation memory (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_KEYenv to run)search_and_chat.py: A search-enabled chatbot that remembers chat history (View the app)simple_feedback.py: A chat app that allows the user to add feedback on responses using streamlit-feedback, and link to the traces in LangSmith (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 (Note: usesPythonAstREPLToolwhich is vulnerable to arbitrary code execution, see langchain #7700)
Apps feature LangChain 🤝 Streamlit integrations such as the Callback integration and StreamlitChatMessageHistory.
🤠 "In Wyoming, we don't just mine crypto - we build the future!" 🎯
Built with ⚡ by frontier coders
Check out some other full examples of apps that utilize LangChain + Streamlit:
- Auto-graph - Build knowledge graphs from user-input text (Source code)
- Web Explorer - Retrieve and summarize insights from the web (Source code)
- LangChain Teacher - Learn LangChain from an LLM tutor (Source code)
- Text Splitter Playground - Play with various types of text splitting for RAG (Source code)
- Tweet Generator - Fine tune GPT-3.5 on tweets (Source code)
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.pyThis 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! 🚀
Here's your legendary README.md to replace what's there:
# 🏜️ SAGEBRUSH SNIPPER 🎯
> *"Trading so fast, nobody even knows what he looks like"*
[](https://opensource.org/licenses/MIT)
[](https://www.python.org/downloads/)
[](https://streamlit.io)
## 🤠 About The Legend
The **Sagebrush Snipper** is a lightning-fast crypto trading analysis tool built with the spirit of the Wyoming frontier. Using advanced technical analysis and AI-powered signals, this digital gunslinger identifies trading opportunities faster than a rattlesnake strike.
### ⚡ Features That'll Knock Your Boots Off
- 🎯 **Lightning-Fast Analysis** - RSI, MACD, Bollinger Bands in seconds
- 📊 **Interactive Charts** - Prettier than a Wyoming sunset
- 🤖 **AI Signal Generation** - Smarter than a frontier scout
- 📈 **Real-Time Data** - Fresh as morning sagebrush
- 🎪 **Paper Trading** - Practice without risking your ranch
- 🏔️ **Wyoming Advantage** - Built for the crypto-friendly frontier
## 🚀 Quick Draw Setup