99import time
1010from datetime import datetime
1111from typing import List , Type
12+
13+ from django .db .models import QuerySet
1214from django .utils import timezone
1315from rest_framework import serializers
1416
1517from application .flow .i_step_node import NodeResult
1618from application .flow .step_node .start_node .i_start_node import IStarNode
19+ from application .models import ApplicationLongTermMemory
1720
1821
1922def get_default_global_variable (input_field_list : List ):
@@ -69,6 +72,12 @@ def execute(self, question, **kwargs) -> NodeResult:
6972 default_global_variable = get_default_global_variable (base_node .properties .get ('user_input_field_list' , []))
7073 default_api_global_variable = get_default_global_variable (base_node .properties .get ('api_input_field_list' , []))
7174 workflow_variable = {** default_global_variable , ** default_api_global_variable , ** get_global_variable (self )}
75+ chat_user_id = workflow_variable .get ('chat_user_id' )
76+ long_term_memory = None
77+ if chat_user_id :
78+ long_term_memory = QuerySet (ApplicationLongTermMemory ).filter (
79+ chat_user_id = chat_user_id , application_id = self .workflow_params .get ('application_id' )
80+ ).first ()
7281 """
7382 开始节点 初始化全局变量
7483 """
@@ -79,8 +88,8 @@ def execute(self, question, **kwargs) -> NodeResult:
7988 'audio' : self .workflow_manage .audio_list ,
8089 'video' : self .workflow_manage .video_list ,
8190 'other' : self .workflow_manage .other_list ,
82-
8391 }
92+ workflow_variable ['memory' ] = long_term_memory .memory if long_term_memory else ''
8493 self .workflow_manage .chat_context = self .workflow_manage .get_chat_info ().get_chat_variable ()
8594 return NodeResult (node_variable , workflow_variable )
8695
0 commit comments