andreped's picture
Added CI table to README; hyperlinks to section titles
2c73924 unverified
|
raw
history blame
No virus
5.25 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.

Continuous integration

Build Type Status
HF Deploy Deploy
File size check Filesize
Linting Filesize

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.