- π¬ OpenAI Assistants API chat UI
- π οΈ It works easily by setting the ASSISTANT ID
- π Supports file upload and file download
- π Supports Streaming API
πͺ Support to Azure OpenAI- β» Cannot be used until Azure OpenAI Service supports Streaming API
-
π€ Create an assistant on the OpenAI site & Get assistant ID (https://platform.openai.com/assistants)
-
π Get the API key from OpenAI (https://platform.openai.com/api-keys)
-
β¬οΈ Clone the repository
$ git clone https://github.com/ryo-ma/gpt-assistants-api-ui.git
-
π¦ Install dependencies
$ poetry install
-
π Set environment variables
OPENAI_API_KEY="sk-xxx" ASSISTANT_ID="asst_xxx" ASSISTANT_TITLE="Assistants API UI" ENABLED_FILE_UPLOAD_MESSAGE="Upload a file" # Leave empty to disable AUTHENTICATION_REQUIRED="False" # Must change to True if you require authentication
If you use azure instead, set
AZURE_OPENAI_ENDPOINT
andAZURE_OPENAI_KEY
-
π Set Authentication configuration (optional)
To set up authentication, create a secrets file
.streamlit/secrets.toml
as below:[credentials] usernames = { jsmith = {failed_login_attempts = 0, logged_in = false, name = "John Smith", password = "abc"}, rbriggs = {failed_login_attempts = 0, logged_in = false, name = "R Briggs", password = "abc"}} [cookie] expiry_days = 30 key = "some_signature_key" # Must be string name = "some_cookie_name"
Reference: Deploying Streamlit-Authenticator via Streamlit Community Cloud
-
πβοΈ Run the app
$ poetry shell $ streamlit run app.py
-
π€ Create an assistant on the OpenAI site & Get assistant ID (https://platform.openai.com/assistants)
-
π Get the API key from OpenAI (https://platform.openai.com/api-keys)
-
β¬οΈ Clone the repository
$ git clone https://github.com/ryo-ma/gpt-assistants-api-ui.git
-
π Set environment variables
Create a .env file.
OPENAI_API_KEY="sk-xxx" ASSISTANT_ID="asst_xxx" ASSISTANT_TITLE="Assistants API UI" ENABLED_FILE_UPLOAD_MESSAGE="Upload a file" # Leave empty to disable AUTHENTICATION_REQUIRED="False" # Must change to True if you require authentication
If you use Azure instead, set
AZURE_OPENAI_ENDPOINT
andAZURE_OPENAI_KEY
-
π Set Authentication configuration (optional)
To set up authentication, create a secrets file
.streamlit/secrets.toml
as below:[credentials] usernames = { jsmith = {failed_login_attempts = 0, logged_in = false, name = "John Smith", password = "abc"}, rbriggs = {failed_login_attempts = 0, logged_in = false, name = "R Briggs", password = "abc"}} [cookie] expiry_days = 30 key = "some_signature_key" # Must be string name = "some_cookie_name"
Reference: Deploying Streamlit-Authenticator via Streamlit Community Cloud
-
π½ Build image
$ docker compose build
-
πβοΈ Run the app
$ docker compose up
Access to http://localhost:8501.
You can fork this repository and deploy the app to https://share.streamlit.io/. No need to run the app on your local machine.
Don't forget to choose 3.10 as the Python version and set environment variables in the "Advanced settings" during deployment.
To use authentication with Streamlit Cloud, please use this TOML format:
# Environment variables
OPENAI_API_KEY="sk-xxx"
ASSISTANT_ID="asst_xxx"
ASSISTANT_TITLE="Assistants API UI"
ENABLED_FILE_UPLOAD_MESSAGE="Upload a file" # Leave empty to disable
AUTHENTICATION_REQUIRED="True"
# Authentication secrets
[credentials]
usernames = { jsmith = {failed_login_attempts = 0, logged_in = false, name = "John Smith", password = "abc"}, rbriggs = {failed_login_attempts = 0, logged_in = false, name = "R Briggs", password = "abc"}}
[cookie]
expiry_days = 30
key = "some_signature_key" # Must be string
name = "some_cookie_name"