@@ -8,11 +8,13 @@ import ReactMarkdown from "react-markdown";
88import { useReportContext } from "./ReportContext" ;
99import { useStyles } from "./Styles" ;
1010import { ChatMessageDisplay , isTextContent , isImageContent } from "./Summary" ;
11+ import type { MetricType } from "./MetricCard" ;
1112
12- export const ConversationDetails = ( { messages, model, usage } : {
13+ export const ConversationDetails = ( { messages, model, usage, selectedMetric } : {
1314 messages : ChatMessageDisplay [ ] ;
1415 model ?: string ;
1516 usage ?: UsageDetails ;
17+ selectedMetric ?: MetricType | null ;
1618} ) => {
1719 const classes = useStyles ( ) ;
1820 const [ isExpanded , setIsExpanded ] = useState ( true ) ;
@@ -59,7 +61,27 @@ export const ConversationDetails = ({ messages, model, usage }: {
5961 return result ;
6062 } ;
6163
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+
6283 const messageGroups = groupMessages ( ) ;
84+ const contextGroups = getContextGroups ( ) ;
6385
6486 return (
6587 < div className = { classes . section } >
@@ -79,7 +101,7 @@ export const ConversationDetails = ({ messages, model, usage }: {
79101 ) ;
80102
81103 return (
82- < div key = { index } className = { messageRowClass } >
104+ < div key = { `msg- ${ index } ` } className = { messageRowClass } >
83105 < div className = { classes . messageParticipantName } > { group . participantName } </ div >
84106 < div className = { classes . messageBubble } >
85107 { group . contents . map ( ( content , contentIndex ) => (
@@ -91,6 +113,19 @@ export const ConversationDetails = ({ messages, model, usage }: {
91113 </ div >
92114 ) ;
93115 } ) }
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+ ) ) }
94129 </ div >
95130 ) }
96131 </ div >
0 commit comments