fix: regenerate message should not include the assistant's previous response (#2583)

This commit is contained in:
Louis 2024-04-02 22:17:35 +07:00 committed by GitHub
parent 6f0ee23776
commit 3fded8fd20
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 17 additions and 2 deletions

View File

@ -102,7 +102,7 @@ export abstract class OAIEngine extends AIEngine {
events.emit(MessageEvent.OnMessageUpdate, message)
},
error: async (err: any) => {
console.error(`Inference error: ${JSON.stringify(err, null, 2)}`)
console.error(`Inference error:`, err)
if (this.isCancelled || message.content.length) {
message.status = MessageStatus.Stopped
events.emit(MessageEvent.OnMessageUpdate, message)

View File

@ -102,7 +102,9 @@ export default function useSendChatMessage() {
activeThreadRef.current.assistants[0].model ?? selectedModelRef.current,
activeThreadRef.current,
currentMessages
).addSystemMessage(activeThreadRef.current.assistants[0]?.instructions)
)
.addSystemMessage(activeThreadRef.current.assistants[0]?.instructions)
.removeLastAssistantMessage()
const modelId =
selectedModelRef.current?.id ??

View File

@ -117,6 +117,19 @@ export class MessageRequestBuilder {
return this
}
removeLastAssistantMessage() {
const lastMessageIndex = this.messages.length - 1
if (
this.messages.length &&
this.messages[lastMessageIndex] &&
this.messages[lastMessageIndex].role === ChatCompletionRole.Assistant
) {
this.messages.pop()
}
return this
}
build(): MessageRequest {
return {
id: this.msgId,