Hi, good idea. Here are the libraries need to be installed:
chromadb==0.4.22
langchain==0.1.5
langchain-community==0.0.17
langchain-core==0.1.19
langchain-openai==0.0.5
openai==1.11.1
tiktoken==0.5.2
#“unstructured[md,pdf,pptx]”
unstructured-client==0.16.0
unstructured==0.12.3
unstructured-inference==0.7.23
unstructured.pytesseract==0.3.12
urllib3==1.26.18
python-dotenv==1.0.1
panel==1.3.8
ipython==8.18.1
python-pptx==0.6.23
pdf2image==1.17.0
pdfminer==20191125
opencv-python==4.9.0.80
pikepdf==8.13.0
pypdf==4.0.1
And here is a code that need to be on your environment (Utils.py):
import os
import sys
from dotenv import load_dotenv, find_dotenv
import panel as pn
pn.extension()
class Utils:
def init(self):
pass
def get_dlai_api_key(self):
_ = load_dotenv(find_dotenv())
return os.getenv(“DLAI_API_KEY”)
def get_dlai_url(self):
_ = load_dotenv(find_dotenv())
return os.getenv(“DLAI_API_URL”)
class upld_file():
def init(self):
self.widget_file_upload = pn.widgets.FileInput(accept=‘.pdf,.ppt,.png,.html’, multiple=False)
self.widget_file_upload.param.watch(self.save_filename, ‘filename’)
def save_filename(self,_):
if len(self.widget_file_upload.value) > 2e6:
print("file too large. 2 M limit")
else:
self.widget_file_upload.save('./example_files/' + self.widget_file_upload.filename)
#print(f"filename_ = {self.widget_file_upload.filename}")
#print(f"length of value {len(self.widget_file_upload.value)}")