Commit d986614
authored
feat(component,ai,gemini): add image generation support (#1122)
Because
- The Gemini component lacked support for image generation using the
`gemini-2.5-flash-image-preview` model
- Generated images were being exposed as raw binary data arrays in the
`candidates` field instead of being properly extracted to the `images`
field
- Image processing was duplicated and inefficient in streaming
responses, processing the same images multiple times
This commit
- Adds image generation capability to the Gemini component by extracting
images from `genai.GenerateContentResponse`
- Extracts generated images from API responses and converts them to
`format.Image` objects in the `Images` output field
- Cleans up raw binary `InlineData` from candidates after image
extraction to prevent JSON exposure of binary data
- Optimizes streaming responses by deferring image processing to final
response only, eliminating duplicate processing
- Updates component configuration documentation to clarify the
relationship between `images` field and `candidates` field1 parent 1b4cd1f commit d986614
File tree
4 files changed
+214
-13
lines changed- pkg/component/ai/gemini/v0
- config
4 files changed
+214
-13
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1556 | 1556 | | |
1557 | 1557 | | |
1558 | 1558 | | |
1559 | | - | |
1560 | | - | |
| 1559 | + | |
| 1560 | + | |
| 1561 | + | |
1561 | 1562 | | |
1562 | 1563 | | |
1563 | 1564 | | |
1564 | 1565 | | |
1565 | | - | |
| 1566 | + | |
| 1567 | + | |
1566 | 1568 | | |
1567 | 1569 | | |
1568 | 1570 | | |
1569 | 1571 | | |
1570 | 1572 | | |
1571 | | - | |
| 1573 | + | |
| 1574 | + | |
1572 | 1575 | | |
1573 | 1576 | | |
1574 | 1577 | | |
| |||
1709 | 1712 | | |
1710 | 1713 | | |
1711 | 1714 | | |
1712 | | - | |
| 1715 | + | |
1713 | 1716 | | |
1714 | 1717 | | |
1715 | 1718 | | |
1716 | 1719 | | |
1717 | | - | |
| 1720 | + | |
1718 | 1721 | | |
| 1722 | + | |
| 1723 | + | |
| 1724 | + | |
| 1725 | + | |
| 1726 | + | |
| 1727 | + | |
| 1728 | + | |
| 1729 | + | |
| 1730 | + | |
| 1731 | + | |
| 1732 | + | |
1719 | 1733 | | |
1720 | 1734 | | |
1721 | 1735 | | |
1722 | 1736 | | |
1723 | 1737 | | |
1724 | 1738 | | |
1725 | | - | |
| 1739 | + | |
1726 | 1740 | | |
1727 | 1741 | | |
1728 | 1742 | | |
| |||
1732 | 1746 | | |
1733 | 1747 | | |
1734 | 1748 | | |
1735 | | - | |
| 1749 | + | |
1736 | 1750 | | |
1737 | 1751 | | |
1738 | | - | |
| 1752 | + | |
1739 | 1753 | | |
1740 | 1754 | | |
1741 | | - | |
| 1755 | + | |
1742 | 1756 | | |
1743 | 1757 | | |
1744 | 1758 | | |
1745 | 1759 | | |
1746 | | - | |
| 1760 | + | |
1747 | 1761 | | |
1748 | 1762 | | |
1749 | 1763 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
59 | 59 | | |
60 | 60 | | |
61 | 61 | | |
62 | | - | |
63 | | - | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
64 | 65 | | |
65 | 66 | | |
66 | 67 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
| 6 | + | |
6 | 7 | | |
7 | 8 | | |
8 | 9 | | |
9 | 10 | | |
| 11 | + | |
| 12 | + | |
10 | 13 | | |
11 | 14 | | |
12 | 15 | | |
| |||
260 | 263 | | |
261 | 264 | | |
262 | 265 | | |
| 266 | + | |
263 | 267 | | |
264 | 268 | | |
265 | 269 | | |
| |||
281 | 285 | | |
282 | 286 | | |
283 | 287 | | |
| 288 | + | |
| 289 | + | |
| 290 | + | |
| 291 | + | |
284 | 292 | | |
285 | 293 | | |
286 | 294 | | |
| |||
348 | 356 | | |
349 | 357 | | |
350 | 358 | | |
| 359 | + | |
351 | 360 | | |
352 | 361 | | |
353 | 362 | | |
| |||
385 | 394 | | |
386 | 395 | | |
387 | 396 | | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
| 402 | + | |
| 403 | + | |
| 404 | + | |
| 405 | + | |
| 406 | + | |
| 407 | + | |
| 408 | + | |
| 409 | + | |
| 410 | + | |
| 411 | + | |
| 412 | + | |
| 413 | + | |
| 414 | + | |
| 415 | + | |
| 416 | + | |
| 417 | + | |
| 418 | + | |
| 419 | + | |
| 420 | + | |
| 421 | + | |
388 | 422 | | |
389 | 423 | | |
390 | 424 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
| 8 | + | |
8 | 9 | | |
9 | 10 | | |
10 | 11 | | |
| |||
1339 | 1340 | | |
1340 | 1341 | | |
1341 | 1342 | | |
| 1343 | + | |
| 1344 | + | |
| 1345 | + | |
| 1346 | + | |
| 1347 | + | |
| 1348 | + | |
| 1349 | + | |
| 1350 | + | |
| 1351 | + | |
| 1352 | + | |
| 1353 | + | |
| 1354 | + | |
| 1355 | + | |
| 1356 | + | |
| 1357 | + | |
| 1358 | + | |
| 1359 | + | |
| 1360 | + | |
| 1361 | + | |
| 1362 | + | |
| 1363 | + | |
| 1364 | + | |
| 1365 | + | |
| 1366 | + | |
| 1367 | + | |
| 1368 | + | |
| 1369 | + | |
| 1370 | + | |
| 1371 | + | |
| 1372 | + | |
| 1373 | + | |
| 1374 | + | |
| 1375 | + | |
| 1376 | + | |
| 1377 | + | |
| 1378 | + | |
| 1379 | + | |
| 1380 | + | |
| 1381 | + | |
| 1382 | + | |
| 1383 | + | |
| 1384 | + | |
| 1385 | + | |
| 1386 | + | |
| 1387 | + | |
| 1388 | + | |
| 1389 | + | |
| 1390 | + | |
| 1391 | + | |
| 1392 | + | |
| 1393 | + | |
| 1394 | + | |
| 1395 | + | |
| 1396 | + | |
| 1397 | + | |
| 1398 | + | |
| 1399 | + | |
| 1400 | + | |
| 1401 | + | |
| 1402 | + | |
| 1403 | + | |
| 1404 | + | |
| 1405 | + | |
| 1406 | + | |
| 1407 | + | |
| 1408 | + | |
| 1409 | + | |
| 1410 | + | |
| 1411 | + | |
| 1412 | + | |
| 1413 | + | |
| 1414 | + | |
| 1415 | + | |
| 1416 | + | |
| 1417 | + | |
| 1418 | + | |
| 1419 | + | |
| 1420 | + | |
| 1421 | + | |
| 1422 | + | |
| 1423 | + | |
| 1424 | + | |
| 1425 | + | |
| 1426 | + | |
| 1427 | + | |
| 1428 | + | |
| 1429 | + | |
| 1430 | + | |
| 1431 | + | |
| 1432 | + | |
| 1433 | + | |
| 1434 | + | |
| 1435 | + | |
| 1436 | + | |
| 1437 | + | |
| 1438 | + | |
| 1439 | + | |
| 1440 | + | |
| 1441 | + | |
| 1442 | + | |
| 1443 | + | |
| 1444 | + | |
| 1445 | + | |
| 1446 | + | |
| 1447 | + | |
| 1448 | + | |
| 1449 | + | |
| 1450 | + | |
| 1451 | + | |
| 1452 | + | |
| 1453 | + | |
| 1454 | + | |
| 1455 | + | |
| 1456 | + | |
| 1457 | + | |
| 1458 | + | |
| 1459 | + | |
| 1460 | + | |
| 1461 | + | |
| 1462 | + | |
| 1463 | + | |
| 1464 | + | |
| 1465 | + | |
| 1466 | + | |
| 1467 | + | |
| 1468 | + | |
| 1469 | + | |
| 1470 | + | |
| 1471 | + | |
| 1472 | + | |
| 1473 | + | |
| 1474 | + | |
| 1475 | + | |
| 1476 | + | |
| 1477 | + | |
| 1478 | + | |
| 1479 | + | |
| 1480 | + | |
| 1481 | + | |
| 1482 | + | |
| 1483 | + | |
| 1484 | + | |
| 1485 | + | |
| 1486 | + | |
| 1487 | + | |
| 1488 | + | |
| 1489 | + | |
| 1490 | + | |
| 1491 | + | |
| 1492 | + | |
| 1493 | + | |
0 commit comments