33 Dialog ,
44 Divider ,
55 H3 ,
6- H5 ,
76 Icon ,
87 IconName ,
98 Intent ,
@@ -15,7 +14,7 @@ import { IconNames } from '@blueprintjs/icons';
1514import React , { useEffect , useMemo , useState } from 'react' ;
1615import ReactMde , { ReactMdeProps } from 'react-mde' ;
1716import { useDispatch } from 'react-redux' ;
18- import { AutogradingResult } from 'src/commons/assessment/AssessmentTypes' ;
17+ import { AutogradingResult , LLMPrompt } from 'src/commons/assessment/AssessmentTypes' ;
1918import { useTokens } from 'src/commons/utils/Hooks' ;
2019
2120import SessionActions from '../../../../commons/application/actions/SessionActions' ;
@@ -41,6 +40,7 @@ type GradingSaveFunction = (
4140) => void ;
4241
4342type Props = {
43+ prompts : LLMPrompt [ ] ;
4444 answer_id : number ;
4545 solution : number | string | null ;
4646 questionId : number ;
@@ -52,12 +52,8 @@ type Props = {
5252 studentUsernames : string [ ] ;
5353 is_llm : boolean ;
5454 comments : string ;
55- llm_course_level_prompt : string | null ;
56- llm_assessment_prompt : string | null ;
57- llm_question_prompt : string | null ;
5855 autoGradingStatus : string ;
5956 autoGradingResults : AutogradingResult [ ] ;
60- questionContent : string ;
6157 studentAnswer : string | null ;
6258 graderName ?: string ;
6359 gradedAt ?: string ;
@@ -261,24 +257,11 @@ const GradingEditor: React.FC<Props> = props => {
261257
262258 const copyComposedPromptToClipboard = ( ) => {
263259 navigator . clipboard . writeText (
264- `${ props . llm_course_level_prompt || '' } \n
265- ${ props . llm_assessment_prompt || '' } \n
266- ${ props . llm_question_prompt || '' } \n
267- **Question:** \n
268- \`\`\`\n
269- ${ props . questionContent } \n
270- \`\`\`\n\n
271- **Model Solution:** \n
272- \`\`\`\n
273- ${ props . solution || 'N/A' } \n
274- \`\`\`\n\n
275- **Autograding Status:** ${ props . autoGradingStatus } \n
276- **Autograding Results:** ${ props . autoGradingResults ? JSON . stringify ( props . autoGradingResults ) : 'N/A' } \n
277- The student answer will be given below as part of the User Prompt.\n
278- **Student Answer:** \n
279- \`\`\`\n
280- ${ props . studentAnswer } \n
281- \`\`\``
260+ props . prompts
261+ . map ( prompt => {
262+ return `**${ prompt . role } Prompt**\n\n${ prompt . content } ` ;
263+ } )
264+ . join ( '\n\n' )
282265 ) ;
283266 showSuccessMessage ( 'Composed prompt copied to clipboard!' , 2000 ) ;
284267 } ;
@@ -393,43 +376,15 @@ ${props.studentAnswer}\n
393376 < Icon icon = { IconNames . Clipboard } />
394377 </ Button >
395378 </ div >
396- < H3 > System Prompt</ H3 >
397- < Divider />
398- < H5 > Course Level Prompt</ H5 >
399- { props . llm_course_level_prompt || '' }
400- < br />
401- < H5 > Assessment Level Prompt</ H5 >
402- { props . llm_assessment_prompt || '' }
403- < br />
404- < H5 > Question Level Prompt</ H5 >
405- { props . llm_question_prompt || '' }
406- < H5 > Generic Info From Question</ H5 >
407- **Question:** < br />
408- ```
409- < br />
410- { props . questionContent }
411- < br />
412- ```
413- < br />
414- < br />
415- **Model Solution:** < br />
416- ``` < br />
417- { props . solution || 'N/A' }
418- < br />
419- ```
420- < br />
421- < br />
422- **Autograding Status:** { props . autoGradingStatus } < br />
423- **Autograding Results:**{ ' ' }
424- { props . autoGradingResults ? JSON . stringify ( props . autoGradingResults ) : 'N/A' } < br />
425- The student answer will be given below as part of the User Prompt.
426- < H3 > User Prompt</ H3 >
427- < Divider />
428- **Student Answer:** < br />
429- ``` < br />
430- { props . studentAnswer }
431- < br />
432- ``` < br />
379+ { props . prompts . map ( prompt => {
380+ return (
381+ < >
382+ < H3 > { prompt . role } Level Prompt</ H3 >
383+ < Divider />
384+ { prompt . content }
385+ </ >
386+ ) ;
387+ } ) }
433388 </ div >
434389 </ Dialog >
435390 < div style = { { marginBottom : '10px' } } >
0 commit comments