Spaces:
Configuration error
Configuration error
aasherkamal216
commited on
Update test4.py
Browse files
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"]
|
| 127 |
-
|
| 128 |
-
|
| 129 |
-
|
| 130 |
-
|
| 131 |
-
|
| 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 |
-
|
|
|
|
| 142 |
|
|
|
|
|
|
|
| 143 |
|
| 144 |
-
|
| 145 |
-
|
|
|
|
|
|
|
| 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 |
-
|
| 217 |
-
|
|
|
|
|
|
|
| 218 |
st.session_state.messages.append(
|
| 219 |
{
|
| 220 |
"role": "user",
|
| 221 |
"content": [{
|
| 222 |
"type": "video_file",
|
| 223 |
-
"video_file":
|
| 224 |
-
"unique_name":
|
| 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 |
)
|