chatbotAPI / OtherFun.py
dhruv4023's picture
Synced repo using 'sync_with_huggingface' Github Action
f37ceb5 verified
from fastapi import UploadFile
import asyncio
from Middleware import Main
from appConfig import LOG
def delete_chain_after_delay(model: Main, chain_name: str):
async def delete_chain():
try:
await asyncio.sleep(7200) # Sleep for 2 hours
if chain_name in model.qa_chains:
del model.qa_chains[chain_name]
# Log deletion
LOG.info(f"Chain '{chain_name}' deleted after 2 hours")
except Exception as e:
LOG.error(f"An error occurred while deleting chain '{chain_name}': {e}")
return delete_chain
async def process_file(model: Main, collection_name: str, file: UploadFile):
try:
contents = await file.read()
file_extension = file.filename.split(".")[-1]
if file_extension == "pdf":
response = model.generate_embedding(
contents, file.filename, collection_name)
elif file_extension == "txt":
response = contents.decode("utf-8")
else:
raise ValueError(f"Unsupported file format for {file.filename}")
return response
except Exception as e:
LOG.error(f"An error occurred while processing file '{file.filename}': {e}")
return f"Error processing file '{file.filename}': {e}"