Bugfix/correctly retrieve past images in agentflowv2 (#4453)
correctly retrieve past images in agentflowv2
This commit is contained in:
parent
9170cac58b
commit
6cf1c82f04
|
|
@ -140,7 +140,12 @@ export const replaceBase64ImagesWithFileReferences = (
|
|||
): BaseMessageLike[] => {
|
||||
// Create a deep copy to avoid mutating the original
|
||||
const updatedMessages = JSON.parse(JSON.stringify(messages))
|
||||
let imageMessagesIndex = 0
|
||||
|
||||
// Track positions in replacement arrays
|
||||
let pastMessageIndex = 0
|
||||
let pastContentIndex = 0
|
||||
let uniqueMessageIndex = 0
|
||||
let uniqueContentIndex = 0
|
||||
|
||||
for (let i = 0; i < updatedMessages.length; i++) {
|
||||
const message = updatedMessages[i]
|
||||
|
|
@ -148,17 +153,77 @@ export const replaceBase64ImagesWithFileReferences = (
|
|||
for (let j = 0; j < message.content.length; j++) {
|
||||
const item = message.content[j]
|
||||
if (item.type === 'image_url') {
|
||||
// Look for matching file reference in uniqueImageMessages or pastImageMessages
|
||||
const imageMessage =
|
||||
(uniqueImageMessages[imageMessagesIndex] as BaseMessage | undefined) ||
|
||||
(pastImageMessages[imageMessagesIndex] as BaseMessage | undefined)
|
||||
// Try past images first
|
||||
let replacement = null
|
||||
|
||||
if (imageMessage && Array.isArray(imageMessage.content) && imageMessage.content[j]) {
|
||||
const replaceContent = imageMessage.content[j]
|
||||
message.content[j] = {
|
||||
...replaceContent
|
||||
if (pastMessageIndex < pastImageMessages.length) {
|
||||
const pastMessage = pastImageMessages[pastMessageIndex] as BaseMessage | undefined
|
||||
if (pastMessage && Array.isArray(pastMessage.content)) {
|
||||
if (pastContentIndex < pastMessage.content.length) {
|
||||
replacement = pastMessage.content[pastContentIndex]
|
||||
pastContentIndex++
|
||||
|
||||
// Move to next message if we've used all content in current one
|
||||
if (pastContentIndex >= pastMessage.content.length) {
|
||||
pastMessageIndex++
|
||||
pastContentIndex = 0
|
||||
}
|
||||
} else {
|
||||
// Current message has no more content, move to next
|
||||
pastMessageIndex++
|
||||
pastContentIndex = 0
|
||||
|
||||
// Try again with the next message
|
||||
if (pastMessageIndex < pastImageMessages.length) {
|
||||
const nextPastMessage = pastImageMessages[pastMessageIndex] as BaseMessage | undefined
|
||||
if (nextPastMessage && Array.isArray(nextPastMessage.content) && nextPastMessage.content.length > 0) {
|
||||
replacement = nextPastMessage.content[0]
|
||||
pastContentIndex = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Try unique images if no past image replacement found
|
||||
if (!replacement && uniqueMessageIndex < uniqueImageMessages.length) {
|
||||
const uniqueMessage = uniqueImageMessages[uniqueMessageIndex] as BaseMessage | undefined
|
||||
if (uniqueMessage && Array.isArray(uniqueMessage.content)) {
|
||||
if (uniqueContentIndex < uniqueMessage.content.length) {
|
||||
replacement = uniqueMessage.content[uniqueContentIndex]
|
||||
uniqueContentIndex++
|
||||
|
||||
// Move to next message if we've used all content in current one
|
||||
if (uniqueContentIndex >= uniqueMessage.content.length) {
|
||||
uniqueMessageIndex++
|
||||
uniqueContentIndex = 0
|
||||
}
|
||||
} else {
|
||||
// Current message has no more content, move to next
|
||||
uniqueMessageIndex++
|
||||
uniqueContentIndex = 0
|
||||
|
||||
// Try again with the next message
|
||||
if (uniqueMessageIndex < uniqueImageMessages.length) {
|
||||
const nextUniqueMessage = uniqueImageMessages[uniqueMessageIndex] as BaseMessage | undefined
|
||||
if (
|
||||
nextUniqueMessage &&
|
||||
Array.isArray(nextUniqueMessage.content) &&
|
||||
nextUniqueMessage.content.length > 0
|
||||
) {
|
||||
replacement = nextUniqueMessage.content[0]
|
||||
uniqueContentIndex = 1
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Apply replacement if found
|
||||
if (replacement) {
|
||||
message.content[j] = {
|
||||
...replacement
|
||||
}
|
||||
imageMessagesIndex++
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue