litellm/ui/admin.py

40 lines
No EOL
1.9 KiB
Python

"""
Admin sets proxy url + allowed email subdomain
"""
import streamlit as st
import base64
# Replace your_base_url with the actual URL where the proxy auth app is hosted
your_base_url = 'http://localhost:8501' # Example base URL
# Function to encode the configuration
def encode_config(proxy_url, allowed_email_subdomain):
combined_string = f"proxy_url={proxy_url}&accepted_email_subdomain={allowed_email_subdomain}"
return base64.b64encode(combined_string.encode('utf-8')).decode('utf-8')
# Simple function to update config values
def update_config(proxy_url, allowed_email_subdomain):
st.session_state['proxy_url'] = proxy_url
st.session_state['allowed_email_subdomain'] = allowed_email_subdomain
st.session_state['user_auth_url'] = f"{your_base_url}/?page={encode_config(proxy_url=proxy_url, allowed_email_subdomain=allowed_email_subdomain)}"
def admin_page():
# Display the form for the admin to set the proxy URL and allowed email subdomain
st.header("Admin Configuration")
# Create a configuration placeholder
st.session_state.setdefault('proxy_url', 'http://example.com')
st.session_state.setdefault('allowed_email_subdomain', 'example.com')
st.session_state.setdefault('user_auth_url', 'NOT_GIVEN')
with st.form("config_form", clear_on_submit=False):
proxy_url = st.text_input("Set Proxy URL", st.session_state['proxy_url'])
allowed_email_subdomain = st.text_input("Set Allowed Email Subdomain", st.session_state['allowed_email_subdomain'])
submitted = st.form_submit_button("Save")
if submitted:
update_config(proxy_url=proxy_url, allowed_email_subdomain=allowed_email_subdomain)
# Display the current configuration
st.write(f"Current Proxy URL: {st.session_state['proxy_url']}")
st.write(f"Current Allowed Email Subdomain: {st.session_state['allowed_email_subdomain']}")
st.write(f"Current User Auth URL: {st.session_state['user_auth_url']}")