my-bot / app.py
ketangandhi's picture
Update app.py
d029f96
# -*- coding: utf-8 -*-
"""Untitled44.ipynb
Automatically generated by Colaboratory.
Original file is located at
https://colab.research.google.com/drive/1PxYl919o_aJGWdZoMRTVFD4XESysiWAH
"""
import gradio as gr
import random
import time
from transformers import pipeline,AutoModelForQuestionAnswering,AutoTokenizer
import pdfplumber
def extract_text_from_pdf(pdf_path):
text = ""
with pdfplumber.open(pdf_path) as pdf:
for page in pdf.pages:
text += page.extract_text()
return text
pdf_path = "Ketan gandhi-chatbotdata.pdf"
pdf_text = extract_text_from_pdf(pdf_path)
model_name="deepset/roberta-base-squad2"
qa_pipeline = pipeline("question-answering", model=AutoModelForQuestionAnswering.from_pretrained(model_name),tokenizer=AutoTokenizer.from_pretrained(model_name))
with gr.Blocks() as demo:
chatbot = gr.Chatbot()
msg = gr.Textbox(placeholder="Ask me anything related to Ketan Gandhi😎")
clear = gr.ClearButton([msg, chatbot])
def respond(message, chat_history):
question = message
answer = qa_pipeline(question=question, context=pdf_text)
confidence_threshold=0.3
if answer['score']>confidence_threshold:
bot_message = answer['answer']
chat_history.append((message, bot_message))
else:
chat_history.append((message,"I may not be the right bot to answer this......😅"))
time.sleep(2)
return "", chat_history
def vote(data: gr.LikeData):
if data.liked:
print("You upvoted this response: " + data.value)
else:
print("You downvoted this response: " + data.value)
msg.submit(respond, [msg, chatbot], [msg, chatbot])
chatbot.like(vote, None, None)
if __name__ == "__main__":
demo.launch()