Spaces:
Paused
Paused
try to reinitialize the conversition for each new session
Browse files- Gradio_UI.py +18 -1
Gradio_UI.py
CHANGED
@@ -188,7 +188,21 @@ class GradioUI:
|
|
188 |
if self.file_upload_folder is not None:
|
189 |
if not os.path.exists(file_upload_folder):
|
190 |
os.mkdir(file_upload_folder)
|
191 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
192 |
def interact_with_agent(self, prompt, messages):
|
193 |
import gradio as gr
|
194 |
|
@@ -262,6 +276,7 @@ class GradioUI:
|
|
262 |
import gradio as gr
|
263 |
|
264 |
with gr.Blocks(fill_height=True) as demo:
|
|
|
265 |
gr.Label("Wecome to my first smolagent! You can use tools to get the time in a location, visit a URL page, search with DuckDuckGo.")
|
266 |
stored_messages = gr.State([])
|
267 |
file_uploads_log = gr.State([])
|
@@ -292,6 +307,8 @@ class GradioUI:
|
|
292 |
).then(self.interact_with_agent, [stored_messages, chatbot], [chatbot])
|
293 |
|
294 |
demo.launch(debug=True, share=True, **kwargs)
|
|
|
|
|
295 |
|
296 |
|
297 |
__all__ = ["stream_to_gradio", "GradioUI"]
|
|
|
188 |
if self.file_upload_folder is not None:
|
189 |
if not os.path.exists(file_upload_folder):
|
190 |
os.mkdir(file_upload_folder)
|
191 |
+
# see https://www.gradio.app/guides/state-in-blocks#session-state
|
192 |
+
# for non deep copyable object / to distinguish data per conversation
|
193 |
+
all_users_stored_messages = {}
|
194 |
+
all_users_file_uploads_log = {}
|
195 |
+
|
196 |
+
def initialize_session_data(self, request: gr.Request):
|
197 |
+
all_users_stored_messages[request.session_hash] = gr.State([])
|
198 |
+
all_users_file_uploads_log[request.session_hash] = gr.State([])
|
199 |
+
return "Session initialized!"
|
200 |
+
|
201 |
+
def cleanup_session_data(self, request: gr.Request):
|
202 |
+
if request.session_hash in instances:
|
203 |
+
del all_users_stored_messages[request.session_hash]
|
204 |
+
del all_users_file_uploads_log[request.session_hash]
|
205 |
+
|
206 |
def interact_with_agent(self, prompt, messages):
|
207 |
import gradio as gr
|
208 |
|
|
|
276 |
import gradio as gr
|
277 |
|
278 |
with gr.Blocks(fill_height=True) as demo:
|
279 |
+
# user_state = gr.State(random.random) # to avoid sharing gr.State across users (that uses all the users conversations for any user prompts)
|
280 |
gr.Label("Wecome to my first smolagent! You can use tools to get the time in a location, visit a URL page, search with DuckDuckGo.")
|
281 |
stored_messages = gr.State([])
|
282 |
file_uploads_log = gr.State([])
|
|
|
307 |
).then(self.interact_with_agent, [stored_messages, chatbot], [chatbot])
|
308 |
|
309 |
demo.launch(debug=True, share=True, **kwargs)
|
310 |
+
# Initialize instance when page loads
|
311 |
+
demo.load(random.random, inputs=None, outputs=None)
|
312 |
|
313 |
|
314 |
__all__ = ["stream_to_gradio", "GradioUI"]
|