Spaces:
Sleeping
Sleeping
File size: 2,916 Bytes
7d849d3 413cb20 9e4c9f3 7d849d3 9830b8e e4b3526 4b4013f b16e227 9830b8e b16e227 874fc5b 63e083c 874fc5b 6a1c9b8 63e083c e4b3526 4b4013f 413cb20 6cbfbad e4b3526 4b4013f 6cbfbad 413cb20 e4b3526 4b4013f 005a493 413cb20 e4b3526 413cb20 e4b3526 8060e77 874fc5b 8060e77 874fc5b 8060e77 9e4c9f3 8060e77 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 |
import streamlit as st
from tempfile import NamedTemporaryFile
import pprint
import google.generativeai as palm
import os
from dotenv import load_dotenv, find_dotenv
from langchain.embeddings import GooglePalmEmbeddings
from langchain.llms import GooglePalm
from langchain.document_loaders import UnstructuredURLLoader #load urls into docoument-loader
from langchain.chains.question_answering import load_qa_chain
from langchain.indexes import VectorstoreIndexCreator #vectorize db index with chromadb
from langchain.text_splitter import CharacterTextSplitter #text splitter
from langchain.chains import RetrievalQA
from langchain.document_loaders import UnstructuredPDFLoader #load pdf
from langchain.agents import create_pandas_dataframe_agent
import pandas as pd
import numpy as np
import pprint
radioButtonList = ["E-commerce CSV (https://www.kaggle.com/datasets/mervemenekse/ecommerce-dataset)",
"Upload my own CSV",
"Upload my own PDF",
"URL Chat with Google Alphabet's 2022 Q2 Earnings Report (https://tinyurl.com/f85wujsj)",
"Enter my own URL"]
genre = st.radio(
"Choose dataset to finetune", radioButtonList
)
pdfCSVURLText = ""
if genre==radioButtonList[0]:
pdfCSVURLText = "CSV"
# st.write('You selected comedy.')
# else:
# st.write(f'''Password streamlit app: {st.secrets["PSWD"]}''')
elif genre==radioButtonList[1]:
pdfCSVURLText = "CSV"
elif genre==radioButtonList[2]:
pdfCSVURLText = "PDF"
elif genre==radioButtonList[3]:
pdfCSVURLText = "URL"
elif genre==radioButtonList[4]:
pdfCSVURLText = "URL"
isCustomURL = genre==radioButtonList[4]
urlInput = st.text_input('Enter your own URL', '', placeholder="Type your URL here (e.g. https://tinyurl.com/f85wujsj)", disabled=not isCustomURL)
isCustomPDF = genre==radioButtonList[1] or genre==radioButtonList[2]
uploaded_file = st.file_uploader(f"Upload your own {pdfCSVURLText} here", type=pdfCSVURLText.lower(), disabled=not isCustomPDF)
uploadedFilename = ""
if uploaded_file is not None:
with NamedTemporaryFile(dir='.', suffix=f'.{pdfCSVURLText.lower()}') as f:
f.write(uploaded_file.getbuffer())
uploadedFilename = f.name
enableChatBox = False
if genre==radioButtonList[0]:
enableChatBox = True
elif genre==radioButtonList[1]:
enableChatBox = uploadedFilename[-4:]==".csv"
elif genre==radioButtonList[2]:
enableChatBox = uploadedFilename[-4:]==".pdf"
elif genre==radioButtonList[3]:
enableChatBox = True
elif genre==radioButtonList[4]:
enableChatBox = True
chatTextStr = st.text_input(f'Ask me anything about this {pdfCSVURLText}', '', placeholder="Type your question here (e.g. what was the most sold item?)", disabled=not enableChatBox)
chatWithPDFButton = "CLICK HERE TO START CHATTING"
if st.button(chatWithPDFButton, disabled=not enableChatBox and not chatTextStr): # Button Cliked
st.write('Invalid ULR. Please enter a valid URL.')
# else:
# pass
|