pradeei commited on
Commit
f9a9244
·
verified ·
1 Parent(s): 37fa3f6

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +19 -54
app.py CHANGED
@@ -1,73 +1,40 @@
1
- # Import necessary libraries
2
-
3
  import streamlit as st
4
- import os
5
  from openai import OpenAI
6
- import json
7
- import utils
8
-
9
- DENVR_API_KEY = utils.DENVR_API_KEY
10
-
11
-
12
- working_dir = os.path.dirname(os.path.abspath(__file__))
13
- endpoint_data = json.load(open(f"{working_dir}/model_info.json"))
14
- xeon_endpoint_data = json.load(open(f"{working_dir}/model_info_xeon.json"))
15
-
16
  def clear_chat():
17
  st.session_state.messages = []
18
-
19
  st.title("Inference as a Service Playground")
20
-
21
- # Extract the keys (model names) from the JSON data
22
- model_names = list(endpoint_data.keys())
23
- xeon_model_names = list(xeon_endpoint_data.keys())
24
  endpoint = ""
25
  hardware_option = ""
26
-
 
 
 
27
  with st.sidebar:
28
- # Add radio buttons for "Gaudi" and "Xeon"
29
- option = st.radio("Select Hardware", ("Gaudi (Denvr)", "Xeon (AWS)"))
30
- hardware_option = option
31
- # Display corresponding model dropdowns based on the selected hardware
32
- if option == "Gaudi (Denvr)":
33
- modelname = st.selectbox("Select a LLM model (Hosted by DENVR DATAWORKS) runs on Gaudi", model_names)
34
- endpoint = endpoint_data[modelname]
35
- CLIENT_SECRET = os.getenv('CLIENT_SECRET')
36
- if DENVR_API_KEY == "" or utils.is_token_expired(DENVR_API_KEY, CLIENT_SECRET):
37
- DENVR_API_KEY = utils.generate_token(hardware_option)
38
- print(f"Gaudi Endpoint: {endpoint}")
39
- elif option == "Xeon (AWS)":
40
- modelname = st.selectbox("Select a LLM model that runs on Xeon", xeon_model_names)
41
- endpoint = xeon_endpoint_data[modelname]
42
- CLIENT_SECRET = os.getenv('XEON_CLIENT_SECRET')
43
- if DENVR_API_KEY == "" or utils.is_token_expired(DENVR_API_KEY, CLIENT_SECRET):
44
- DENVR_API_KEY = utils.generate_token(hardware_option)
45
- print(f"Xeon Endpoint: {endpoint}")
46
- # modelname = st.selectbox("Select a LLM model (Hosted by DENVR DATAWORKS) ", model_names)
47
- st.write(f"You selected: {modelname}")
48
  st.button("Start New Chat", on_click=clear_chat)
49
-
50
- api_key = DENVR_API_KEY
51
- base_url = endpoint
 
 
 
52
  client = OpenAI(api_key=api_key, base_url=base_url)
53
-
54
- # Extract the model name
55
- models = client.models.list()
56
- modelname = models.data[0].id
57
-
58
-
59
  if "messages" not in st.session_state:
60
  st.session_state.messages = []
61
-
62
  for message in st.session_state.messages:
63
  with st.chat_message(message["role"]):
64
  st.markdown(message["content"])
65
-
66
  if prompt := st.chat_input("What is up?"):
67
  st.session_state.messages.append({"role": "user", "content": prompt})
68
  with st.chat_message("user"):
69
  st.markdown(prompt)
70
-
71
  with st.chat_message("assistant"):
72
  stream = client.chat.completions.create(
73
  model=modelname,
@@ -79,6 +46,4 @@ if prompt := st.chat_input("What is up?"):
79
  stream=True,
80
  )
81
  response = st.write_stream(stream)
82
- st.session_state.messages.append({"role": "assistant", "content": response})
83
-
84
-
 
 
 
1
  import streamlit as st
 
2
  from openai import OpenAI
3
+
 
 
 
 
 
 
 
 
 
4
  def clear_chat():
5
  st.session_state.messages = []
6
+
7
  st.title("Inference as a Service Playground")
8
+
 
 
 
9
  endpoint = ""
10
  hardware_option = ""
11
+ api_key = ""
12
+ base_url = ""
13
+ modelname = ""
14
+
15
  with st.sidebar:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
16
  st.button("Start New Chat", on_click=clear_chat)
17
+
18
+ # Input fields for API key and base URL
19
+ api_key = st.text_input("API Key", type="password")
20
+ base_url = st.text_input("Base URL")
21
+ model_name = st.text_input("Model Id")
22
+
23
  client = OpenAI(api_key=api_key, base_url=base_url)
24
+
25
+
 
 
 
 
26
  if "messages" not in st.session_state:
27
  st.session_state.messages = []
28
+
29
  for message in st.session_state.messages:
30
  with st.chat_message(message["role"]):
31
  st.markdown(message["content"])
32
+
33
  if prompt := st.chat_input("What is up?"):
34
  st.session_state.messages.append({"role": "user", "content": prompt})
35
  with st.chat_message("user"):
36
  st.markdown(prompt)
37
+
38
  with st.chat_message("assistant"):
39
  stream = client.chat.completions.create(
40
  model=modelname,
 
46
  stream=True,
47
  )
48
  response = st.write_stream(stream)
49
+ st.session_state.messages.append({"role": "assistant", "content": response})