Spaces:
Runtime error
Runtime error
import streamlit as st | |
import common | |
import os | |
import pickle | |
from llama_hub.file.audio.base import AudioTranscriber | |
from log import logger | |
from pathlib import Path | |
common.check_login() | |
loader = AudioTranscriber() | |
INDEX_NAME = os.environ["INDEX_NAME"] | |
PKL_NAME = os.environ["PKL_NAME"] | |
if "file_uploader_key" not in st.session_state: | |
st.session_state["file_uploader_key"] = 0 | |
st.title("π ImportAudioFile") | |
uploaded_file = st.file_uploader("Upload an article", type=("mp3", "mp4"),key=st.session_state["file_uploader_key"]) | |
if st.button("import",use_container_width=True): | |
filepath = os.path.join('documents', os.path.basename( uploaded_file.name)) | |
try: | |
with open(filepath, 'wb') as f: | |
f.write(uploaded_file.getvalue()) | |
f.close() | |
logger.info(filepath) | |
document = loader.load_data(file=Path(filepath))[0] | |
logger.info(document) | |
document.metadata={'filename': os.path.basename(uploaded_file.name)} | |
st.session_state.stored_docs.append(uploaded_file.name) | |
logger.info(st.session_state.stored_docs) | |
st.session_state.index.insert(document=document) | |
st.session_state.index.storage_context.persist(persist_dir=INDEX_NAME) | |
os.remove(filepath) | |
common.setChatEngine() | |
with open(PKL_NAME, "wb") as f: | |
print("pickle") | |
pickle.dump(st.session_state.stored_docs, f) | |
st.session_state["file_uploader_key"] += 1 | |
st.experimental_rerun() | |
except Exception as e: | |
# cleanup temp file | |
logger.error(e) | |
if filepath is not None and os.path.exists(filepath): | |
os.remove(filepath) | |
st.subheader("Import File List") | |
if "stored_docs" in st.session_state: | |
logger.info(st.session_state.stored_docs) | |
for docname in st.session_state.stored_docs: | |
st.write(docname) | |