@@ -38,6 +38,7 @@ type AISearchResultEventParams = {
38
38
eventGroupId : string
39
39
couldNotAnswer ?: boolean
40
40
status : number
41
+ connectedEventId ?: string
41
42
}
42
43
43
44
export function AskAIResults ( {
@@ -67,11 +68,14 @@ export function AskAIResults({
67
68
message : string
68
69
sources : AIReference [ ]
69
70
aiCouldNotAnswer : boolean
71
+ connectedEventId ?: string
70
72
} > ( 'ai-query-cache' , 1000 , 7 )
71
73
72
74
const [ isCopied , setCopied ] = useClipboard ( message , { successDuration : 1400 } )
73
75
const [ feedbackSelected , setFeedbackSelected ] = useState < null | 'up' | 'down' > ( null )
74
76
77
+ const [ conversationId , setConversationId ] = useState < string > ( '' )
78
+
75
79
const handleAICannotAnswer = ( ) => {
76
80
setInitialLoading ( false )
77
81
setResponseLoading ( false )
@@ -129,6 +133,7 @@ export function AskAIResults({
129
133
eventGroupId : askAIEventGroupId . current ,
130
134
couldNotAnswer : cachedData . aiCouldNotAnswer ,
131
135
status : cachedData . aiCouldNotAnswer ? 400 : 200 ,
136
+ connectedEventId : cachedData . connectedEventId ,
132
137
} )
133
138
134
139
setTimeout ( ( ) => {
@@ -141,6 +146,7 @@ export function AskAIResults({
141
146
async function fetchData ( ) {
142
147
let messageBuffer = ''
143
148
let sourcesBuffer : AIReference [ ] = [ ]
149
+ let conversationIdBuffer = ''
144
150
145
151
try {
146
152
const response = await executeAISearch ( router , version , query , debug )
@@ -212,6 +218,9 @@ export function AskAIResults({
212
218
messageBuffer += parsedLine . text
213
219
setMessage ( messageBuffer )
214
220
}
221
+ } else if ( parsedLine . chunkType === 'CONVERSATION_ID' ) {
222
+ conversationIdBuffer = parsedLine . conversation_id
223
+ setConversationId ( parsedLine . conversation_id )
215
224
}
216
225
if ( ! isCancelled ) {
217
226
setAnnouncement ( 'Copilot Response Loading...' )
@@ -233,6 +242,7 @@ export function AskAIResults({
233
242
message : messageBuffer ,
234
243
sources : sourcesBuffer ,
235
244
aiCouldNotAnswer : false ,
245
+ connectedEventId : conversationIdBuffer ,
236
246
} ,
237
247
version ,
238
248
router . locale || 'en' ,
@@ -245,6 +255,7 @@ export function AskAIResults({
245
255
eventGroupId : askAIEventGroupId . current ,
246
256
couldNotAnswer : false ,
247
257
status : 200 ,
258
+ connectedEventId : conversationIdBuffer ,
248
259
} )
249
260
}
250
261
}
@@ -299,6 +310,7 @@ export function AskAIResults({
299
310
survey_vote : true ,
300
311
eventGroupKey : ASK_AI_EVENT_GROUP ,
301
312
eventGroupId : askAIEventGroupId . current ,
313
+ survey_connected_event_id : conversationId ,
302
314
} )
303
315
} }
304
316
> </ IconButton >
@@ -320,6 +332,7 @@ export function AskAIResults({
320
332
survey_vote : false ,
321
333
eventGroupKey : ASK_AI_EVENT_GROUP ,
322
334
eventGroupId : askAIEventGroupId . current ,
335
+ survey_connected_event_id : conversationId ,
323
336
} )
324
337
} }
325
338
> </ IconButton >
@@ -409,6 +422,7 @@ function sendAISearchResultEvent({
409
422
eventGroupId,
410
423
couldNotAnswer = false ,
411
424
status,
425
+ connectedEventId,
412
426
} : AISearchResultEventParams ) {
413
427
let searchResultLinksJson = '[]'
414
428
try {
@@ -418,12 +432,10 @@ function sendAISearchResultEvent({
418
432
}
419
433
sendEvent ( {
420
434
type : EventType . aiSearchResult ,
421
- // TODO: Remove PII so we can include the actual data
422
- ai_search_result_query : 'REDACTED' ,
423
- ai_search_result_response : 'REDACTED' ,
424
435
ai_search_result_links_json : searchResultLinksJson ,
425
436
ai_search_result_provided_answer : couldNotAnswer ? false : true ,
426
437
ai_search_result_response_status : status ,
438
+ ai_search_result_connected_event_id : connectedEventId ,
427
439
eventGroupKey : ASK_AI_EVENT_GROUP ,
428
440
eventGroupId : eventGroupId ,
429
441
} )
0 commit comments