Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
|
@@ -247,7 +247,6 @@ tools = [
|
|
| 247 |
web_agent = AgentWorkflow.from_tools_or_functions(
|
| 248 |
tools,
|
| 249 |
llm=llm,
|
| 250 |
-
streaming=True,
|
| 251 |
system_prompt="""You are a helpful assistant with access to specialized tools for retrieving information about weather, and news.
|
| 252 |
AVAILABLE TOOLS:
|
| 253 |
1. current_weather - Get current weather conditions for a location
|
|
@@ -323,30 +322,34 @@ async def gradio_query(user_input, chat_history=None):
|
|
| 323 |
history.append({"role": "user", "content": user_input})
|
| 324 |
|
| 325 |
# Add initial assistant message
|
| 326 |
-
history.append({"role": "assistant", "content": ""})
|
| 327 |
yield history, history
|
| 328 |
|
| 329 |
-
#
|
| 330 |
-
|
|
|
|
| 331 |
|
| 332 |
-
#
|
| 333 |
-
|
|
|
|
|
|
|
| 334 |
|
| 335 |
-
|
| 336 |
-
|
| 337 |
-
|
| 338 |
-
# For streaming text chunks
|
| 339 |
-
full_response += delta.delta
|
| 340 |
-
elif hasattr(delta, 'response') and delta.response:
|
| 341 |
-
# For final response or tool outputs
|
| 342 |
-
if isinstance(delta.response, str):
|
| 343 |
-
full_response = delta.response
|
| 344 |
-
else:
|
| 345 |
-
full_response = str(delta.response)
|
| 346 |
|
| 347 |
-
# Update the
|
| 348 |
-
history[-1]["content"] =
|
|
|
|
|
|
|
| 349 |
yield history, history
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 350 |
|
| 351 |
# Build and launch Gradio app
|
| 352 |
grb = gr.Blocks()
|
|
@@ -363,7 +366,7 @@ with grb:
|
|
| 363 |
chatbot = gr.Chatbot(type="messages")
|
| 364 |
txt = gr.Textbox(placeholder="Ask me anything...", show_label=False)
|
| 365 |
|
| 366 |
-
#
|
| 367 |
txt.submit(
|
| 368 |
gradio_query,
|
| 369 |
inputs=[txt, chatbot],
|
|
@@ -375,7 +378,8 @@ with grb:
|
|
| 375 |
)
|
| 376 |
|
| 377 |
# Also update the button click handler
|
| 378 |
-
gr.Button("Send")
|
|
|
|
| 379 |
gradio_query,
|
| 380 |
[txt, chatbot],
|
| 381 |
[chatbot, chatbot]
|
|
|
|
| 247 |
web_agent = AgentWorkflow.from_tools_or_functions(
|
| 248 |
tools,
|
| 249 |
llm=llm,
|
|
|
|
| 250 |
system_prompt="""You are a helpful assistant with access to specialized tools for retrieving information about weather, and news.
|
| 251 |
AVAILABLE TOOLS:
|
| 252 |
1. current_weather - Get current weather conditions for a location
|
|
|
|
| 322 |
history.append({"role": "user", "content": user_input})
|
| 323 |
|
| 324 |
# Add initial assistant message
|
| 325 |
+
history.append({"role": "assistant", "content": "Thinking..."})
|
| 326 |
yield history, history
|
| 327 |
|
| 328 |
+
# Run the query (non-streaming at the agent level)
|
| 329 |
+
result = await run_query(user_input)
|
| 330 |
+
text = result.response if isinstance(result.response, str) else str(result.response)
|
| 331 |
|
| 332 |
+
# Simulate streaming by yielding partial responses
|
| 333 |
+
# This is a simple approach - we'll show the response word by word
|
| 334 |
+
words = text.split()
|
| 335 |
+
partial_response = ""
|
| 336 |
|
| 337 |
+
for i, word in enumerate(words):
|
| 338 |
+
# Add the word to the partial response
|
| 339 |
+
partial_response += word + " "
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 340 |
|
| 341 |
+
# Update the history with the partial response
|
| 342 |
+
history[-1]["content"] = partial_response
|
| 343 |
+
|
| 344 |
+
# Yield the updated history
|
| 345 |
yield history, history
|
| 346 |
+
|
| 347 |
+
# Add a small delay to simulate typing (can be adjusted)
|
| 348 |
+
await asyncio.sleep(0.05)
|
| 349 |
+
|
| 350 |
+
# Final update with complete response
|
| 351 |
+
history[-1]["content"] = text
|
| 352 |
+
yield history, history
|
| 353 |
|
| 354 |
# Build and launch Gradio app
|
| 355 |
grb = gr.Blocks()
|
|
|
|
| 366 |
chatbot = gr.Chatbot(type="messages")
|
| 367 |
txt = gr.Textbox(placeholder="Ask me anything...", show_label=False)
|
| 368 |
|
| 369 |
+
# Set up event handlers for streaming
|
| 370 |
txt.submit(
|
| 371 |
gradio_query,
|
| 372 |
inputs=[txt, chatbot],
|
|
|
|
| 378 |
)
|
| 379 |
|
| 380 |
# Also update the button click handler
|
| 381 |
+
send_btn = gr.Button("Send")
|
| 382 |
+
send_btn.click(
|
| 383 |
gradio_query,
|
| 384 |
[txt, chatbot],
|
| 385 |
[chatbot, chatbot]
|