@@ -8,11 +8,13 @@ import ReactMarkdown from "react-markdown";
8
8
import { useReportContext } from "./ReportContext" ;
9
9
import { useStyles } from "./Styles" ;
10
10
import { ChatMessageDisplay , isTextContent , isImageContent } from "./Summary" ;
11
+ import type { MetricType } from "./MetricCard" ;
11
12
12
- export const ConversationDetails = ( { messages, model, usage } : {
13
+ export const ConversationDetails = ( { messages, model, usage, selectedMetric } : {
13
14
messages : ChatMessageDisplay [ ] ;
14
15
model ?: string ;
15
16
usage ?: UsageDetails ;
17
+ selectedMetric ?: MetricType | null ;
16
18
} ) => {
17
19
const classes = useStyles ( ) ;
18
20
const [ isExpanded , setIsExpanded ] = useState ( true ) ;
@@ -59,7 +61,27 @@ export const ConversationDetails = ({ messages, model, usage }: {
59
61
return result ;
60
62
} ;
61
63
64
+ const getContextGroups = ( ) => {
65
+ if ( ! selectedMetric || ! selectedMetric . context ) {
66
+ return [ ] ;
67
+ }
68
+
69
+ const contextGroups : { key : string , contents : AIContent [ ] } [ ] = [ ] ;
70
+
71
+ for ( const [ key , contents ] of Object . entries ( selectedMetric . context ) ) {
72
+ if ( contents && contents . length > 0 ) {
73
+ contextGroups . push ( {
74
+ key : key . toLowerCase ( ) ,
75
+ contents : contents
76
+ } ) ;
77
+ }
78
+ }
79
+
80
+ return contextGroups ;
81
+ } ;
82
+
62
83
const messageGroups = groupMessages ( ) ;
84
+ const contextGroups = getContextGroups ( ) ;
63
85
64
86
return (
65
87
< div className = { classes . section } >
@@ -79,7 +101,7 @@ export const ConversationDetails = ({ messages, model, usage }: {
79
101
) ;
80
102
81
103
return (
82
- < div key = { index } className = { messageRowClass } >
104
+ < div key = { `msg- ${ index } ` } className = { messageRowClass } >
83
105
< div className = { classes . messageParticipantName } > { group . participantName } </ div >
84
106
< div className = { classes . messageBubble } >
85
107
{ group . contents . map ( ( content , contentIndex ) => (
@@ -91,6 +113,19 @@ export const ConversationDetails = ({ messages, model, usage }: {
91
113
</ div >
92
114
) ;
93
115
} ) }
116
+
117
+ { contextGroups . map ( ( group , index ) => (
118
+ < div key = { `context-${ index } ` } className = { mergeClasses ( classes . messageRow , classes . userMessageRow ) } >
119
+ < div className = { classes . messageParticipantName } > { `supplied evaluation context (${ group . key } )` } </ div >
120
+ < div className = { classes . contextBubble } >
121
+ { group . contents . map ( ( content , contentIndex ) => (
122
+ < div key = { contentIndex } >
123
+ { renderContent ( content ) }
124
+ </ div >
125
+ ) ) }
126
+ </ div >
127
+ </ div >
128
+ ) ) }
94
129
</ div >
95
130
) }
96
131
</ div >
0 commit comments