Nathan Butters commited on
Commit
2960307
·
1 Parent(s): e91d43c

Fixed Image to Model!!!

Browse files
Files changed (1) hide show
  1. app.py +12 -15
app.py CHANGED
@@ -7,9 +7,7 @@ import streamlit as st
7
  import logging
8
  from helpers.constant import *
9
  from helpers.chat import basicChat, guidedMM, mmChat
10
- import os
11
- import tempfile
12
- import requests
13
 
14
  logger = logging.getLogger(__name__)
15
  logging.basicConfig(filename='app.log', level=logging.INFO)
@@ -28,13 +26,16 @@ if "systemPrompt" not in st.session_state:
28
  st.set_page_config(page_title="IMSA Math Helper v0.1")
29
  st.title("IMSA Math Helper v0.1")
30
  with st.sidebar:
 
 
 
31
  # User selects a model
32
  model_choice = st.radio("Please select the model:", options=["Llama","QWEN"])
33
  update_model(model_choice)
34
  logger.info(f"Model changed to {model_choice}.")
35
  systemPrompt = st.radio("Designate a control persona:",options=["Model","Tutor"])
36
  st.session_state.systemPrompt = systemPrompt
37
- liveExperience = st.checkbox("Check for live experience, currently impoeverished.")
38
 
39
  st.subheader(f"This experience is currently running on {st.session_state.model}.")
40
 
@@ -48,21 +49,17 @@ for message in st.session_state.messages:
48
  st.markdown(message["content"])
49
 
50
  if liveExperience:
51
- st.warning("The experience is currently nonfunctional as I attempt to figure out how to expose the image URL to the HF inference API via streamlit...")
52
- enable = st.checkbox("Enable camera")
53
- picture = st.camera_input("Take a picture of your math work", disabled=not enable)
54
 
55
  if picture is not None:
56
- # Save the image to a temporary file
57
- temp_dir = tempfile.mkdtemp()
58
- temp_image_path = os.path.join(temp_dir, "picture.png")
59
- with open(temp_image_path, "wb") as f:
60
- f.write(picture.getbuffer())
61
- extIP = requests.get("https://ipv4.icanhazip.com").text
62
- img_url = f"https://{extIP}:8501{temp_image_path}"
63
  guidedMM(st.session_state.systemPrompt, img_url)
64
  else:
65
- st.info("Please select an example image to understand the basic potential of the app while I try to figure out how to serve images correctly to the completions API.")
66
  example = st.selectbox("Select an example image", options=["Example 1", "Example 2"])
67
  if example == "Example 1":
68
  img_url = "https://huggingface.co/spaces/butterswords/MM_Math_Helper/resolve/main/tempDir/example1.png"
 
7
  import logging
8
  from helpers.constant import *
9
  from helpers.chat import basicChat, guidedMM, mmChat
10
+ import base64
 
 
11
 
12
  logger = logging.getLogger(__name__)
13
  logging.basicConfig(filename='app.log', level=logging.INFO)
 
26
  st.set_page_config(page_title="IMSA Math Helper v0.1")
27
  st.title("IMSA Math Helper v0.1")
28
  with st.sidebar:
29
+ st.info("""This prototype is designed to help students explore the potential and risks of using LLMs to help learn math.
30
+ This version (v.01) exists to demonstrate an end-to-end proof of concept for the students to engage with to identify
31
+ hazards within the system design. Future iterations will include the constraints they devise to improve the system.""")
32
  # User selects a model
33
  model_choice = st.radio("Please select the model:", options=["Llama","QWEN"])
34
  update_model(model_choice)
35
  logger.info(f"Model changed to {model_choice}.")
36
  systemPrompt = st.radio("Designate a control persona:",options=["Model","Tutor"])
37
  st.session_state.systemPrompt = systemPrompt
38
+ liveExperience = st.checkbox("Check to enable the live experience.")
39
 
40
  st.subheader(f"This experience is currently running on {st.session_state.model}.")
41
 
 
49
  st.markdown(message["content"])
50
 
51
  if liveExperience:
52
+ enable = st.checkbox("Enable camera to upload a picture of your math problem.")
53
+ picture = st.camera_input("Take a picture", disabled=not enable)
 
54
 
55
  if picture is not None:
56
+ st.image(picture)
57
+ picBytes= picture.getvalue()
58
+ b64IMG = base64.b64encode(picBytes).decode('utf-8')
59
+ img_url = f"data:image/jpeg;base64,{b64IMG}"
 
 
 
60
  guidedMM(st.session_state.systemPrompt, img_url)
61
  else:
62
+ st.info("Please select an example image to understand the basic potential of the app before using the live app. You can ask the model a question about these images to see how it responds.")
63
  example = st.selectbox("Select an example image", options=["Example 1", "Example 2"])
64
  if example == "Example 1":
65
  img_url = "https://huggingface.co/spaces/butterswords/MM_Math_Helper/resolve/main/tempDir/example1.png"