@@ -10,14 +10,15 @@ import { LoadingMessage } from './general/LoadingMessage'
10
10
import { preprocessMath } from './util'
11
11
import 'katex/dist/katex.min.css'
12
12
import 'katex/dist/contrib/mhchem'
13
- import CopyToClipboardButton from './CopyToClipboardButton'
14
- import { t } from 'i18next'
13
+ import { ArrowRight } from '@mui/icons-material'
15
14
import FormatQuoteIcon from '@mui/icons-material/FormatQuote'
15
+ import { t } from 'i18next'
16
+ import { useId , useMemo } from 'react'
17
+ import { useTranslation } from 'react-i18next'
18
+ import type { AssistantMessage , ChatMessage , MessageGenerationInfo , ToolCallResultEvent , ToolCallStatusEvent , UserMessage } from '../../../shared/chat'
16
19
import useLocalStorageState from '../../hooks/useLocalStorageState'
20
+ import CopyToClipboardButton from './CopyToClipboardButton'
17
21
import { BlueButton } from './general/Buttons'
18
- import type { AssistantMessage , ChatMessage , MessageGenerationInfo , ToolCallResultEvent , ToolCallStatusEvent , UserMessage } from '../../../shared/chat'
19
- import { useId , useMemo } from 'react'
20
- import { ArrowRight } from '@mui/icons-material'
21
22
22
23
const UserMessageItem = ( { message } : { message : UserMessage } ) => (
23
24
< Box
@@ -104,12 +105,13 @@ const ToolResult = ({ toolResult, handleToolResult }: { toolResult: ToolCallResu
104
105
}
105
106
106
107
const AssistantMessageInfo = ( { message } : { message : AssistantMessage } ) => {
108
+ const { t } = useTranslation ( )
107
109
if ( ! message . generationInfo ) return null
108
110
109
111
const title =
110
112
message . generationInfo . promptInfo . type === 'saved'
111
113
? `${ message . generationInfo . promptInfo . name } (${ message . generationInfo . model } )`
112
- : `${ message . generationInfo . model } `
114
+ : `${ message . generationInfo . model } ` + ( message . generationInfo . promptInfo . systemMessage . length > 0 ? ` ( ${ t ( 'chat:customPrompt' ) } )` : '' )
113
115
114
116
return (
115
117
< Box sx = { { display : 'flex' , opacity : 0.7 , alignItems : 'center' } } >
@@ -246,7 +248,11 @@ const AssistantMessageItem = ({ message, setActiveToolResult }: { message: Assis
246
248
id = { codeBlockId }
247
249
copied = { String ( children ) }
248
250
iconColor = "#FFF"
249
- buttonStyle = { { position : 'absolute' , top : '8px' , right : '8px' } }
251
+ buttonStyle = { {
252
+ position : 'absolute' ,
253
+ top : '8px' ,
254
+ right : '8px' ,
255
+ } }
250
256
/>
251
257
</ Box >
252
258
</ Box >
@@ -336,13 +342,30 @@ export const Conversation = ({
336
342
{ isStreaming &&
337
343
messages . length > 0 &&
338
344
( completion . length > 0 ? (
339
- < MessageItem message = { { role : 'assistant' , content : completion , generationInfo } } setActiveToolResult = { setActiveToolResult } />
345
+ < MessageItem
346
+ message = { {
347
+ role : 'assistant' ,
348
+ content : completion ,
349
+ generationInfo,
350
+ } }
351
+ setActiveToolResult = { setActiveToolResult }
352
+ />
340
353
) : (
341
354
< LoadingMessage toolCalls = { toolCalls } />
342
355
) ) }
343
356
</ Box >
344
357
{ ! reminderSeen && ! isStreaming && messages . length > 15 && (
345
- < Paper variant = "outlined" sx = { { display : 'flex' , flexDirection : 'row' , gap : 2 , fontStyle : 'italic' , alignItems : 'center' , padding : 2 } } >
358
+ < Paper
359
+ variant = "outlined"
360
+ sx = { {
361
+ display : 'flex' ,
362
+ flexDirection : 'row' ,
363
+ gap : 2 ,
364
+ fontStyle : 'italic' ,
365
+ alignItems : 'center' ,
366
+ padding : 2 ,
367
+ } }
368
+ >
346
369
< Typography > { t ( 'chat:emptyReminder' ) } </ Typography >
347
370
< BlueButton sx = { { marginLeft : 'auto' } } onClick = { ( ) => setReminderSeen ( true ) } >
348
371
OK
0 commit comments