@@ -618,89 +618,58 @@ def test_graph_state(mock_client):
618618 assert isinstance (result ["messages" ][2 ], AIMessage )
619619 assert result ["messages" ][2 ].content == "It's a type of greeble."
620620
621- assert mock_client .capture .call_count == 12
621+ assert mock_client .capture .call_count == 6
622622 calls = [call [1 ] for call in mock_client .capture .call_args_list ]
623623
624- trace_args = calls [11 ]
625- trace_props = calls [11 ]["properties" ]
624+ # The trace event is captured at the end
625+ trace_args = calls [- 1 ]
626+ trace_props = calls [- 1 ]["properties" ]
626627
627628 # Events are captured in the reverse order.
628629 # Check all trace_ids
629630 for call in calls :
630631 assert call ["properties" ]["$ai_trace_id" ] == trace_props ["$ai_trace_id" ]
631632
632- # First span, write the state
633+ # 1. Span, finish initialization
634+ second_state = {
635+ "messages" : [HumanMessage (content = "What's a bar?" ), AIMessage (content = "Let's explore bar." )],
636+ "xyz" : "abc" ,
637+ }
638+
639+
640+ # 1. Span - the fake_plain node, which doesn't do anything
633641 assert calls [0 ]["event" ] == "$ai_span"
634- assert calls [0 ]["properties" ]["$ai_parent_id" ] == calls [ 2 ][ "properties" ][ "$ai_span_id " ]
642+ assert calls [0 ]["properties" ]["$ai_parent_id" ] == trace_props [ "$ai_trace_id " ]
635643 assert "$ai_span_id" in calls [0 ]["properties" ]
644+ assert calls [0 ]["properties" ]["$ai_span_name" ] == "fake_plain"
636645 assert calls [0 ]["properties" ]["$ai_input_state" ] == initial_state
637- assert calls [0 ]["properties" ]["$ai_output_state" ] == initial_state
646+ assert calls [0 ]["properties" ]["$ai_output_state" ] == second_state
638647
639- # Second span, set the START node
648+ # 2. Span - the ChatPromptTemplate within fake_llm's FakeMessagesListChatModel
640649 assert calls [1 ]["event" ] == "$ai_span"
641- assert calls [1 ]["properties" ]["$ai_parent_id" ] == calls [2 ]["properties" ]["$ai_span_id" ]
650+ assert calls [1 ]["properties" ]["$ai_parent_id" ] == calls [3 ]["properties" ]["$ai_span_id" ]
642651 assert "$ai_span_id" in calls [1 ]["properties" ]
643- assert calls [1 ]["properties" ]["$ai_input_state" ] == initial_state
644- assert calls [1 ]["properties" ]["$ai_output_state" ] == initial_state
652+ assert calls [1 ]["properties" ]["$ai_span_name" ] == "ChatPromptTemplate"
645653
646- # Third span, finish initialization
647- assert calls [2 ]["event" ] == "$ai_span"
654+ # 3. Generation - the FakeMessagesListChatModel within fake_llm's RunnableSequence
655+ assert calls [2 ]["event" ] == "$ai_generation"
656+ assert calls [2 ]["properties" ]["$ai_parent_id" ] == calls [3 ]["properties" ]["$ai_span_id" ]
648657 assert "$ai_span_id" in calls [2 ]["properties" ]
649- assert calls [2 ]["properties" ]["$ai_span_name" ] == START
650- assert calls [2 ]["properties" ]["$ai_parent_id" ] == trace_props ["$ai_trace_id" ]
651- assert calls [2 ]["properties" ]["$ai_input_state" ] == initial_state
652- assert calls [2 ]["properties" ]["$ai_output_state" ] == initial_state
658+ assert calls [2 ]["properties" ]["$ai_span_name" ] == "FakeMessagesListChatModel"
653659
654- # Fourth span, save the value of fake_plain during its execution
655- second_state = {
656- "messages" : [HumanMessage (content = "What's a bar?" ), AIMessage (content = "Let's explore bar." )],
657- "xyz" : "abc" ,
658- }
659-
660- assert calls [4 ]["event" ] == "$ai_span"
661- assert calls [4 ]["properties" ]["$ai_parent_id" ] == calls [5 ]["properties" ]["$ai_span_id" ]
660+ # 4. Span - RunnableSequence within fake_llm
661+ assert calls [3 ]["event" ] == "$ai_span"
662+ assert calls [3 ]["properties" ]["$ai_parent_id" ] == calls [4 ]["properties" ]["$ai_span_id" ]
662663 assert "$ai_span_id" in calls [3 ]["properties" ]
663- assert calls [4 ]["properties" ]["$ai_input_state" ] == second_state
664- assert calls [4 ]["properties" ]["$ai_output_state" ] == second_state
664+ assert calls [3 ]["properties" ]["$ai_span_name" ] == "RunnableSequence"
665665
666- # Fifth span, run the fake_plain node
667- assert calls [5 ]["event" ] == "$ai_span"
666+ # 5. Span - the fake_llm node
667+ assert calls [4 ]["event" ] == "$ai_span"
668+ assert calls [4 ]["properties" ]["$ai_parent_id" ] == trace_props ["$ai_trace_id" ]
668669 assert "$ai_span_id" in calls [4 ]["properties" ]
669- assert calls [5 ]["properties" ]["$ai_span_name" ] == "fake_plain"
670- assert calls [5 ]["properties" ]["$ai_parent_id" ] == trace_props ["$ai_trace_id" ]
671- assert calls [5 ]["properties" ]["$ai_input_state" ] == initial_state
672- assert calls [5 ]["properties" ]["$ai_output_state" ] == second_state
673-
674- # Sixth span, chat prompt template
675- assert calls [6 ]["event" ] == "$ai_span"
676- assert calls [6 ]["properties" ]["$ai_parent_id" ] == calls [8 ]["properties" ]["$ai_span_id" ]
677- assert "$ai_span_id" in calls [6 ]["properties" ]
678- assert calls [6 ]["properties" ]["$ai_span_name" ] == "ChatPromptTemplate"
679-
680- # 7. Generation, fake_llm
681- assert calls [7 ]["event" ] == "$ai_generation"
682- assert calls [7 ]["properties" ]["$ai_parent_id" ] == calls [8 ]["properties" ]["$ai_span_id" ]
683- assert "$ai_span_id" in calls [7 ]["properties" ]
684- assert calls [7 ]["properties" ]["$ai_span_name" ] == "FakeMessagesListChatModel"
685-
686- # 8. Span, RunnableSequence
687- assert calls [8 ]["event" ] == "$ai_span"
688- assert calls [8 ]["properties" ]["$ai_parent_id" ] == calls [10 ]["properties" ]["$ai_span_id" ]
689- assert "$ai_span_id" in calls [8 ]["properties" ]
690- assert calls [8 ]["properties" ]["$ai_span_name" ] == "RunnableSequence"
691-
692- # 9. Span, fake_llm write
693- assert calls [9 ]["event" ] == "$ai_span"
694- assert calls [9 ]["properties" ]["$ai_parent_id" ] == calls [10 ]["properties" ]["$ai_span_id" ]
695- assert "$ai_span_id" in calls [9 ]["properties" ]
696-
697- # 10. Span, fake_llm node
698- assert calls [10 ]["event" ] == "$ai_span"
699- assert calls [10 ]["properties" ]["$ai_parent_id" ] == trace_props ["$ai_trace_id" ]
700- assert "$ai_span_id" in calls [10 ]["properties" ]
701- assert calls [10 ]["properties" ]["$ai_span_name" ] == "fake_llm"
702-
703- # 11. Trace
670+ assert calls [4 ]["properties" ]["$ai_span_name" ] == "fake_llm"
671+
672+ # 6. Trace
704673 assert trace_args ["event" ] == "$ai_trace"
705674 assert trace_props ["$ai_span_name" ] == "LangGraph"
706675
0 commit comments