Update app.py
Browse files
app.py
CHANGED
@@ -18,6 +18,130 @@ import sys
|
|
18 |
# Load environment variables
|
19 |
load_dotenv()
|
20 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
21 |
# Initialize session state if not already done
|
22 |
if 'conversation_history' not in st.session_state:
|
23 |
st.session_state.conversation_history = []
|
@@ -168,6 +292,38 @@ st.markdown("""
|
|
168 |
display: flex;
|
169 |
flex-wrap: wrap;
|
170 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
171 |
</style>
|
172 |
""", unsafe_allow_html=True)
|
173 |
|
@@ -198,13 +354,67 @@ with st.sidebar:
|
|
198 |
|
199 |
# Advanced Settings
|
200 |
st.markdown('<div class="sub-header">Advanced Settings</div>', unsafe_allow_html=True)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
201 |
model_option = st.selectbox(
|
202 |
'LLM Model',
|
203 |
-
|
204 |
index=0,
|
205 |
-
help="Select from available Groq models
|
206 |
)
|
207 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
208 |
search_depth = st.slider('Search Depth', min_value=1, max_value=8, value=5,
|
209 |
help="Higher values will search more thoroughly but take longer")
|
210 |
|
|
|
18 |
# Load environment variables
|
19 |
load_dotenv()
|
20 |
|
21 |
+
# Model rate limits information
|
22 |
+
MODEL_LIMITS = {
|
23 |
+
"allam-2-7b": {
|
24 |
+
"rpm": 30,
|
25 |
+
"rpd": 7000,
|
26 |
+
"tpm": 6000,
|
27 |
+
"tpd": "No limit"
|
28 |
+
},
|
29 |
+
"deepseek-r1-distill-llama-70b": {
|
30 |
+
"rpm": 30,
|
31 |
+
"rpd": 1000,
|
32 |
+
"tpm": 6000,
|
33 |
+
"tpd": "No limit"
|
34 |
+
},
|
35 |
+
"deepseek-r1-distill-qwen-32b": {
|
36 |
+
"rpm": 30,
|
37 |
+
"rpd": 1000,
|
38 |
+
"tpm": 6000,
|
39 |
+
"tpd": "No limit"
|
40 |
+
},
|
41 |
+
"gemma2-9b-it": {
|
42 |
+
"rpm": 30,
|
43 |
+
"rpd": 14400,
|
44 |
+
"tpm": 15000,
|
45 |
+
"tpd": 500000
|
46 |
+
},
|
47 |
+
"llama-3.1-8b-instant": {
|
48 |
+
"rpm": 30,
|
49 |
+
"rpd": 14400,
|
50 |
+
"tpm": 6000,
|
51 |
+
"tpd": 500000
|
52 |
+
},
|
53 |
+
"llama-3.2-11b-vision-preview": {
|
54 |
+
"rpm": 30,
|
55 |
+
"rpd": 7000,
|
56 |
+
"tpm": 7000,
|
57 |
+
"tpd": 500000
|
58 |
+
},
|
59 |
+
"llama-3.2-1b-preview": {
|
60 |
+
"rpm": 30,
|
61 |
+
"rpd": 7000,
|
62 |
+
"tpm": 7000,
|
63 |
+
"tpd": 500000
|
64 |
+
},
|
65 |
+
"llama-3.2-3b-preview": {
|
66 |
+
"rpm": 30,
|
67 |
+
"rpd": 7000,
|
68 |
+
"tpm": 7000,
|
69 |
+
"tpd": 500000
|
70 |
+
},
|
71 |
+
"llama-3.2-90b-vision-preview": {
|
72 |
+
"rpm": 15,
|
73 |
+
"rpd": 3500,
|
74 |
+
"tpm": 7000,
|
75 |
+
"tpd": 250000
|
76 |
+
},
|
77 |
+
"llama-3.3-70b-specdec": {
|
78 |
+
"rpm": 30,
|
79 |
+
"rpd": 1000,
|
80 |
+
"tpm": 6000,
|
81 |
+
"tpd": 100000
|
82 |
+
},
|
83 |
+
"llama-3.3-70b-versatile": {
|
84 |
+
"rpm": 30,
|
85 |
+
"rpd": 1000,
|
86 |
+
"tpm": 6000,
|
87 |
+
"tpd": 100000
|
88 |
+
},
|
89 |
+
"llama-guard-3-8b": {
|
90 |
+
"rpm": 30,
|
91 |
+
"rpd": 14400,
|
92 |
+
"tpm": 15000,
|
93 |
+
"tpd": 500000
|
94 |
+
},
|
95 |
+
"llama3-70b-8192": {
|
96 |
+
"rpm": 30,
|
97 |
+
"rpd": 14400,
|
98 |
+
"tpm": 6000,
|
99 |
+
"tpd": 500000
|
100 |
+
},
|
101 |
+
"llama3-8b-8192": {
|
102 |
+
"rpm": 30,
|
103 |
+
"rpd": 14400,
|
104 |
+
"tpm": 6000,
|
105 |
+
"tpd": 500000
|
106 |
+
},
|
107 |
+
"mistral-saba-24b": {
|
108 |
+
"rpm": 30,
|
109 |
+
"rpd": 1000,
|
110 |
+
"tpm": 6000,
|
111 |
+
"tpd": 500000
|
112 |
+
},
|
113 |
+
"qwen-2.5-32b": {
|
114 |
+
"rpm": 30,
|
115 |
+
"rpd": 1000,
|
116 |
+
"tpm": 6000,
|
117 |
+
"tpd": "No limit"
|
118 |
+
},
|
119 |
+
"qwen-2.5-coder-32b": {
|
120 |
+
"rpm": 30,
|
121 |
+
"rpd": 1000,
|
122 |
+
"tpm": 6000,
|
123 |
+
"tpd": "No limit"
|
124 |
+
},
|
125 |
+
"qwen-qwq-32b": {
|
126 |
+
"rpm": 30,
|
127 |
+
"rpd": 1000,
|
128 |
+
"tpm": 6000,
|
129 |
+
"tpd": "No limit"
|
130 |
+
},
|
131 |
+
"claude-3-5-sonnet-20240620": {
|
132 |
+
"rpm": 30,
|
133 |
+
"rpd": 14400,
|
134 |
+
"tpm": 15000,
|
135 |
+
"tpd": 500000
|
136 |
+
},
|
137 |
+
"mixtral-8x7b-32768": {
|
138 |
+
"rpm": 30,
|
139 |
+
"rpd": 14400,
|
140 |
+
"tpm": 15000,
|
141 |
+
"tpd": 500000
|
142 |
+
}
|
143 |
+
}
|
144 |
+
|
145 |
# Initialize session state if not already done
|
146 |
if 'conversation_history' not in st.session_state:
|
147 |
st.session_state.conversation_history = []
|
|
|
292 |
display: flex;
|
293 |
flex-wrap: wrap;
|
294 |
}
|
295 |
+
.model-limits-container {
|
296 |
+
background-color: #E8F5E9;
|
297 |
+
padding: 1rem;
|
298 |
+
border-radius: 5px;
|
299 |
+
margin-top: 0.5rem;
|
300 |
+
margin-bottom: 1rem;
|
301 |
+
}
|
302 |
+
.limit-pill {
|
303 |
+
display: inline-block;
|
304 |
+
margin: 0.2rem;
|
305 |
+
padding: 0.3rem 0.6rem;
|
306 |
+
background-color: #C8E6C9;
|
307 |
+
color: #2E7D32;
|
308 |
+
border-radius: 20px;
|
309 |
+
font-size: 0.8rem;
|
310 |
+
}
|
311 |
+
.limit-table {
|
312 |
+
width: 100%;
|
313 |
+
border-collapse: collapse;
|
314 |
+
margin-top: 0.5rem;
|
315 |
+
font-size: 0.9rem;
|
316 |
+
}
|
317 |
+
.limit-table th, .limit-table td {
|
318 |
+
padding: 0.4rem;
|
319 |
+
text-align: left;
|
320 |
+
border-bottom: 1px solid #E0E0E0;
|
321 |
+
}
|
322 |
+
.limit-table th {
|
323 |
+
background-color: #E8F5E9;
|
324 |
+
color: #2E7D32;
|
325 |
+
font-weight: bold;
|
326 |
+
}
|
327 |
</style>
|
328 |
""", unsafe_allow_html=True)
|
329 |
|
|
|
354 |
|
355 |
# Advanced Settings
|
356 |
st.markdown('<div class="sub-header">Advanced Settings</div>', unsafe_allow_html=True)
|
357 |
+
|
358 |
+
# Available models
|
359 |
+
available_models = [
|
360 |
+
'gemma2-9b-it',
|
361 |
+
'llama3-8b-8192',
|
362 |
+
'mixtral-8x7b-32768',
|
363 |
+
'llama3-70b-8192',
|
364 |
+
'claude-3-5-sonnet-20240620',
|
365 |
+
'llama-3.1-8b-instant',
|
366 |
+
'llama-3.2-3b-preview',
|
367 |
+
'llama-3.3-70b-versatile',
|
368 |
+
'qwen-2.5-32b',
|
369 |
+
'mistral-saba-24b'
|
370 |
+
]
|
371 |
+
|
372 |
model_option = st.selectbox(
|
373 |
'LLM Model',
|
374 |
+
available_models,
|
375 |
index=0,
|
376 |
+
help="Select from available Groq models"
|
377 |
)
|
378 |
|
379 |
+
# Display the rate limits for the selected model
|
380 |
+
if model_option in MODEL_LIMITS:
|
381 |
+
limits = MODEL_LIMITS[model_option]
|
382 |
+
st.markdown('<div class="model-limits-container">', unsafe_allow_html=True)
|
383 |
+
st.markdown(f"#### Rate Limits for {model_option}")
|
384 |
+
|
385 |
+
# Create a table for the limits
|
386 |
+
st.markdown("""
|
387 |
+
<table class="limit-table">
|
388 |
+
<tr>
|
389 |
+
<th>Limit Type</th>
|
390 |
+
<th>Value</th>
|
391 |
+
</tr>
|
392 |
+
<tr>
|
393 |
+
<td>Requests per Minute</td>
|
394 |
+
<td>{rpm}</td>
|
395 |
+
</tr>
|
396 |
+
<tr>
|
397 |
+
<td>Requests per Day</td>
|
398 |
+
<td>{rpd}</td>
|
399 |
+
</tr>
|
400 |
+
<tr>
|
401 |
+
<td>Tokens per Minute</td>
|
402 |
+
<td>{tpm}</td>
|
403 |
+
</tr>
|
404 |
+
<tr>
|
405 |
+
<td>Tokens per Day</td>
|
406 |
+
<td>{tpd}</td>
|
407 |
+
</tr>
|
408 |
+
</table>
|
409 |
+
""".format(
|
410 |
+
rpm=limits['rpm'],
|
411 |
+
rpd=limits['rpd'],
|
412 |
+
tpm=limits['tpm'],
|
413 |
+
tpd=limits['tpd']
|
414 |
+
), unsafe_allow_html=True)
|
415 |
+
|
416 |
+
st.markdown('</div>', unsafe_allow_html=True)
|
417 |
+
|
418 |
search_depth = st.slider('Search Depth', min_value=1, max_value=8, value=5,
|
419 |
help="Higher values will search more thoroughly but take longer")
|
420 |
|