metadata
title: langchain-streamlit-demo
emoji: 🦜
colorFrom: green
colorTo: red
sdk: docker
app_port: 7860
pinned: true
tags:
- langchain
- streamlit
- docker
langchain-streamlit-demo
This project shows how to build a simple chatbot UI with Streamlit and LangChain.
This README
was originally written by Claude 2, an LLM from Anthropic.
Features
- Chat interface for talking to AI assistant
- Supports models from
- OpenAI
gpt-3.5-turbo
gpt-4
- Anthropic
claude-instant-v1
claude-2
- Anyscale Endpoints
meta-llama/Llama-2-7b-chat-hf
meta-llama/Llama-2-13b-chat-hf
meta-llama/Llama-2-70b-chat-hf
codellama/CodeLlama-34b-Instruct-hf
mistralai/Mistral-7B-Instruct-v0.1
- Azure OpenAI Service
[configurable]
- OpenAI
- Streaming output of assistant responses
- Leverages LangChain for dialogue and memory management
- Integrates with LangSmith for tracing conversations
- Allows giving feedback on assistant's responses
- Tries reading API keys and default values from environment variables
- Parameters in sidebar can be customized
- Includes various forms of document chat
- Question/Answer Pair Generation
- Summarization
- Standard retrieval chains
Deployment
langchain-streamlit-demo
is deployed as a Docker image based on the python:3.11-slim-bookworm
image.
CI/CD workflows in .github/workflows
handle building and publishing the image as well as pushing it to Hugging Face.
Run on HuggingFace Spaces
With Docker (pull from Docker Hub)
- Optional: Create a
.env
file based on.env-example
- Run in terminal:
docker run -p 7860:7860 joshuasundance/langchain-streamlit-demo:latest
or
docker run -p 7860:7860 --env-file .env joshuasundance/langchain-streamlit-demo:latest
- Open http://localhost:7860 in your browser
Docker Compose (build locally)
- Clone the repo. Navigate to cloned repo directory
- Optional: Create a
.env
file based on.env-example
- Run in terminal:
docker compose up
- Open http://localhost:7860 in your browser
Kubernetes
- Clone the repo. Navigate to cloned repo directory
- Create a
.env
file based on.env-example
- Run bash script:
/bin/bash ./kubernetes/deploy.sh
- Get the IP address for your new service:
kubectl get service langchain-streamlit-demo