andreped's picture
Added acknowledgements
afeec9a unverified
|
raw
history blame
4.03 kB
metadata
title: 'ChatBot: learn about André''s research through an AI assistant'
colorFrom: indigo
colorTo: indigo
sdk: streamlit
sdk_version: 1.27.2
app_port: 8501
emoji: 💬
pinned: false
license: mit
app_file: app.py

chatbot-streamlit-demo

License Streamlit App CI/CD

This application demonstrates how to setup a simple ChatBot with Azure OpenAI, llama-index, and Streamlit.

The final app is also deployed on both Streamlit and Hugging Face Spaces, as well as embedded into a personal website.

The ChatBot enables you to talk with your own data - in this case, to learn about André's research.

Demo

We have enabled live hosting through both Streamlit and Hugging Face spaces. Click on the respective badges below to access each:

Hugging Face Spaces

Screenshot 2023-10-24 at 13 44 15

Streamlit Streamlit App

Screenshot 2023-10-24 at 13 03 11

Development

If you wish to play around with the app locally, it requires that you provide OpenAI API key and all that fun stuff yourself.

These instructions were tested on a MacBook Pro with M2 chip running macOS 13.6 Ventura with Python 3.9.6.

  1. Setup virtual environment and install dependencies:
python3 -m venv venv/
source venv/bin/activate
pip install -r requirements.txt
  1. Create the secrets file at .streamlit/secrets.toml file and fill in the relevant info:
OPENAI_API_KEY = "3cc19a1c875749c18c5e5d5a45a08f90"
CHATGPT_MODEL = "<insert model name>"
OPENAI_API_BASE = "https://<insert-openai-service-name>.openai.azure.com"
OPENAI_API_VERSION = "<insert version>"
ENGINE = "<insert deployment model name>"
ENGINE_EMBEDDING = "<insert deployment embedding name>"
  1. Launch the app:
streamlit run app.py

A Streamlit browser window should automatically open. If not, the app can be accessed at http://localhost:8501

Disclaimer

Only public PDFs were used for this demonstration. Some of André's research is sadly behind a paywall and thus we have chosen not to include the PDFs in this demo to avoid copyright issues.

Acknowledgements

I wish to thank Sopra Steria for giving me the chance to develop this web application on internal time. I also want to thank OpenAI, Microsoft Azure, and the developers of llama-index, Streamlit, and HuggingFace for making such great tools to make applications in.

License

The code in this repository is released under MIT license.