fix: should not attach error messages to the completion request (#2258)
This commit is contained in:
parent
9dc4ede692
commit
7556430693
@ -43,7 +43,7 @@ export function requestInference(
|
|||||||
if (!response.ok) {
|
if (!response.ok) {
|
||||||
const data = await response.json()
|
const data = await response.json()
|
||||||
const error = {
|
const error = {
|
||||||
message: data.error?.message ?? 'Error occurred.',
|
message: data.error?.message ?? 'An error occurred.',
|
||||||
code: data.error?.code ?? ErrorCode.Unknown,
|
code: data.error?.code ?? ErrorCode.Unknown,
|
||||||
}
|
}
|
||||||
subscriber.error(error)
|
subscriber.error(error)
|
||||||
|
|||||||
@ -210,7 +210,7 @@ export default class JanInferenceOpenAIExtension extends BaseExtension {
|
|||||||
const messageContent: ThreadContent = {
|
const messageContent: ThreadContent = {
|
||||||
type: ContentType.Text,
|
type: ContentType.Text,
|
||||||
text: {
|
text: {
|
||||||
value: 'Error occurred: ' + err.message,
|
value: 'An error occurred. ' + err.message,
|
||||||
annotations: [],
|
annotations: [],
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
@ -205,7 +205,7 @@ export default class JanInferenceTritonTrtLLMExtension extends BaseExtension {
|
|||||||
const messageContent: ThreadContent = {
|
const messageContent: ThreadContent = {
|
||||||
type: ContentType.Text,
|
type: ContentType.Text,
|
||||||
text: {
|
text: {
|
||||||
value: 'Error occurred: ' + err.message,
|
value: 'An error occurred. ' + err.message,
|
||||||
annotations: [],
|
annotations: [],
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
@ -110,7 +110,10 @@ export const deleteMessageAtom = atom(null, (get, set, id: string) => {
|
|||||||
}
|
}
|
||||||
const threadId = get(getActiveThreadIdAtom)
|
const threadId = get(getActiveThreadIdAtom)
|
||||||
if (threadId) {
|
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)
|
set(chatMessages, newData)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
|
|||||||
@ -109,8 +109,9 @@ export default function useSendChatMessage() {
|
|||||||
currentMessages
|
currentMessages
|
||||||
.filter(
|
.filter(
|
||||||
(e) =>
|
(e) =>
|
||||||
currentMessage.role === ChatCompletionRole.User ||
|
(currentMessage.role === ChatCompletionRole.User ||
|
||||||
e.id !== currentMessage.id
|
e.id !== currentMessage.id) &&
|
||||||
|
e.status !== MessageStatus.Error
|
||||||
)
|
)
|
||||||
.map<ChatCompletionMessage>((msg) => ({
|
.map<ChatCompletionMessage>((msg) => ({
|
||||||
role: msg.role,
|
role: msg.role,
|
||||||
@ -198,6 +199,7 @@ export default function useSendChatMessage() {
|
|||||||
})
|
})
|
||||||
.concat(
|
.concat(
|
||||||
currentMessages
|
currentMessages
|
||||||
|
.filter((e) => e.status !== MessageStatus.Error)
|
||||||
.map<ChatCompletionMessage>((msg) => ({
|
.map<ChatCompletionMessage>((msg) => ({
|
||||||
role: msg.role,
|
role: msg.role,
|
||||||
content: msg.content[0]?.text.value ?? '',
|
content: msg.content[0]?.text.value ?? '',
|
||||||
|
|||||||
@ -27,7 +27,10 @@ const ErrorMessage = ({ message }: { message: ThreadMessage }) => {
|
|||||||
resendChatMessage(message)
|
resendChatMessage(message)
|
||||||
}
|
}
|
||||||
|
|
||||||
const errorTitle = getErrorTitle(message.error_code ?? ErrorCode.Unknown)
|
const errorTitle = getErrorTitle(
|
||||||
|
message.error_code ?? ErrorCode.Unknown,
|
||||||
|
message.content[0]?.text?.value
|
||||||
|
)
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className="mt-10">
|
<div className="mt-10">
|
||||||
|
|||||||
@ -39,11 +39,14 @@ const MessageToolbar = ({ message }: { message: ThreadMessage }) => {
|
|||||||
const onDeleteClick = async () => {
|
const onDeleteClick = async () => {
|
||||||
deleteMessage(message.id ?? '')
|
deleteMessage(message.id ?? '')
|
||||||
if (thread) {
|
if (thread) {
|
||||||
|
// Should also delete error messages to clear out the error state
|
||||||
await extensionManager
|
await extensionManager
|
||||||
.get<ConversationalExtension>(ExtensionTypeEnum.Conversational)
|
.get<ConversationalExtension>(ExtensionTypeEnum.Conversational)
|
||||||
?.writeMessages(
|
?.writeMessages(
|
||||||
thread.id,
|
thread.id,
|
||||||
messages.filter((msg) => msg.id !== message.id)
|
messages.filter(
|
||||||
|
(msg) => msg.id !== message.id && msg.status !== MessageStatus.Error
|
||||||
|
)
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@ -21,7 +21,7 @@ const ModalErrorSetDestGlobal = () => {
|
|||||||
<ModalPortal />
|
<ModalPortal />
|
||||||
<ModalContent>
|
<ModalContent>
|
||||||
<ModalHeader>
|
<ModalHeader>
|
||||||
<ModalTitle>Error Occurred</ModalTitle>
|
<ModalTitle>An Error Occurred</ModalTitle>
|
||||||
</ModalHeader>
|
</ModalHeader>
|
||||||
<p className="text-muted-foreground">
|
<p className="text-muted-foreground">
|
||||||
Oops! Something went wrong. Jan data folder remains the same. Please
|
Oops! Something went wrong. Jan data folder remains the same. Please
|
||||||
|
|||||||
@ -1,11 +1,15 @@
|
|||||||
import { ErrorCode } from '@janhq/core'
|
import { ErrorCode } from '@janhq/core'
|
||||||
|
|
||||||
export const getErrorTitle = (errorCode: ErrorCode) => {
|
export const getErrorTitle = (
|
||||||
if (errorCode === ErrorCode.Unknown) {
|
errorCode: ErrorCode,
|
||||||
return 'Apologies, something’s amiss!'
|
errorMessage: string | undefined
|
||||||
}
|
) => {
|
||||||
|
switch (errorCode) {
|
||||||
if (errorCode === ErrorCode.InvalidApiKey) {
|
case ErrorCode.Unknown:
|
||||||
return 'Invalid API key. Please check your API key and try again.'
|
return 'Apologies, something’s amiss!'
|
||||||
|
case ErrorCode.InvalidApiKey:
|
||||||
|
return 'Invalid API key. Please check your API key and try again.'
|
||||||
|
default:
|
||||||
|
return errorMessage
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user