13
13
import time
14
14
import requests
15
15
16
+ def extract_event_info (event_emitter ) -> tuple [Optional [str ], Optional [str ]]:
17
+ if not event_emitter or not event_emitter .__closure__ :
18
+ return None , None
19
+ for cell in event_emitter .__closure__ :
20
+ if isinstance (request_info := cell .cell_contents , dict ):
21
+ chat_id = request_info .get ("chat_id" )
22
+ message_id = request_info .get ("message_id" )
23
+ return chat_id , message_id
24
+ return None , None
16
25
17
26
class Pipe :
18
27
class Valves (BaseModel ):
@@ -75,7 +84,7 @@ async def pipe(
75
84
await self .emit_status (
76
85
__event_emitter__ , "info" , "/Calling N8N Workflow..." , False
77
86
)
78
-
87
+ chat_id , _ = extract_event_info ( __event_emitter__ )
79
88
messages = body .get ("messages" , [])
80
89
81
90
# Verify a message is available
@@ -87,7 +96,7 @@ async def pipe(
87
96
"Authorization" : f"Bearer { self .valves .n8n_bearer_token } " ,
88
97
"Content-Type" : "application/json" ,
89
98
}
90
- payload = {"sessionId" : f"{ __user__ [ 'id' ] } - { messages [ 0 ][ 'content' ]. split ( 'Prompt: ' )[ - 1 ][: 100 ] } " }
99
+ payload = {"sessionId" : f"{ chat_id } " }
91
100
payload [self .valves .input_field ] = question
92
101
response = requests .post (
93
102
self .valves .n8n_url , json = payload , headers = headers
0 commit comments