aasherkamal216 commited on
Commit
c522c36
·
unverified ·
1 Parent(s): 0a60e3b

Update test4.py

Browse files
Files changed (1) hide show
  1. test4.py +24 -22
test4.py CHANGED
@@ -123,26 +123,23 @@ def messages_to_gemini(messages):
123
  elif content["type"] == "image_url":
124
  gemini_message["parts"].append(base64_to_image(content["image_url"]["url"]))
125
 
126
- elif content["type"] in ["video_file", "audio_file"]:
127
- file_name = content['unique_name']
128
-
129
- if file_name not in uploaded_files:
130
- temp_file_path = base64_to_temp_file(content[content["type"]], file_name, "mp4" if content["type"] == "video_file" else "wav")
131
- st.write(temp_file_path)
132
-
133
- try:
134
- with st.spinner(f"Sending {content['type'].replace('_', ' ')} to Gemini..."):
135
- file = genai.upload_file(path=temp_file_path)
136
- while file.state.name == "PROCESSING":
137
- st.write('##----*---##')
138
- time.sleep(10)
139
- file = genai.get_file(file.name)
140
  gemini_message["parts"].append(file)
141
- st.write("Hurraaaa")
 
142
 
 
 
143
 
144
- except Exception as e:
145
- st.error(f"An error occurred {e}")
 
 
146
  os.remove(temp_file_path)
147
 
148
  elif content["type"] == "pdf_file":
@@ -194,7 +191,10 @@ def add_pdf_file_to_messages():
194
  }
195
  )
196
 
197
-
 
 
 
198
  ##--- Function for adding media files to session_state messages ---###
199
  def add_media_files_to_messages():
200
  if st.session_state.uploaded_file:
@@ -213,15 +213,17 @@ def add_media_files_to_messages():
213
  }
214
  )
215
  elif file_type == "video/mp4":
216
- video_base64 = base64.b64encode(file_content).decode()
217
- unique_id = random.randint(1000, 9999)
 
 
218
  st.session_state.messages.append(
219
  {
220
  "role": "user",
221
  "content": [{
222
  "type": "video_file",
223
- "video_file": f"data:{file_type};base64,{video_base64}",
224
- "unique_name": f"temp_{unique_id}"
225
  }]
226
  }
227
  )
 
123
  elif content["type"] == "image_url":
124
  gemini_message["parts"].append(base64_to_image(content["image_url"]["url"]))
125
 
126
+ elif content["type"] == "video_file":
127
+ file_path = content["video_file"]
128
+ if file_path.split(".")[0] not in uploaded_files:
129
+ with st.spinner(f"Sending video to Gemini..."):
130
+ try:
131
+ file = genai.upload_file(path=file_path)
 
 
 
 
 
 
 
 
132
  gemini_message["parts"].append(file)
133
+ except Exception as e:
134
+ st.error(f"An error occurred {e}")
135
 
136
+ elif content["type"] == "audio_file":
137
+ file_name = content['unique_name']
138
 
139
+ if file_name not in uploaded_files:
140
+ temp_file_path = base64_to_temp_file(content["audio_file"], file_name, "wav")
141
+ with st.spinner(f"Sending audio file to Gemini..."):
142
+ gemini_message["parts"].append(genai.upload_file(path=temp_file_path))
143
  os.remove(temp_file_path)
144
 
145
  elif content["type"] == "pdf_file":
 
191
  }
192
  )
193
 
194
+ def save_uploaded_video(video_file, file_path):
195
+ with open(file_path, "wb") as f:
196
+ f.write(video_file.read())
197
+
198
  ##--- Function for adding media files to session_state messages ---###
199
  def add_media_files_to_messages():
200
  if st.session_state.uploaded_file:
 
213
  }
214
  )
215
  elif file_type == "video/mp4":
216
+ file_name = st.session_state.uploaded_file.name
217
+ file_path = os.path.join(tempfile.gettempdir(), file_name)
218
+ save_uploaded_video(st.session_state.uploaded_file, file_path)
219
+
220
  st.session_state.messages.append(
221
  {
222
  "role": "user",
223
  "content": [{
224
  "type": "video_file",
225
+ "video_file": file_path,
226
+ "unique_name": file_name
227
  }]
228
  }
229
  )