feat: add error message
This commit is contained in:
parent
3c70ff4f8e
commit
88aefb6ad1
@ -1,8 +1,10 @@
|
||||
import { theme, ThemeConfig } from 'antd'
|
||||
|
||||
export const colorPrimary = '#00b96b'
|
||||
|
||||
export const AntdThemeConfig: ThemeConfig = {
|
||||
token: {
|
||||
colorPrimary: '#00b96b',
|
||||
colorPrimary,
|
||||
borderRadius: 5
|
||||
},
|
||||
algorithm: [theme.darkAlgorithm]
|
||||
|
||||
@ -8,6 +8,7 @@ import { CheckOutlined, PlusOutlined } from '@ant-design/icons'
|
||||
import { SystemAssistant } from '@renderer/types'
|
||||
import { getDefaultAssistant } from '@renderer/services/assistant'
|
||||
import { useAssistants } from '@renderer/hooks/useAssistant'
|
||||
import { colorPrimary } from '@renderer/config/antd'
|
||||
|
||||
const { Title } = Typography
|
||||
|
||||
@ -45,7 +46,7 @@ const AppsPage: FC = () => {
|
||||
<Col span={6} key={group + index} style={{ marginBottom: 16 }}>
|
||||
<AssistantCard>
|
||||
<AssistantHeader>
|
||||
<Title level={5} style={{ marginBottom: 0, color: '#00b96b' }}>
|
||||
<Title level={5} style={{ marginBottom: 0, color: colorPrimary }}>
|
||||
{assistant.name}
|
||||
</Title>
|
||||
{added && (
|
||||
|
||||
@ -94,11 +94,11 @@ const Messages: FC<Props> = ({ assistant, topic }) => {
|
||||
useEffect(() => hljs.highlightAll(), [messages, lastMessage])
|
||||
|
||||
useEffect(() => {
|
||||
messagesRef.current?.scrollIntoView({ behavior: 'smooth' })
|
||||
messagesRef.current?.scrollTo({ top: 100000, behavior: 'auto' })
|
||||
}, [messages])
|
||||
|
||||
return (
|
||||
<Container id="messages" ref={messagesRef}>
|
||||
<Container id="messages" key={assistant.id} ref={messagesRef}>
|
||||
{lastMessage && <MessageItem message={lastMessage} />}
|
||||
{reverse([...messages]).map((message) => (
|
||||
<MessageItem message={message} key={message.id} showMenu onDeleteMessage={onDeleteMessage} />
|
||||
|
||||
@ -1,4 +1,5 @@
|
||||
import { NavbarCenter } from '@renderer/components/app/Navbar'
|
||||
import { colorPrimary } from '@renderer/config/antd'
|
||||
import { useAssistant } from '@renderer/hooks/useAssistant'
|
||||
import { useProviders } from '@renderer/hooks/useProvider'
|
||||
import { Assistant } from '@renderer/types'
|
||||
@ -23,7 +24,7 @@ const Navigation: FC<Props> = ({ activeAssistant }) => {
|
||||
children: p.models.map((m) => ({
|
||||
key: m.id,
|
||||
label: m.name,
|
||||
style: m.id === model?.id ? { color: '#00b96b' } : undefined,
|
||||
style: m.id === model?.id ? { color: colorPrimary } : undefined,
|
||||
onClick: () => setModel(m)
|
||||
}))
|
||||
}))
|
||||
|
||||
@ -28,15 +28,6 @@ export async function fetchChatCompletion({ messages, topic, assistant, onRespon
|
||||
const defaultModel = getDefaultModel()
|
||||
const model = assistant.model || defaultModel
|
||||
|
||||
const stream = await openaiProvider.chat.completions.create({
|
||||
model: model.id,
|
||||
messages: [
|
||||
{ role: 'system', content: assistant.prompt },
|
||||
...takeRight(messages, 5).map((message) => ({ role: message.role, content: message.content }))
|
||||
],
|
||||
stream: true
|
||||
})
|
||||
|
||||
const _message: Message = {
|
||||
id: uuid(),
|
||||
role: 'assistant',
|
||||
@ -47,15 +38,28 @@ export async function fetchChatCompletion({ messages, topic, assistant, onRespon
|
||||
createdAt: dayjs().format('YYYY-MM-DD HH:mm:ss')
|
||||
}
|
||||
|
||||
let content = ''
|
||||
try {
|
||||
const stream = await openaiProvider.chat.completions.create({
|
||||
model: model.id,
|
||||
messages: [
|
||||
{ role: 'system', content: assistant.prompt },
|
||||
...takeRight(messages, 5).map((message) => ({ role: message.role, content: message.content }))
|
||||
],
|
||||
stream: true
|
||||
})
|
||||
|
||||
for await (const chunk of stream) {
|
||||
content = content + (chunk.choices[0]?.delta?.content || '')
|
||||
onResponse({ ..._message, content })
|
||||
let content = ''
|
||||
|
||||
for await (const chunk of stream) {
|
||||
content = content + (chunk.choices[0]?.delta?.content || '')
|
||||
onResponse({ ..._message, content })
|
||||
}
|
||||
|
||||
_message.content = content
|
||||
} catch (error: any) {
|
||||
_message.content = `Error: ${error.message}`
|
||||
}
|
||||
|
||||
_message.content = content
|
||||
|
||||
EventEmitter.emit(EVENT_NAMES.AI_CHAT_COMPLETION, _message)
|
||||
|
||||
return _message
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user