Spaces:
Sleeping
Sleeping
import clip | |
from datetime import datetime | |
import faiss | |
import pandas as pd | |
import os | |
from sentence_transformers import SentenceTransformer | |
import streamlit as st | |
import torch | |
import whisper | |
device = "cuda" if torch.cuda.is_available() else "cpu" | |
def load_clip_model(): | |
model, preprocess = clip.load("ViT-B/32", device=device) | |
return model, preprocess | |
def load_text_embedding_model(): | |
model = SentenceTransformer("all-MiniLM-L6-v2") | |
return model | |
def load_whisper_model(): | |
model = whisper.load_model("small") | |
return model | |
def load_image_index(): | |
index = faiss.read_index('./vectorstore/image_index.index') | |
data = pd.read_csv("./vectorstore/image_data.csv") | |
return index, data | |
def load_text_index(): | |
index = faiss.read_index('./vectorstore/text_index.index') | |
data = pd.read_csv("./vectorstore/text_data.csv") | |
return index, data | |
def load_audio_index(): | |
index = faiss.read_index('./vectorstore/audio_index.index') | |
data = pd.read_csv("./vectorstore/audio_data.csv") | |
return index, data | |
def cosine_similarity(a, b): | |
return torch.cosine_similarity(a, b) | |
def get_local_files(directory: str, extensions: list = None, get_details: bool = False): | |
files = os.listdir(directory) | |
if not extensions: | |
if get_details: | |
return [{ | |
"file_name": file, | |
"file_size": os.path.getsize(os.path.join(directory, file)), | |
"file_created": datetime.fromtimestamp(os.path.getctime(os.path.join(directory, file))) | |
} for file in files] | |
else: | |
return files | |
else: | |
if get_details: | |
filtered_files = [] | |
for file in files: | |
file_extension = file.split(".")[-1] | |
if file_extension in extensions: | |
filtered_files.append({ | |
"file_name": file, | |
"file_size": os.path.getsize(os.path.join(directory, file)), | |
"file_created": datetime.fromtimestamp(os.path.getctime(os.path.join(directory, file))) | |
}) | |
return filtered_files | |
else: | |
return [file for file in files if file.endswith(extensions(extensions))] | |