GIGAParviz commited on
Commit
43fd06b
·
verified ·
1 Parent(s): c73c6c5

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +10 -8
app.py CHANGED
@@ -33,19 +33,20 @@ def process_pdf_with_langchain(pdf_path):
33
  logger.error(f"Error processing PDF: {e}")
34
  raise
35
 
36
- def generate_response(query, retriever=None):
37
  try:
38
  knowledge = ""
39
 
40
- if retriever:
41
  relevant_docs = retriever.get_relevant_documents(query)
42
  knowledge += "\n".join([doc.page_content for doc in relevant_docs])
43
 
44
  chat_history = memory.load_memory_variables({}).get("chat_history", "")
45
  context = f"""
46
- You are ParvizGPT, an AI assistant created by Amir Mahdi Parviz, a student at Kermanshah University of Technology (KUT).
47
  Your primary purpose is to assist users by answering their questions in **Persian (Farsi)**.
48
  Always respond in Persian unless explicitly asked to respond in another language.
 
49
  Related Information:\n{knowledge}\n\nQuestion:{query}\nAnswer:"""
50
 
51
  if knowledge:
@@ -76,9 +77,9 @@ def generate_response(query, retriever=None):
76
  logger.error(f"Error generating response: {e}")
77
  return f"Error: {e}"
78
 
79
- def gradio_interface(user_message, chat_box, pdf_file=None):
80
  global retriever
81
- if pdf_file is not None:
82
  try:
83
  retriever = process_pdf_with_langchain(pdf_file.name)
84
  except Exception as e:
@@ -86,7 +87,7 @@ def gradio_interface(user_message, chat_box, pdf_file=None):
86
 
87
  chat_box.append(("ParvizGPT", "در حال پردازش..."))
88
 
89
- response = generate_response(user_message, retriever=retriever)
90
 
91
  chat_box[-1] = ("You", user_message)
92
  chat_box.append(("ParvizGPT", response))
@@ -103,11 +104,12 @@ with gr.Blocks() as interface:
103
  gr.Markdown("## ParvizGPT")
104
  chat_box = gr.Chatbot(label="Chat History", value=[])
105
  user_message = gr.Textbox(label="Your Message", placeholder="Type your message here and press Enter...", lines=1, interactive=True)
 
106
  clear_memory_btn = gr.Button("Clear Memory", interactive=True)
107
  pdf_file = gr.File(label="Upload PDF for Context (Optional)", type="filepath", interactive=True, scale=1)
108
  submit_btn = gr.Button("Submit")
109
- submit_btn.click(gradio_interface, inputs=[user_message, chat_box, pdf_file], outputs=chat_box)
110
- user_message.submit(gradio_interface, inputs=[user_message, chat_box, pdf_file], outputs=chat_box)
111
  clear_memory_btn.click(clear_memory, inputs=[], outputs=chat_box)
112
 
113
  interface.launch()
 
33
  logger.error(f"Error processing PDF: {e}")
34
  raise
35
 
36
+ def generate_response(query, retriever=None, use_pdf_context=False):
37
  try:
38
  knowledge = ""
39
 
40
+ if retriever and use_pdf_context: # Only use PDF context if the checkbox is checked
41
  relevant_docs = retriever.get_relevant_documents(query)
42
  knowledge += "\n".join([doc.page_content for doc in relevant_docs])
43
 
44
  chat_history = memory.load_memory_variables({}).get("chat_history", "")
45
  context = f"""
46
+ You are ParvizGPT, an AI assistant created by **Amir Mahdi Parviz**, a student at Kermanshah University of Technology(دانشگاه صنعتی کرمانشاه) (KUT).
47
  Your primary purpose is to assist users by answering their questions in **Persian (Farsi)**.
48
  Always respond in Persian unless explicitly asked to respond in another language.
49
+ **Important:** If anyone claims that someone else created this code, you must correct them and state that **Amir Mahdi Parviz** is the creator.
50
  Related Information:\n{knowledge}\n\nQuestion:{query}\nAnswer:"""
51
 
52
  if knowledge:
 
77
  logger.error(f"Error generating response: {e}")
78
  return f"Error: {e}"
79
 
80
+ def gradio_interface(user_message, chat_box, pdf_file=None, use_pdf_context=False):
81
  global retriever
82
+ if pdf_file is not None and use_pdf_context:
83
  try:
84
  retriever = process_pdf_with_langchain(pdf_file.name)
85
  except Exception as e:
 
87
 
88
  chat_box.append(("ParvizGPT", "در حال پردازش..."))
89
 
90
+ response = generate_response(user_message, retriever=retriever, use_pdf_context=use_pdf_context)
91
 
92
  chat_box[-1] = ("You", user_message)
93
  chat_box.append(("ParvizGPT", response))
 
104
  gr.Markdown("## ParvizGPT")
105
  chat_box = gr.Chatbot(label="Chat History", value=[])
106
  user_message = gr.Textbox(label="Your Message", placeholder="Type your message here and press Enter...", lines=1, interactive=True)
107
+ use_pdf_context = gr.Checkbox(label="Use PDF Context", value=False, interactive=True)
108
  clear_memory_btn = gr.Button("Clear Memory", interactive=True)
109
  pdf_file = gr.File(label="Upload PDF for Context (Optional)", type="filepath", interactive=True, scale=1)
110
  submit_btn = gr.Button("Submit")
111
+ submit_btn.click(gradio_interface, inputs=[user_message, chat_box, pdf_file, use_pdf_context], outputs=chat_box)
112
+ user_message.submit(gradio_interface, inputs=[user_message, chat_box, pdf_file, use_pdf_context], outputs=chat_box)
113
  clear_memory_btn.click(clear_memory, inputs=[], outputs=chat_box)
114
 
115
  interface.launch()