Giter Club home page Giter Club logo

llama2-chatbot-fast's Introduction

LLaMA 2 Chatbot App ⚡

Open in GitHub Codespaces

🤔 What is this?

This is an experimental Streamlit chatbot app built for LLaMA2 (or any other LLM). The app includes session chat history and provides an option to select multiple LLaMA2 API endpoints on Replicate.

Live demo: LLaMA2.ai

For the LLaMA2 license agreement, please check the Meta Platforms, Inc official license documentation on their website. More info.

llama2 demo

Features

  • Chat history is maintained for each session (if you refresh, chat history clears)
  • Option to select between different LLaMA2 chat API endpoints (7B, 13B or 70B). The default is 70B.
  • Configure model hyperparameters from the sidebar (Temperature, Top P, Max Sequence Length).
  • Includes "User:" and "Assistant:" prompts for the chat conversation.
  • Each model (7B, 13B & 70B) runs on Replicate - (7B and 13B run on one A100 40Gb, and 70B runs on one A100 80Gb).
  • Docker image included to deploy this app in Fly.io

Installation

  • Clone the repository
  • [Optional] Create a virtual python environment with the command python -m venv .venv and activate it with source .venv/bin/activate
  • Install dependencies with pip install -r requirements.txt
  • Create an account on Replicate
  • Create an account on Auth0 (free) and configure your application
    • Create a Single Page Application
    • Navigate to the Settings tab for that application
    • If you are running the app locally: set Allowed Web Origins to http://localhost:8501 and set Allowed Callback URLs to http://localhost:8501/component/auth0_component.login_button/index.html
    • To run on a remote server: set Allowed Web Origins to https://<your_domain> and set Allowed Callback URLs to http://<your_domain>/component/auth0_component.login_button/index.html
    • Copy Client ID and Domain to use in the next step
  • Make your own .env file with the command cp .env_template .env. Then edit the .env file and add your:
  • Run the app with streamlit run llama2_chatbot.py
  • Dockerfile included to deploy this app in Fly.io

(Note: if you are using a Mac, you may need to use the command python3 instead of python and pip3 instead of pip)

Usage

  • Start the chatbot by selecting an API endpoint from the sidebar.
  • Configure model hyperparameters from the sidebar.
  • Type your question in the input field at the bottom of the app and press enter.

Deploying on fly.io

  1. First you should install flyctl and login from command line
  2. fly launch -> this will generate a fly.toml for you automatically
  3. fly deploy --dockerfile Dockerfile --> this will automatically package up the repo and deploy it on fly. If you have a free account, you can use --ha=false flag to only spin up one instance
  4. Go to your deployed fly app dashboard, click on Secrets from the left hand side nav, and click on Use the Web CLI to manage your secrets without leaving your browser. Once you are on your app's web CLI, export all secrets needed. i.e export REPLICATE_API_TOKEN=your_replicate_token. Refer to .env.example file for necessary secrets.

Authors

Version

0.9.0 (Experimental) - July 2023

Contributing

This project is under development. Contributions are welcome!

License

  • Web chatbot license (this repo): Apache 2.0
  • For the LLaMA models license, please refer to the License Agreement from Meta Platforms, Inc.

Acknowledgements

  • Special thanks to the team at Meta AI, Replicate, a16z-infra and the entire open-source community.

Disclaimer

This is an experimental version of the app. Use at your own risk. While the app has been tested, the authors hold no liability for any kind of losses arising out of using this application.

UI Configuration

The app has been styled and configured for a cleaner look. Main menu and footer visibility have been hidden. Feel free to modify this to your custom application.

Resources

llama2-chatbot-fast's People

Contributors

atoonk avatar mascobot avatar matt-bornstein avatar rajko-rad avatar sfc-gh-jcarroll avatar ykhli avatar zeke avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.