Spaces:
Sleeping
Sleeping
Update DocuChat.py
Browse files- DocuChat.py +15 -30
DocuChat.py
CHANGED
@@ -18,34 +18,21 @@ class LangchainConversation:
|
|
18 |
def __init__(self):
|
19 |
self.file_input = pn.widgets.FileInput(height=45)
|
20 |
self.openaikey = pn.widgets.PasswordInput(value="", placeholder="Enter your OpenAI API Key here...", height=45)
|
21 |
-
self.chatbox = pn.widgets.ChatBox(height=300, primary_name="User"
|
22 |
-
self.
|
23 |
-
self.send_button = pn.widgets.Button(name="Send", width=0)
|
24 |
-
self.send_button.on_click(self._chat)
|
25 |
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
user_message = self.user_input.value
|
39 |
-
if user_message:
|
40 |
-
self.chatbox.append({"User": user_message})
|
41 |
-
os.environ["OPENAI_API_KEY"] = self.openaikey.value
|
42 |
-
if self.file_input.value is not None:
|
43 |
-
self.file_input.save("/.cache/temp.pdf")
|
44 |
-
prompt_text = self.remove_empty_lines(user_message)
|
45 |
-
if prompt_text:
|
46 |
-
result = self.qa(file="/.cache/temp.pdf", query=prompt_text)
|
47 |
-
self.chatbox.append({"AI": result})
|
48 |
-
self.user_input.value = "" # Clear the user input field
|
49 |
|
50 |
@staticmethod
|
51 |
def remove_empty_lines(text):
|
@@ -71,9 +58,7 @@ class LangchainConversation:
|
|
71 |
AI-Powered Query Engine for Document Insights (powered by LangChain & OpenAI)
|
72 |
...
|
73 |
"""),
|
74 |
-
pn.Row(self.file_input, self.openaikey),
|
75 |
-
self.chatbox,
|
76 |
-
pn.Row(self.user_input, self.send_button)
|
77 |
).servable()
|
78 |
return layout
|
79 |
|
|
|
18 |
def __init__(self):
|
19 |
self.file_input = pn.widgets.FileInput(height=45)
|
20 |
self.openaikey = pn.widgets.PasswordInput(value="", placeholder="Enter your OpenAI API Key here...", height=45)
|
21 |
+
self.chatbox = pn.widgets.ChatBox(height=300, primary_name="User")
|
22 |
+
self.chatbox.param.watch(self._chat, 'value')
|
|
|
|
|
23 |
|
24 |
+
def _chat(self, event):
|
25 |
+
user_message = event.new[-1]
|
26 |
+
input = user_message.get("User")
|
27 |
+
if input is None:
|
28 |
+
return
|
29 |
+
os.environ["OPENAI_API_KEY"] = self.openaikey.value
|
30 |
+
if self.file_input.value is not None:
|
31 |
+
self.file_input.save("/.cache/temp.pdf")
|
32 |
+
prompt_text = self.remove_empty_lines(input)
|
33 |
+
if prompt_text:
|
34 |
+
result = self.qa(file="/.cache/temp.pdf", query=prompt_text)
|
35 |
+
self.chatbox.append({"AI": result})
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
36 |
|
37 |
@staticmethod
|
38 |
def remove_empty_lines(text):
|
|
|
58 |
AI-Powered Query Engine for Document Insights (powered by LangChain & OpenAI)
|
59 |
...
|
60 |
"""),
|
61 |
+
pn.Row(self.file_input, self.openaikey), self.chatbox
|
|
|
|
|
62 |
).servable()
|
63 |
return layout
|
64 |
|