mirror of
https://gitee.com/wanwujie/deer-flow
synced 2026-04-14 18:54:46 +08:00
* Update uv.lock to sync with pyproject.toml * fix: update Interrupt object attribute access for LangGraph 1.0+ (#730) The Interrupt class in LangGraph 1.0 no longer has the 'ns' attribute. This change updates _create_interrupt_event() to use the new 'id' attribute instead, with a fallback to thread_id for compatibility. Changes: - Replace event_data["__interrupt__"][0].ns[0] with interrupt.id - Use getattr() with fallback for backward compatibility - Update debug log message from 'ns=' to 'id=' - Add unit tests for _create_interrupt_event function * fix the unit test error and address review comment --------- Co-authored-by: Willem Jiang <143703838+willem-bd@users.noreply.github.com>
This commit is contained in:
@@ -308,13 +308,16 @@ def _create_event_stream_message(
|
||||
|
||||
def _create_interrupt_event(thread_id, event_data):
|
||||
"""Create interrupt event."""
|
||||
interrupt = event_data["__interrupt__"][0]
|
||||
# Use the 'id' attribute (LangGraph 1.0+) instead of deprecated 'ns[0]'
|
||||
interrupt_id = getattr(interrupt, "id", None) or thread_id
|
||||
return _make_event(
|
||||
"interrupt",
|
||||
{
|
||||
"thread_id": thread_id,
|
||||
"id": event_data["__interrupt__"][0].ns[0],
|
||||
"id": interrupt_id,
|
||||
"role": "assistant",
|
||||
"content": event_data["__interrupt__"][0].value,
|
||||
"content": interrupt.value,
|
||||
"finish_reason": "interrupt",
|
||||
"options": [
|
||||
{"text": "Edit plan", "value": "edit_plan"},
|
||||
@@ -461,7 +464,7 @@ async def _stream_graph_events(
|
||||
if "__interrupt__" in event_data:
|
||||
logger.debug(
|
||||
f"[{safe_thread_id}] Processing interrupt event: "
|
||||
f"ns={getattr(event_data['__interrupt__'][0], 'ns', 'unknown') if isinstance(event_data['__interrupt__'], (list, tuple)) and len(event_data['__interrupt__']) > 0 else 'unknown'}, "
|
||||
f"id={getattr(event_data['__interrupt__'][0], 'id', 'unknown') if isinstance(event_data['__interrupt__'], (list, tuple)) and len(event_data['__interrupt__']) > 0 else 'unknown'}, "
|
||||
f"value_len={len(getattr(event_data['__interrupt__'][0], 'value', '')) if isinstance(event_data['__interrupt__'], (list, tuple)) and len(event_data['__interrupt__']) > 0 and hasattr(event_data['__interrupt__'][0], 'value') and hasattr(event_data['__interrupt__'][0].value, '__len__') else 'unknown'}"
|
||||
)
|
||||
yield _create_interrupt_event(thread_id, event_data)
|
||||
|
||||
Reference in New Issue
Block a user