Nyanfa commited on
Commit
de74109
·
verified ·
1 Parent(s): 72e2335

Add font and icon size adjustment

Browse files
Files changed (1) hide show
  1. app.py +38 -5
app.py CHANGED
@@ -30,7 +30,7 @@ def get_ai_response(prompt, chat_history):
30
  st.session_state.is_streaming = True
31
  st.session_state.response = ""
32
 
33
- with st.chat_message("ai", avatar=assistant_avatar):
34
  penalty_kwargs = {
35
  "frequency_penalty" if penalty_type == "Frequency Penalty" else "presence_penalty": penalty_value
36
  }
@@ -91,7 +91,7 @@ inline_pattern = r"`([^`\n]+?)`"
91
  def display_messages():
92
  for i, message in enumerate(st.session_state.messages):
93
  name = "user" if message["role"] == "USER" else "ai"
94
- avatar = user_avatar if message["role"] == "USER" else assistant_avatar
95
  with st.chat_message(name, avatar=avatar):
96
  shown_message = message["text"].replace("\n", " \n")\
97
  .replace("<", "\\<")\
@@ -252,11 +252,17 @@ with st.sidebar:
252
  }
253
  selected_font = st.selectbox("Choose a font", ["Default"] + list(font_options.keys()))
254
 
 
 
 
255
  st.header("Change the user's icon")
256
- user_avatar = st.file_uploader("Choose an image", type=["png", "jpg", "jpeg", "webp", "gif", "bmp", "svg",], key="user_avatar_uploader")
257
 
258
  st.header("Change the assistant's icon")
259
- assistant_avatar = st.file_uploader("Choose an image", type=["png", "jpg", "jpeg", "webp", "gif", "bmp", "svg",], key="assistant_avatar_uploader")
 
 
 
260
 
261
 
262
  # After Stop generating
@@ -272,6 +278,33 @@ if selected_font != "Default":
272
  st.markdown(f'<style>{css.read()}</style>', unsafe_allow_html=True)
273
  st.markdown(f'<style>body * {{ font-family: "{font_options[selected_font]}", serif !important; }}</style>', unsafe_allow_html=True)
274
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
275
  display_messages()
276
 
277
  # After Retry
@@ -293,7 +326,7 @@ if prompt := st.chat_input("Enter your message here..."):
293
  .replace("<", "\\<")\
294
  .replace(">", "\\>")
295
 
296
- with st.chat_message("user", avatar=user_avatar):
297
  st.write(shown_message)
298
 
299
  st.session_state.messages.append({"role": "USER", "text": prompt})
 
30
  st.session_state.is_streaming = True
31
  st.session_state.response = ""
32
 
33
+ with st.chat_message("ai", avatar=st.session_state.assistant_avatar):
34
  penalty_kwargs = {
35
  "frequency_penalty" if penalty_type == "Frequency Penalty" else "presence_penalty": penalty_value
36
  }
 
91
  def display_messages():
92
  for i, message in enumerate(st.session_state.messages):
93
  name = "user" if message["role"] == "USER" else "ai"
94
+ avatar = st.session_state.user_avatar if message["role"] == "USER" else st.session_state.assistant_avatar
95
  with st.chat_message(name, avatar=avatar):
96
  shown_message = message["text"].replace("\n", " \n")\
97
  .replace("<", "\\<")\
 
252
  }
253
  selected_font = st.selectbox("Choose a font", ["Default"] + list(font_options.keys()))
254
 
255
+ st.header("Change the font size")
256
+ st.session_state.font_size = st.slider("Font size", min_value=16.0, max_value=50.0, value=16.0, step=1.0)
257
+
258
  st.header("Change the user's icon")
259
+ st.session_state.user_avatar = st.file_uploader("Choose an image", type=["png", "jpg", "jpeg", "webp", "gif", "bmp", "svg",], key="user_avatar_uploader")
260
 
261
  st.header("Change the assistant's icon")
262
+ st.session_state.assistant_avatar = st.file_uploader("Choose an image", type=["png", "jpg", "jpeg", "webp", "gif", "bmp", "svg",], key="assistant_avatar_uploader")
263
+
264
+ st.header("Change the icon size")
265
+ st.session_state.avatar_size = st.slider("Icon size", min_value=2.0, max_value=20.0, value=2.0, step=0.2)
266
 
267
 
268
  # After Stop generating
 
278
  st.markdown(f'<style>{css.read()}</style>', unsafe_allow_html=True)
279
  st.markdown(f'<style>body * {{ font-family: "{font_options[selected_font]}", serif !important; }}</style>', unsafe_allow_html=True)
280
 
281
+ # Change font size
282
+ st.markdown(f'<style>[data-testid="stChatMessageContent"] .st-emotion-cache-cnbvxy p{{font-size: {st.session_state.font_size}px;}}</style>', unsafe_allow_html=True)
283
+
284
+ # Change icon size
285
+ # (CSS element names may be subject to change.)
286
+ AVATAR_SIZE_STYLE = f"""
287
+ <style>
288
+ [data-testid="chatAvatarIcon-user"] {{
289
+ width: {st.session_state.avatar_size}rem;
290
+ height: {st.session_state.avatar_size}rem;
291
+ }}
292
+ [data-testid="chatAvatarIcon-assistant"] {{
293
+ width: {st.session_state.avatar_size}rem;
294
+ height: {st.session_state.avatar_size}rem;
295
+ }}
296
+ [data-testid="stChatMessage"] .st-emotion-cache-1pbsqtx {{
297
+ width: {st.session_state.avatar_size / 1.6}rem;
298
+ height: {st.session_state.avatar_size / 1.6}rem;
299
+ }}
300
+ [data-testid="stChatMessage"] .st-emotion-cache-p4micv {{
301
+ width: {st.session_state.avatar_size}rem;
302
+ height: {st.session_state.avatar_size}rem;
303
+ }}
304
+ </style>
305
+ """
306
+ st.markdown(AVATAR_SIZE_STYLE, unsafe_allow_html=True)
307
+
308
  display_messages()
309
 
310
  # After Retry
 
326
  .replace("<", "\\<")\
327
  .replace(">", "\\>")
328
 
329
+ with st.chat_message("user", avatar=st.session_state.user_avatar):
330
  st.write(shown_message)
331
 
332
  st.session_state.messages.append({"role": "USER", "text": prompt})