Spaces:
Sleeping
Sleeping
Update aiEngine.js
Browse files- aiEngine.js +18 -2
aiEngine.js
CHANGED
|
@@ -198,13 +198,29 @@ export const AIEngine = {
|
|
| 198 |
continue;
|
| 199 |
}
|
| 200 |
if (chunk.candidates?.[0]?.content?.parts?.[0]?.inlineData) {
|
| 201 |
-
|
| 202 |
const inlineData = chunk.candidates[0].content.parts[0].inlineData;
|
| 203 |
const fileExtension = mime.getExtension(inlineData.mimeType || '');
|
| 204 |
const buffer = Buffer.from(inlineData.data || '', 'base64');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 205 |
|
| 206 |
// Here
|
| 207 |
-
return buffer;
|
| 208 |
|
| 209 |
}
|
| 210 |
else {
|
|
|
|
| 198 |
continue;
|
| 199 |
}
|
| 200 |
if (chunk.candidates?.[0]?.content?.parts?.[0]?.inlineData) {
|
| 201 |
+
/* const fileName = `ENTER_FILE_NAME_${fileIndex++}`;
|
| 202 |
const inlineData = chunk.candidates[0].content.parts[0].inlineData;
|
| 203 |
const fileExtension = mime.getExtension(inlineData.mimeType || '');
|
| 204 |
const buffer = Buffer.from(inlineData.data || '', 'base64');
|
| 205 |
+
*/
|
| 206 |
+
|
| 207 |
+
// inlineData is the object from the model: { mimeType: 'image/png', data: '...base64...' }
|
| 208 |
+
const inlineData = chunk.candidates[0].content.parts[0].inlineData;
|
| 209 |
+
const rawB64 = (inlineData.data || "").replace(/\s+/g, ""); // remove whitespace/newlines just in case
|
| 210 |
+
const mimeType = inlineData.mimeType || "image/png";
|
| 211 |
+
|
| 212 |
+
// ensure it's a Buffer (optional, for validation)
|
| 213 |
+
const buffer = Buffer.from(rawB64, "base64");
|
| 214 |
+
|
| 215 |
+
// produce a canonical base64 string (this also validates)
|
| 216 |
+
const base64 = buffer.toString("base64");
|
| 217 |
+
|
| 218 |
+
// build a browser-friendly data URL and return it
|
| 219 |
+
const dataUrl = `data:${mimeType};base64,${base64}`;
|
| 220 |
+
return dataUrl;
|
| 221 |
+
|
| 222 |
|
| 223 |
// Here
|
|
|
|
| 224 |
|
| 225 |
}
|
| 226 |
else {
|