forked from phoenix-oss/llama-stack-mirror
85 lines
2.5 KiB
Python
85 lines
2.5 KiB
Python
# Copyright (c) Meta Platforms, Inc. and affiliates.
|
|
# All rights reserved.
|
|
#
|
|
# This source code is licensed under the terms described in the LICENSE file in
|
|
# the root directory of this source tree.
|
|
import streamlit as st
|
|
|
|
|
|
def main():
|
|
# Evaluation pages
|
|
application_evaluation_page = st.Page(
|
|
"page/evaluations/app_eval.py",
|
|
title="Evaluations (Scoring)",
|
|
icon="📊",
|
|
default=False,
|
|
)
|
|
native_evaluation_page = st.Page(
|
|
"page/evaluations/native_eval.py",
|
|
title="Evaluations (Generation + Scoring)",
|
|
icon="📊",
|
|
default=False,
|
|
)
|
|
|
|
# Playground pages
|
|
chat_page = st.Page("page/playground/chat.py", title="Chat", icon="💬", default=True)
|
|
rag_page = st.Page("page/playground/rag.py", title="RAG", icon="💬", default=False)
|
|
tool_page = st.Page("page/playground/tools.py", title="Tools", icon="🛠", default=False)
|
|
|
|
# Distribution pages
|
|
resources_page = st.Page("page/distribution/resources.py", title="Resources", icon="🔍", default=False)
|
|
provider_page = st.Page(
|
|
"page/distribution/providers.py",
|
|
title="API Providers",
|
|
icon="🔍",
|
|
default=False,
|
|
)
|
|
|
|
pg = st.navigation(
|
|
{
|
|
"Playground": [
|
|
chat_page,
|
|
rag_page,
|
|
tool_page,
|
|
application_evaluation_page,
|
|
native_evaluation_page,
|
|
],
|
|
"Inspect": [provider_page, resources_page],
|
|
},
|
|
expanded=False,
|
|
)
|
|
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__":
|
|
|
|
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()
|