File size: 2,296 Bytes
fa67bc8 2ccc6ea e8b031a 2ccc6ea b98d9ca 9f319f2 2ccc6ea d78dbfd 9b540af fa67bc8 e8b031a fa67bc8 b63b2a2 e8b031a b98d9ca 6579def d17191b 6579def d17191b 25b948d d17191b fa67bc8 30e878c fa67bc8 9b3282f be61cf7 fa67bc8 2ccc6ea fa67bc8 |
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 |
import gradio as gr
from langchain_community.llms import GooglePalm
from langchain.text_splitter import CharacterTextSplitter
from langchain_community.embeddings import GooglePalmEmbeddings
from langchain_community.vectorstores import FAISS
from langchain.chains import RetrievalQA
from secret1 import GOOGLE_API as google_api
import PyPDF2
# def chatbot_response(user_input, history):
# # This is a placeholder function. Replace with your actual chatbot logic.
# bot_response = "You said: " + user_input
# history.append((user_input, bot_response))
# return history, history
def text_splitter_function(text):
text_splitter = CharacterTextSplitter(
separator = '\n',
chunk_size = 1000,
chunk_overlap = 40,
length_function = len,
)
texts = text_splitter.split_text(text)
return texts;
def text_extract(file):
pdf_reader = PyPDF2.PdfReader(file.name)
# Get the number of pages
num_pages = len(pdf_reader.pages)
# Extract text from each page
text = ""
for page_num in range(num_pages):
page = pdf_reader.pages[page_num]
text += page.extract_text()
text_splitter=text_splitter_function(text);
db = FAISS.from_texts(text_splitter, embeddings);
retriever = db.as_retriever(search_type="similarity", search_kwargs={"k": 2})
llm=GooglePalm(google_api_key=google_api)
qa = RetrievalQA.from_chain_type(
llm=llm, chain_type="stuff", retriever=retriever, return_source_documents=True
)
result=qa.invoke("where is tajmahal")
return 'hi'
with gr.Blocks() as demo:
gr.Markdown("# Chat with ChatGPT-like Interface")
chatbot = gr.Chatbot()
state = gr.State([])
with gr.Row():
with gr.Column():
user_input = gr.Textbox(show_label=False, placeholder="Type your message here...")
send_btn = gr.Button("Send")
with gr.Column():
input_file=gr.File(label="Upload PDF", file_count="single")
submit_btn=gr.Button("Submit")
submit_btn.click(text_extract, [input_file], [user_input])
#send_btn.click(chatbot_response,[user_input,state],[chatbot, state])
if __name__ == "__main__":
embeddings=GooglePalmEmbeddings(google_api_key=google_api)
demo.launch()
|