🖼️ fix: Clipboard Files & File Name Issues (#2015)

* fix: ensure image handling fetchs image to base64 for multiple images

* fix: append file_id's when writing uploaded files

* feat: timestamp files uploaded from clipboard

* chore: add a different fileid+name separator
This commit is contained in:
Danny Avila 2024-03-07 12:27:42 -05:00 committed by GitHub
parent 18edd2660b
commit 40e884b3ec
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
5 changed files with 31 additions and 18 deletions

View file

@ -39,25 +39,24 @@ async function encodeAndFormat(req, files, endpoint) {
for (let file of files) {
const source = file.source ?? FileSources.local;
if (encodingMethods[source]) {
promises.push(encodingMethods[source](req, file));
continue;
if (!encodingMethods[source]) {
const { prepareImagePayload } = getStrategyFunctions(source);
if (!prepareImagePayload) {
throw new Error(`Encoding function not implemented for ${source}`);
}
encodingMethods[source] = prepareImagePayload;
}
const { prepareImagePayload } = getStrategyFunctions(source);
if (!prepareImagePayload) {
throw new Error(`Encoding function not implemented for ${source}`);
}
const preparePayload = encodingMethods[source];
encodingMethods[source] = prepareImagePayload;
/* Google doesn't support passing URLs to payload */
/* Google & Anthropic don't support passing URLs to payload */
if (source !== FileSources.local && base64Only.has(endpoint)) {
const [_file, imageURL] = await prepareImagePayload(req, file);
const [_file, imageURL] = await preparePayload(req, file);
promises.push([_file, await fetchImageToBase64(imageURL)]);
continue;
}
promises.push(prepareImagePayload(req, file));
promises.push(preparePayload(req, file));
}
const detail = req.body.imageDetail ?? 'auto';