forked from phoenix-oss/llama-stack-mirror
add keycloak auth to playground ui
This commit is contained in:
parent
ed31462499
commit
3bde47e562
5 changed files with 38 additions and 1 deletions
|
@ -48,3 +48,6 @@ uv run --with ".[ui]" streamlit run llama_stack/distribution/ui/app.py
|
||||||
| TOGETHER_API_KEY | API key for Together provider | (empty string) |
|
| TOGETHER_API_KEY | API key for Together provider | (empty string) |
|
||||||
| SAMBANOVA_API_KEY | API key for SambaNova provider | (empty string) |
|
| SAMBANOVA_API_KEY | API key for SambaNova provider | (empty string) |
|
||||||
| OPENAI_API_KEY | API key for OpenAI provider | (empty string) |
|
| OPENAI_API_KEY | API key for OpenAI provider | (empty string) |
|
||||||
|
| KEYCLOAK_URL | URL for keycloak authentication | (empty string) |
|
||||||
|
| KEYCLOAK_REALM | Keycloak realm | default |
|
||||||
|
| KEYCLOAK_CLIENT_ID | Client ID for keycloak auth | (empty string) |
|
|
@ -50,6 +50,36 @@ def main():
|
||||||
)
|
)
|
||||||
pg.run()
|
pg.run()
|
||||||
|
|
||||||
|
def main2():
|
||||||
|
from dataclasses import asdict
|
||||||
|
st.subheader(f"Welcome {keycloak.user_info['preferred_username']}!")
|
||||||
|
st.write(f"Here is your user information:")
|
||||||
|
st.write(asdict(keycloak))
|
||||||
|
|
||||||
|
def get_access_token() -> str|None:
|
||||||
|
return st.session_state.get('access_token')
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
main()
|
|
||||||
|
from streamlit_keycloak import login
|
||||||
|
import os
|
||||||
|
|
||||||
|
keycloak_url = os.environ.get("KEYCLOAK_URL")
|
||||||
|
keycloak_realm = os.environ.get("KEYCLOAK_REALM", "default")
|
||||||
|
keycloak_client_id = os.environ.get("KEYCLOAK_CLIENT_ID")
|
||||||
|
|
||||||
|
if keycloak_url and keycloak_client_id:
|
||||||
|
keycloak = login(
|
||||||
|
url=keycloak_url,
|
||||||
|
realm=keycloak_realm,
|
||||||
|
client_id=keycloak_client_id,
|
||||||
|
auto_refresh=True,
|
||||||
|
init_options={"checkLoginIframe": False},
|
||||||
|
)
|
||||||
|
|
||||||
|
if keycloak.authenticated:
|
||||||
|
st.session_state['access_token'] = keycloak.access_token
|
||||||
|
main()
|
||||||
|
# TBD - add other authentications
|
||||||
|
else:
|
||||||
|
main()
|
||||||
|
|
|
@ -7,11 +7,13 @@
|
||||||
import os
|
import os
|
||||||
|
|
||||||
from llama_stack_client import LlamaStackClient
|
from llama_stack_client import LlamaStackClient
|
||||||
|
from llama_stack.distribution.ui.app import get_access_token
|
||||||
|
|
||||||
|
|
||||||
class LlamaStackApi:
|
class LlamaStackApi:
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.client = LlamaStackClient(
|
self.client = LlamaStackClient(
|
||||||
|
api_key=get_access_token(),
|
||||||
base_url=os.environ.get("LLAMA_STACK_ENDPOINT", "http://localhost:8321"),
|
base_url=os.environ.get("LLAMA_STACK_ENDPOINT", "http://localhost:8321"),
|
||||||
provider_data={
|
provider_data={
|
||||||
"fireworks_api_key": os.environ.get("FIREWORKS_API_KEY", ""),
|
"fireworks_api_key": os.environ.get("FIREWORKS_API_KEY", ""),
|
||||||
|
|
|
@ -3,3 +3,4 @@ llama-stack-client>=0.2.1
|
||||||
pandas
|
pandas
|
||||||
streamlit
|
streamlit
|
||||||
streamlit-option-menu
|
streamlit-option-menu
|
||||||
|
streamlit-keycloak
|
||||||
|
|
|
@ -49,6 +49,7 @@ ui = [
|
||||||
"pandas",
|
"pandas",
|
||||||
"llama-stack-client>=0.2.9",
|
"llama-stack-client>=0.2.9",
|
||||||
"streamlit-option-menu",
|
"streamlit-option-menu",
|
||||||
|
"streamlit-keycloak",
|
||||||
]
|
]
|
||||||
|
|
||||||
[dependency-groups]
|
[dependency-groups]
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue