Joshua Sundance Bailey
typo
917e947
|
raw
history blame
4.68 kB
metadata
title: langchain-streamlit-demo
emoji: 🦜
colorFrom: green
colorTo: red
sdk: docker
app_port: 7860
pinned: true
tags:
  - langchain
  - streamlit
  - docker

langchain-streamlit-demo

License: MIT python security: bandit Ruff Code style: black pre-commit Checked with mypy

Docker Docker Image Size (tag) Open HuggingFace Space

This project shows how to build a simple chatbot UI with Streamlit and LangChain.

This README was 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
  • 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

Code Overview

  • langchain-streamlit-demo/app.py - Main Streamlit app definition
  • langchain-streamlit-demo/llm_stuff.py - LangChain helper functions
  • Dockerfile, docker-compose.yml: Docker deployment
  • kubernetes/: Kubernetes deployment files
  • .github/workflows/: CI/CD workflows

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

Open HuggingFace Space

With Docker (pull from Docker Hub)

  1. Optional: Create a .env file based on .env-example
  2. 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

  1. Open http://localhost:7860 in your browser

Docker Compose (build locally)

  1. Clone the repo. Navigate to cloned repo directory
  2. Optional: Create a .env file based on .env-example
  3. Run in terminal:

docker compose up

or

docker compose up --env-file .env

  1. Open http://localhost:7860 in your browser

Kubernetes

  1. Clone the repo. Navigate to cloned repo directory
  2. Create a .env file based on .env-example
  3. Run bash script: /bin/bash ./kubernetes/deploy.sh
  4. Get the IP address for your new service: kubectl get service langchain-streamlit-demo

Links