Spestly commited on
Commit
ae1353b
·
verified ·
1 Parent(s): 622f160

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +11 -18
app.py CHANGED
@@ -25,9 +25,12 @@ with st.sidebar:
25
  api_key = st.text_input("Cohere API Key", type="password")
26
  selected_model = st.selectbox("Model", options=list(model_info.keys()))
27
  if selected_model.startswith("c4ai-aya-vision"):
28
- uploaded = st.file_uploader("Upload image", type=["png","jpg","jpeg"], key="uploaded")
 
 
29
  if st.button("Clear Chat"):
30
  st.session_state.clear()
 
31
  st.rerun()
32
  st.divider()
33
  st.subheader(selected_model)
@@ -40,9 +43,11 @@ if "messages" not in st.session_state:
40
  st.session_state.messages = []
41
  if "first_message_sent" not in st.session_state:
42
  st.session_state.first_message_sent = False
 
 
43
 
44
  if not st.session_state.first_message_sent:
45
- st.markdown("<h1 style='text-align: center; color: #4a4a4a; margin-top: 100px;'>How can Cohere help you today?</h1>", unsafe_allow_html=True)
46
 
47
  for msg in st.session_state.messages:
48
  with st.chat_message(msg["role"], avatar=USER_PFP if msg["role"] == "user" else AI_PFP):
@@ -60,31 +65,19 @@ if prompt := st.chat_input("Message..."):
60
  if not api_key:
61
  st.error("API key required")
62
  st.stop()
63
-
64
  st.session_state.first_message_sent = True
65
  st.session_state.messages.append({"role": "user", "content": prompt})
66
  with st.chat_message("user", avatar=USER_PFP):
67
  st.markdown(prompt)
68
-
69
  co = cohere.ClientV2(api_key)
70
  content = [{"type": "text", "text": prompt}]
71
- if selected_model.startswith("c4ai-aya-vision") and st.session_state.get("uploaded"):
72
- data = st.session_state.uploaded.read()
73
- data_url = f"data:image/jpeg;base64,{base64.b64encode(data).decode('utf-8')}"
74
  content.append({"type": "image_url", "image_url": {"url": data_url}})
75
-
76
- response = co.chat(
77
- model=selected_model,
78
- messages=[*st.session_state.messages, {"role": "user", "content": content}],
79
- temperature=0.3
80
- )
81
  items = response.message.content
82
  reply = "".join(getattr(i, 'text', '') for i in items)
83
-
84
  with st.chat_message("assistant", avatar=AI_PFP):
85
  st.markdown(reply)
86
-
87
  st.session_state.messages.append({"role": "assistant", "content": items})
88
-
89
- if "uploaded" in st.session_state:
90
- st.session_state.uploaded = None
 
25
  api_key = st.text_input("Cohere API Key", type="password")
26
  selected_model = st.selectbox("Model", options=list(model_info.keys()))
27
  if selected_model.startswith("c4ai-aya-vision"):
28
+ uploaded_file = st.file_uploader("Upload image", type=["png", "jpg", "jpeg"])
29
+ if uploaded_file:
30
+ st.session_state.image_data = uploaded_file.read()
31
  if st.button("Clear Chat"):
32
  st.session_state.clear()
33
+ st.session_state.image_data = None
34
  st.rerun()
35
  st.divider()
36
  st.subheader(selected_model)
 
43
  st.session_state.messages = []
44
  if "first_message_sent" not in st.session_state:
45
  st.session_state.first_message_sent = False
46
+ if "image_data" not in st.session_state:
47
+ st.session_state.image_data = None
48
 
49
  if not st.session_state.first_message_sent:
50
+ st.markdown("<h1 style='text-align:center;color:#4a4a4a;margin-top:100px;'>How can Cohere help you today?</h1>", unsafe_allow_html=True)
51
 
52
  for msg in st.session_state.messages:
53
  with st.chat_message(msg["role"], avatar=USER_PFP if msg["role"] == "user" else AI_PFP):
 
65
  if not api_key:
66
  st.error("API key required")
67
  st.stop()
 
68
  st.session_state.first_message_sent = True
69
  st.session_state.messages.append({"role": "user", "content": prompt})
70
  with st.chat_message("user", avatar=USER_PFP):
71
  st.markdown(prompt)
 
72
  co = cohere.ClientV2(api_key)
73
  content = [{"type": "text", "text": prompt}]
74
+ if selected_model.startswith("c4ai-aya-vision") and st.session_state.image_data:
75
+ data_url = "data:image/jpeg;base64," + base64.b64encode(st.session_state.image_data).decode('utf-8')
 
76
  content.append({"type": "image_url", "image_url": {"url": data_url}})
77
+ response = co.chat(model=selected_model, messages=[*st.session_state.messages, {"role": "user", "content": content}], temperature=0.3)
 
 
 
 
 
78
  items = response.message.content
79
  reply = "".join(getattr(i, 'text', '') for i in items)
 
80
  with st.chat_message("assistant", avatar=AI_PFP):
81
  st.markdown(reply)
 
82
  st.session_state.messages.append({"role": "assistant", "content": items})
83
+ st.session_state.image_data = None