Update app.py
Browse files
app.py
CHANGED
@@ -23,46 +23,62 @@ import hashlib
|
|
23 |
|
24 |
load_dotenv()
|
25 |
|
26 |
-
def
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
33 |
else:
|
34 |
-
st.
|
|
|
|
|
|
|
|
|
35 |
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
)
|
56 |
-
|
57 |
-
openai_client = OpenAI(
|
58 |
-
api_key=os.getenv('OPENAI_API_KEY')
|
59 |
-
)
|
60 |
-
|
61 |
-
anthropic_client = Anthropic(
|
62 |
-
api_key=os.getenv('ANTHROPIC_API_KEY')
|
63 |
-
)
|
64 |
-
|
65 |
-
genai.configure(api_key=os.environ["GEMINI_API_KEY"])
|
66 |
|
67 |
MAX_CONCURRENT_CALLS = 5
|
68 |
semaphore = threading.Semaphore(MAX_CONCURRENT_CALLS)
|
@@ -202,13 +218,21 @@ def process_evaluations_concurrently(questions, prompt_template, models_to_evalu
|
|
202 |
progress_callback(current_iteration, total_iterations)
|
203 |
|
204 |
return results
|
205 |
-
|
206 |
def main():
|
207 |
st.set_page_config(page_title="LLM Benchmarking in Healthcare", layout="wide")
|
208 |
|
209 |
-
if not
|
210 |
-
st.
|
|
|
|
|
|
|
211 |
st.title("LLM Benchmarking in Healthcare")
|
|
|
|
|
|
|
|
|
|
|
212 |
|
213 |
if 'all_results' not in st.session_state:
|
214 |
st.session_state.all_results = {}
|
|
|
23 |
|
24 |
load_dotenv()
|
25 |
|
26 |
+
def setup_api_clients():
|
27 |
+
with st.sidebar:
|
28 |
+
st.title("API Configuration")
|
29 |
+
|
30 |
+
use_stored = st.checkbox("Use stored API keys")
|
31 |
+
|
32 |
+
if use_stored:
|
33 |
+
username = st.text_input("Username")
|
34 |
+
password = st.text_input("Password", type="password")
|
35 |
+
|
36 |
+
if st.button("Verify Credentials"):
|
37 |
+
if (hmac.compare_digest(username, os.environ.get("STREAMLIT_USERNAME", "")) and
|
38 |
+
hmac.compare_digest(password, os.environ.get("STREAMLIT_PASSWORD", ""))):
|
39 |
+
st.session_state.togetherai_client = OpenAI(
|
40 |
+
api_key=os.getenv('TOGETHERAI_API_KEY'),
|
41 |
+
base_url="https://api.together.xyz/v1"
|
42 |
+
)
|
43 |
+
st.session_state.openai_client = OpenAI(
|
44 |
+
api_key=os.getenv('OPENAI_API_KEY')
|
45 |
+
)
|
46 |
+
st.session_state.anthropic_client = Anthropic(
|
47 |
+
api_key=os.getenv('ANTHROPIC_API_KEY')
|
48 |
+
)
|
49 |
+
genai.configure(api_key=os.environ["GEMINI_API_KEY"])
|
50 |
+
|
51 |
+
st.session_state.api_configured = True
|
52 |
+
st.success("Successfully configured API clients with stored keys!")
|
53 |
+
else:
|
54 |
+
st.error("Invalid credentials. Please try again or use your own API keys.")
|
55 |
+
st.session_state.api_configured = False
|
56 |
else:
|
57 |
+
st.subheader("Enter Your API Keys")
|
58 |
+
togetherai_key = st.text_input("Together AI API Key", type="password", key="togetherai_key")
|
59 |
+
openai_key = st.text_input("OpenAI API Key", type="password", key="openai_key")
|
60 |
+
anthropic_key = st.text_input("Anthropic API Key", type="password", key="anthropic_key")
|
61 |
+
gemini_key = st.text_input("Gemini API Key", type="password", key="gemini_key")
|
62 |
|
63 |
+
if st.button("Initialize with provided keys"):
|
64 |
+
try:
|
65 |
+
st.session_state.togetherai_client = OpenAI(
|
66 |
+
api_key=togetherai_key,
|
67 |
+
base_url="https://api.together.xyz/v1"
|
68 |
+
)
|
69 |
+
st.session_state.openai_client = OpenAI(
|
70 |
+
api_key=openai_key
|
71 |
+
)
|
72 |
+
st.session_state.anthropic_client = Anthropic(
|
73 |
+
api_key=anthropic_key
|
74 |
+
)
|
75 |
+
genai.configure(api_key=gemini_key)
|
76 |
+
|
77 |
+
st.session_state.api_configured = True
|
78 |
+
st.success("Successfully configured API clients with provided keys!")
|
79 |
+
except Exception as e:
|
80 |
+
st.error(f"Error initializing API clients: {str(e)}")
|
81 |
+
st.session_state.api_configured = False
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
82 |
|
83 |
MAX_CONCURRENT_CALLS = 5
|
84 |
semaphore = threading.Semaphore(MAX_CONCURRENT_CALLS)
|
|
|
218 |
progress_callback(current_iteration, total_iterations)
|
219 |
|
220 |
return results
|
221 |
+
|
222 |
def main():
|
223 |
st.set_page_config(page_title="LLM Benchmarking in Healthcare", layout="wide")
|
224 |
|
225 |
+
if 'api_configured' not in st.session_state:
|
226 |
+
st.session_state.api_configured = False
|
227 |
+
|
228 |
+
setup_api_clients()
|
229 |
+
|
230 |
st.title("LLM Benchmarking in Healthcare")
|
231 |
+
|
232 |
+
if not st.session_state.api_configured:
|
233 |
+
st.warning("Please configure API keys in the sidebar to proceed")
|
234 |
+
st.stop()
|
235 |
+
|
236 |
|
237 |
if 'all_results' not in st.session_state:
|
238 |
st.session_state.all_results = {}
|