fix: should not attach error messages to the completion request (#2258)

This commit is contained in:
Louis 2024-03-06 16:15:46 +07:00 committed by GitHub
parent 9dc4ede692
commit 7556430693
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
9 changed files with 31 additions and 16 deletions

View File

@ -43,7 +43,7 @@ export function requestInference(
if (!response.ok) {
const data = await response.json()
const error = {
message: data.error?.message ?? 'Error occurred.',
message: data.error?.message ?? 'An error occurred.',
code: data.error?.code ?? ErrorCode.Unknown,
}
subscriber.error(error)

View File

@ -210,7 +210,7 @@ export default class JanInferenceOpenAIExtension extends BaseExtension {
const messageContent: ThreadContent = {
type: ContentType.Text,
text: {
value: 'Error occurred: ' + err.message,
value: 'An error occurred. ' + err.message,
annotations: [],
},
}

View File

@ -205,7 +205,7 @@ export default class JanInferenceTritonTrtLLMExtension extends BaseExtension {
const messageContent: ThreadContent = {
type: ContentType.Text,
text: {
value: 'Error occurred: ' + err.message,
value: 'An error occurred. ' + err.message,
annotations: [],
},
}

View File

@ -110,7 +110,10 @@ export const deleteMessageAtom = atom(null, (get, set, id: string) => {
}
const threadId = get(getActiveThreadIdAtom)
if (threadId) {
newData[threadId] = newData[threadId].filter((e) => e.id !== id)
// Should also delete error messages to clear out the error state
newData[threadId] = newData[threadId].filter(
(e) => e.id !== id && e.status !== MessageStatus.Error
)
set(chatMessages, newData)
}
})

View File

@ -109,8 +109,9 @@ export default function useSendChatMessage() {
currentMessages
.filter(
(e) =>
currentMessage.role === ChatCompletionRole.User ||
e.id !== currentMessage.id
(currentMessage.role === ChatCompletionRole.User ||
e.id !== currentMessage.id) &&
e.status !== MessageStatus.Error
)
.map<ChatCompletionMessage>((msg) => ({
role: msg.role,
@ -198,6 +199,7 @@ export default function useSendChatMessage() {
})
.concat(
currentMessages
.filter((e) => e.status !== MessageStatus.Error)
.map<ChatCompletionMessage>((msg) => ({
role: msg.role,
content: msg.content[0]?.text.value ?? '',

View File

@ -27,7 +27,10 @@ const ErrorMessage = ({ message }: { message: ThreadMessage }) => {
resendChatMessage(message)
}
const errorTitle = getErrorTitle(message.error_code ?? ErrorCode.Unknown)
const errorTitle = getErrorTitle(
message.error_code ?? ErrorCode.Unknown,
message.content[0]?.text?.value
)
return (
<div className="mt-10">

View File

@ -39,11 +39,14 @@ const MessageToolbar = ({ message }: { message: ThreadMessage }) => {
const onDeleteClick = async () => {
deleteMessage(message.id ?? '')
if (thread) {
// Should also delete error messages to clear out the error state
await extensionManager
.get<ConversationalExtension>(ExtensionTypeEnum.Conversational)
?.writeMessages(
thread.id,
messages.filter((msg) => msg.id !== message.id)
messages.filter(
(msg) => msg.id !== message.id && msg.status !== MessageStatus.Error
)
)
}
}

View File

@ -21,7 +21,7 @@ const ModalErrorSetDestGlobal = () => {
<ModalPortal />
<ModalContent>
<ModalHeader>
<ModalTitle>Error Occurred</ModalTitle>
<ModalTitle>An Error Occurred</ModalTitle>
</ModalHeader>
<p className="text-muted-foreground">
Oops! Something went wrong. Jan data folder remains the same. Please

View File

@ -1,11 +1,15 @@
import { ErrorCode } from '@janhq/core'
export const getErrorTitle = (errorCode: ErrorCode) => {
if (errorCode === ErrorCode.Unknown) {
return 'Apologies, somethings amiss!'
}
if (errorCode === ErrorCode.InvalidApiKey) {
return 'Invalid API key. Please check your API key and try again.'
export const getErrorTitle = (
errorCode: ErrorCode,
errorMessage: string | undefined
) => {
switch (errorCode) {
case ErrorCode.Unknown:
return 'Apologies, somethings amiss!'
case ErrorCode.InvalidApiKey:
return 'Invalid API key. Please check your API key and try again.'
default:
return errorMessage
}
}