Spaces:
Runtime error
Runtime error
changes to app
Browse files
app.py
CHANGED
|
@@ -4,7 +4,6 @@ import yaml
|
|
| 4 |
import gradio as gr
|
| 5 |
|
| 6 |
current_dir = os.path.dirname(os.path.abspath(__file__))
|
| 7 |
-
print(current_dir)
|
| 8 |
|
| 9 |
from src.document_retrieval import DocumentRetrieval
|
| 10 |
from utils.visual.env_utils import env_input_fields, initialize_env_variables, are_credentials_set, save_credentials
|
|
@@ -14,25 +13,20 @@ from utils.vectordb.vector_db import VectorDb
|
|
| 14 |
CONFIG_PATH = os.path.join(current_dir,'config.yaml')
|
| 15 |
PERSIST_DIRECTORY = os.path.join(current_dir,f"data/my-vector-db") # changed to current_dir
|
| 16 |
|
| 17 |
-
|
| 18 |
-
chat_history = []
|
| 19 |
-
|
| 20 |
-
def handle_userinput(user_question, conversation):
|
| 21 |
if user_question:
|
| 22 |
try:
|
|
|
|
| 23 |
response = conversation.invoke({"question": user_question})
|
| 24 |
-
chat_history.append((user_question, response["answer"]))
|
| 25 |
|
| 26 |
-
#
|
| 27 |
-
|
| 28 |
-
#state.sources_history.append(sources_text)
|
| 29 |
|
| 30 |
-
return
|
| 31 |
except Exception as e:
|
| 32 |
-
return f"An error occurred: {str(e)}", ""
|
| 33 |
else:
|
| 34 |
-
return
|
| 35 |
-
#return chat_history, "" #, state.sources_history
|
| 36 |
|
| 37 |
def process_documents(files, document_retrieval, vectorstore, conversation, save_location=None):
|
| 38 |
try:
|
|
@@ -49,10 +43,6 @@ def process_documents(files, document_retrieval, vectorstore, conversation, save
|
|
| 49 |
except Exception as e:
|
| 50 |
return conversation, vectorstore, document_retrieval, f"An error occurred while processing: {str(e)}"
|
| 51 |
|
| 52 |
-
def reset_conversation(chat_history):
|
| 53 |
-
chat_history = []
|
| 54 |
-
return chat_history, ""
|
| 55 |
-
|
| 56 |
# Read config file
|
| 57 |
with open(CONFIG_PATH, 'r') as yaml_file:
|
| 58 |
config = yaml.safe_load(yaml_file)
|
|
@@ -91,23 +81,17 @@ with gr.Blocks() as demo:
|
|
| 91 |
|
| 92 |
# Preprocessing events
|
| 93 |
process_btn.click(process_documents, inputs=[docs, document_retrieval, vectorstore, conversation], outputs=[conversation, vectorstore, document_retrieval, setup_output], concurrency_limit=10)
|
| 94 |
-
#process_save_btn.click(process_documents, inputs=[file_upload, save_location], outputs=setup_output)
|
| 95 |
-
#load_db_btn.click(load_existing_db, inputs=[db_path], outputs=setup_output)
|
| 96 |
|
| 97 |
# Step 3: Chat with your data
|
| 98 |
gr.Markdown("## 3️⃣ Chat with your document")
|
| 99 |
chatbot = gr.Chatbot(label="Chatbot", show_label=True, show_share_button=False, show_copy_button=True, likeable=True)
|
| 100 |
msg = gr.Textbox(label="Ask questions about your data", show_label=True, placeholder="Enter your message...")
|
| 101 |
clear_btn = gr.Button("Clear chat")
|
| 102 |
-
#show_sources = gr.Checkbox(label="Show sources", value=True)
|
| 103 |
sources_output = gr.Textbox(label="Sources", visible=False)
|
| 104 |
|
| 105 |
# Chatbot events
|
| 106 |
-
|
| 107 |
-
msg.submit(handle_userinput, inputs=[msg, conversation], outputs=[chatbot, msg], queue=False)
|
| 108 |
clear_btn.click(lambda: [None, ""], inputs=None, outputs=[chatbot, msg], queue=False)
|
| 109 |
-
#clear_btn.click(reset_conversation, inputs=[], outputs=[chatbot,msg])
|
| 110 |
-
#show_sources.change(lambda x: gr.update(visible=x), show_sources, sources_output)
|
| 111 |
|
| 112 |
if __name__ == "__main__":
|
| 113 |
demo.launch()
|
|
|
|
| 4 |
import gradio as gr
|
| 5 |
|
| 6 |
current_dir = os.path.dirname(os.path.abspath(__file__))
|
|
|
|
| 7 |
|
| 8 |
from src.document_retrieval import DocumentRetrieval
|
| 9 |
from utils.visual.env_utils import env_input_fields, initialize_env_variables, are_credentials_set, save_credentials
|
|
|
|
| 13 |
CONFIG_PATH = os.path.join(current_dir,'config.yaml')
|
| 14 |
PERSIST_DIRECTORY = os.path.join(current_dir,f"data/my-vector-db") # changed to current_dir
|
| 15 |
|
| 16 |
+
def handle_userinput(user_question, conversation, history):
|
|
|
|
|
|
|
|
|
|
| 17 |
if user_question:
|
| 18 |
try:
|
| 19 |
+
# Generate response
|
| 20 |
response = conversation.invoke({"question": user_question})
|
|
|
|
| 21 |
|
| 22 |
+
# Append user message and response to chat history
|
| 23 |
+
history = history + [(user_question, response["answer"])]
|
|
|
|
| 24 |
|
| 25 |
+
return history, ""
|
| 26 |
except Exception as e:
|
| 27 |
+
return f"An error occurred: {str(e)}", ""
|
| 28 |
else:
|
| 29 |
+
return history, ""
|
|
|
|
| 30 |
|
| 31 |
def process_documents(files, document_retrieval, vectorstore, conversation, save_location=None):
|
| 32 |
try:
|
|
|
|
| 43 |
except Exception as e:
|
| 44 |
return conversation, vectorstore, document_retrieval, f"An error occurred while processing: {str(e)}"
|
| 45 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 46 |
# Read config file
|
| 47 |
with open(CONFIG_PATH, 'r') as yaml_file:
|
| 48 |
config = yaml.safe_load(yaml_file)
|
|
|
|
| 81 |
|
| 82 |
# Preprocessing events
|
| 83 |
process_btn.click(process_documents, inputs=[docs, document_retrieval, vectorstore, conversation], outputs=[conversation, vectorstore, document_retrieval, setup_output], concurrency_limit=10)
|
|
|
|
|
|
|
| 84 |
|
| 85 |
# Step 3: Chat with your data
|
| 86 |
gr.Markdown("## 3️⃣ Chat with your document")
|
| 87 |
chatbot = gr.Chatbot(label="Chatbot", show_label=True, show_share_button=False, show_copy_button=True, likeable=True)
|
| 88 |
msg = gr.Textbox(label="Ask questions about your data", show_label=True, placeholder="Enter your message...")
|
| 89 |
clear_btn = gr.Button("Clear chat")
|
|
|
|
| 90 |
sources_output = gr.Textbox(label="Sources", visible=False)
|
| 91 |
|
| 92 |
# Chatbot events
|
| 93 |
+
msg.submit(handle_userinput, inputs=[msg, conversation, chatbot], outputs=[chatbot, msg], queue=False)
|
|
|
|
| 94 |
clear_btn.click(lambda: [None, ""], inputs=None, outputs=[chatbot, msg], queue=False)
|
|
|
|
|
|
|
| 95 |
|
| 96 |
if __name__ == "__main__":
|
| 97 |
demo.launch()
|