IMHamza101 commited on
Commit
3b5fee0
·
verified ·
1 Parent(s): fb5fc71

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +18 -6
app.py CHANGED
@@ -229,20 +229,32 @@ def create_chat_function(agent):
229
  # Keep last 5 turns (10 messages) to balance context and token usage
230
  messages = []
231
 
232
- # Add recent history (last 5 exchanges)
233
  recent_history = history[-5:] if len(history) > 5 else history
234
- for user_msg, assistant_msg in recent_history:
235
- messages.append({"role": "user", "content": user_msg})
236
- if assistant_msg: # Sometimes assistant message might be None
237
- messages.append({"role": "assistant", "content": assistant_msg})
 
 
 
 
 
 
 
 
238
 
239
  # Add current message
240
  messages.append({"role": "user", "content": message})
241
 
 
 
 
242
  # Stream responses from agent
243
  results = []
244
  for step in agent.stream(
245
  {"messages": messages},
 
246
  stream_mode="values",
247
  ):
248
  last_message = step["messages"][-1]
@@ -257,7 +269,7 @@ def create_chat_function(agent):
257
  return "I apologize, but I couldn't generate a response. Please try rephrasing your question."
258
 
259
  except Exception as e:
260
- logger.error(f"Error in chat function: {e}")
261
  return f"An error occurred: {str(e)}. Please try again or contact support."
262
 
263
  return chat
 
229
  # Keep last 5 turns (10 messages) to balance context and token usage
230
  messages = []
231
 
232
+ # Add recent history (last 5 exchanges) - handle both list and dict formats
233
  recent_history = history[-5:] if len(history) > 5 else history
234
+
235
+ for item in recent_history:
236
+ # Handle different Gradio history formats
237
+ if isinstance(item, (list, tuple)) and len(item) >= 2:
238
+ user_msg, assistant_msg = item[0], item[1]
239
+ messages.append({"role": "user", "content": user_msg})
240
+ if assistant_msg: # Sometimes assistant message might be None
241
+ messages.append({"role": "assistant", "content": assistant_msg})
242
+ elif isinstance(item, dict):
243
+ # Some Gradio versions use dict format
244
+ if "role" in item and "content" in item:
245
+ messages.append(item)
246
 
247
  # Add current message
248
  messages.append({"role": "user", "content": message})
249
 
250
+ # Configuration with thread_id for checkpointer
251
+ config = {"configurable": {"thread_id": "default_thread"}}
252
+
253
  # Stream responses from agent
254
  results = []
255
  for step in agent.stream(
256
  {"messages": messages},
257
+ config=config,
258
  stream_mode="values",
259
  ):
260
  last_message = step["messages"][-1]
 
269
  return "I apologize, but I couldn't generate a response. Please try rephrasing your question."
270
 
271
  except Exception as e:
272
+ logger.error(f"Error in chat function: {e}", exc_info=True)
273
  return f"An error occurred: {str(e)}. Please try again or contact support."
274
 
275
  return chat