Spaces:
Runtime error
Runtime error
File size: 4,519 Bytes
b73e690 adabb02 b73e690 20cd498 adabb02 20cd498 b73e690 adabb02 20cd498 b73e690 adabb02 b73e690 adabb02 b73e690 adabb02 b73e690 20cd498 b73e690 adabb02 20cd498 adabb02 20cd498 |
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 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 |
import time
import uuid
import pandas as pd
import gradio as gr
from llama_index import GPTSimpleVectorIndex, MockLLMPredictor, ServiceContext
title = "Confidential forensics tool with ChatGPT"
examples = ["Who is Phillip Allen?", "What the project in Austin is about?", "Give me more details about the real estate project"]
llm_predictor = MockLLMPredictor()
service_context_mock = ServiceContext.from_defaults(llm_predictor=llm_predictor)
index = GPTSimpleVectorIndex.load_from_disk('email.json')
docs_arr = []
for doc in index.docstore.docs:
docs_arr.append(doc)
dat_fr = pd.DataFrame({"Documents loaded": docs_arr})
def respond_upload(btn_upload, message, chat_history):
time.sleep(2)
message = "***File uploaded***"
bot_message = "Your document has been uploaded and will be accounted for your queries."
chat_history.append((message, bot_message))
return btn_upload, "", chat_history
def respond2(message, chat_history, box, btn):
if len(message.strip()) < 1:
message = "***Empty***"
bot_message = "Oops, it looks like your query was not valid. Please make sure you typed something in your text box and then try again."
else:
try:
bot_message = str(index.query(message)).strip()
except:
bot_message = "An error occured when handling your query, please try again."
chat_history.append((message, bot_message))
return message, chat_history, box
def respond(message, chat_history):
if len(message.strip()) < 1:
message = "***Empty***"
bot_message = "Oops, it looks like your query was not valid. Please make sure you typed something in your text box and then try again."
else:
try:
bot_message = str(index.query(message)).strip()
except:
bot_message = "An error occured when handling your query, please try again."
chat_history.append((message, bot_message))
return "", chat_history
def find_doc(opt, msg2):
message = ""
if len(msg2.strip()) < 1:
message = "Oops, it looks like your query was not valid. Please make sure you typed something in your text box and then try again."
else:
try:
resp = index.query(msg2, service_context=service_context_mock)
for key, item in resp.extra_info.items():
message += f"Document: {key}\nExtra details:\n"
for sub_key, sub_item in item.items():
message += f"---- {sub_key}: {sub_item}"
except Exception as e:
message = "An error occured when handling your query, please try again."
print(e)
return message, ""
with gr.Blocks(title=title) as demo:
gr.Markdown(
"""
# """ + title + """
...
""")
dat = gr.Dataframe(
value=dat_fr
)
gr.Markdown(
"""
## Chatbot
""")
chatbot = gr.Chatbot().style(height=400)
with gr.Row():
with gr.Column(scale=0.70):
msg = gr.Textbox(
show_label=False,
placeholder="Enter text and press enter, or click on Send.",
).style(container=False)
with gr.Column(scale=0.15, min_width=0):
btn_send = gr.Button("Send your query")
with gr.Column(scale=0.15, min_width=0):
btn_upload = gr.UploadButton("Upload a new document...", file_types=["text"])
with gr.Row():
gr.Markdown(
"""
Example of queries
""")
for ex in examples:
btn = gr.Button(ex)
btn.click(respond2, [btn, chatbot, msg], [btn, chatbot, msg])
msg.submit(respond, [msg, chatbot], [msg, chatbot])
btn_send.click(respond, [msg, chatbot], [msg, chatbot])
btn_upload.upload(respond_upload, [btn_upload, msg, chatbot], [btn_upload, msg, chatbot])
gr.Markdown(
"""
## Search the matching document
""")
opt = gr.Textbox(
show_label=False,
placeholder="The document matching with your query will be shown here.",
interactive=False,
lines=8
)
with gr.Row():
with gr.Column(scale=0.85):
msg2 = gr.Textbox(
show_label=False,
placeholder="Enter text and press enter, or click on Send.",
).style(container=False)
with gr.Column(scale=0.15, min_width=0):
btn_send2 = gr.Button("Send your query")
btn_send2.click(find_doc, [opt, msg2], [opt, msg2])
if __name__ == "__main__":
demo.launch() |