93 lines
6.8 KiB
JSON
93 lines
6.8 KiB
JSON
{
|
|
"apiVersion": "camel.apache.org/v1",
|
|
"kind": "Kamelet",
|
|
"metadata": {
|
|
"name": "djl-image-to-text-action",
|
|
"annotations": {
|
|
"camel.apache.org/kamelet.support.level": "Preview",
|
|
"camel.apache.org/catalog.version": "4.22.1",
|
|
"camel.apache.org/kamelet.icon": "data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+Cjxzdmcgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDU1OCA1MjIiIHZlcnNpb249IjEuMSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIiB4bWxuczp4bGluaz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94bGluayIgeG1sOnNwYWNlPSJwcmVzZXJ2ZSIgeG1sbnM6c2VyaWY9Imh0dHA6Ly93d3cuc2VyaWYuY29tLyIgc3R5bGU9ImZpbGwtcnVsZTpldmVub2RkO2NsaXAtcnVsZTpldmVub2RkO3N0cm9rZS1saW5lam9pbjpyb3VuZDtzdHJva2UtbWl0ZXJsaW1pdDoyOyI+CiAgICA8ZyB0cmFuc2Zvcm09Im1hdHJpeCgwLjEsMCwwLC0wLjEsMCw1MjIpIj4KICAgICAgICA8cGF0aCBkPSJNMzc1MCw0MTgwTDM3NTAsMTQ3MEw1NDQwLDE0NzBMNTQ0MCwxNzc1TDQ4MDYsMTc3MkM0MjM1LDE3NzAgNDE3MCwxNzcxIDQxNTYsMTc4NkM0MTQxLDE4MDAgNDE0MCwxOTExIDQxNDAsMjk4OEw0MTQwLDQxNzVMMzk0NSw0MTc4TDM3NTAsNDE4MFoiIHN0eWxlPSJmaWxsOnJnYigxMTgsMTEzLDExMyk7ZmlsbC1ydWxlOm5vbnplcm87Ii8+CiAgICAgICAgPHBhdGggZD0iTTIwNSw0MTQ0QzE5OCw0MTQxIDE5NywzNjg2IDIwMCwyNzkzTDIwNSwxNDQ1TDY5MCwxNDQzQzExMjIsMTQ0MCAxMTkwLDE0NDIgMTMxMCwxNDU5QzE1MTQsMTQ4OCAxNTkyLDE1MTEgMTczNywxNTgzQzE3OTQsMTYxMSAxODUyLDE2NDUgMTg2NywxNjU4QzE4ODMsMTY3MSAxOTE5LDE3MDEgMTk0OCwxNzI2QzIwMzEsMTc5OCAyMTMzLDE5NDMgMjE5MSwyMDcxQzIzNjMsMjQ1NSAyMzY4LDMxMDEgMjIwMywzNDkwQzIxNTcsMzU5NyAyMTIwLDM2NjggMjA5NywzNjkyQzIwOTAsMzY5OSAyMDY5LDM3MjggMjA1MCwzNzU2QzIwMTEsMzgxMyAxODM1LDM5NzAgMTgwOSwzOTcwQzE4MDAsMzk3MCAxNzg3LDM5NzcgMTc4MCwzOTg1QzE3NzMsMzk5MyAxNzYwLDQwMDAgMTc1MCw0MDAwQzE3NDAsNDAwMCAxNzI3LDQwMDcgMTcyMCw0MDE1QzE3MTMsNDAyMyAxNjk5LDQwMzAgMTY4OCw0MDMwQzE2NzgsNDAzMCAxNjY3LDQwMzcgMTY2NCw0MDQ1QzE2NjAsNDA1NCAxNjQ1LDQwNjAgMTYyNiw0MDYwQzE2MDksNDA2MCAxNTg2LDQwNjcgMTU3Niw0MDc1QzE1NjUsNDA4MyAxNTQwLDQwOTAgMTUyMCw0MDkwQzE1MDAsNDA5MCAxNDc1LDQwOTcgMTQ2NCw0MTA1QzE0NTMsNDExNCAxNDIyLDQxMjAgMTM4NSw0MTIwQzEzNTIsNDEyMCAxMjk0LDQxMjcgMTI1NSw0MTM1QzExOTgsNDE0NyAxMDkzLDQxNTAgNzAwLDQxNDlDNDMzLDQxNDkgMjExLDQxNDcgMjA1LDQxNDRaTTEzMDAsMzgyMkMxNDAyLDM3OTQgMTQwNCwzNzk0IDE0OTcsMzc0N0MxNTU1LDM3MTggMTYwMiwzNjg1IDE2NTMsMzYzNkMxNzI5LDM1NjIgMTgzMCwzNDIzIDE4MzAsMzM5MUMxODMwLDMzODEgMTgzNywzMzY3IDE4NDUsMzM2MEMxODUzLDMzNTMgMTg2MCwzMzM1IDE4NjAsMzMyMEMxODYwLDMzMDUgMTg2NywzMjg3IDE4NzUsMzI4MEMxODg0LDMyNzIgMTg5MCwzMjUwIDE4OTAsMzIyMUMxODkwLDMxOTUgMTg5NSwzMTY5IDE5MDIsMzE2MkMxOTE1LDMxNDkgMTkzNCwyOTMzIDE5MzQsMjc5NUMxOTMzLDI2NDQgMTkxOSwyNDY3IDE5MDQsMjQyN0MxODk2LDI0MDcgMTg5MCwyMzczIDE4OTAsMjM1MkMxODkwLDIzMzIgMTg4MywyMzA2IDE4NzUsMjI5NkMxODY3LDIyODUgMTg2MCwyMjY2IDE4NjAsMjI1NEMxODYwLDIyNDIgMTg1MywyMjI3IDE4NDUsMjIyMEMxODM3LDIyMTMgMTgzMCwyMTk3IDE4MzAsMjE4NUMxODMwLDIxNzMgMTgyMywyMTU3IDE4MTUsMjE1MEMxODA3LDIxNDMgMTgwMCwyMTMzIDE4MDAsMjEyOEMxODAwLDIxMjIgMTc4NywyMTAxIDE3NzAsMjA4MEMxNzU0LDIwNTkgMTc0MCwyMDM4IDE3NDAsMjAzM0MxNzQwLDIwMDggMTU0NSwxODQwIDE1MTcsMTg0MEMxNTA5LDE4NDAgMTQ5NywxODMzIDE0OTAsMTgyNUMxNDgzLDE4MTcgMTQ3MCwxODEwIDE0NjAsMTgxMEMxNDUwLDE4MTAgMTQzNywxODAzIDE0MzAsMTc5NUMxNDIzLDE3ODcgMTQwMywxNzgwIDEzODYsMTc4MEMxMzY4LDE3ODAgMTM0OSwxNzc1IDEzNDIsMTc2OEMxMzM2LDE3NjIgMTMwNywxNzUzIDEyNzgsMTc0OUMxMjQ5LDE3NDQgMTE5NiwxNzM2IDExNjAsMTczMUMxMTI0LDE3MjUgOTg0LDE3MjAgODQ4LDE3MjBDNjE0LDE3MjAgNjAwLDE3MjEgNTkwLDE3MzlDNTc0LDE3NzAgNTc2LDM4MjIgNTkzLDM4MzlDNjAyLDM4NDkgNjcxLDM4NTEgOTE1LDM4NDdDMTE4OSwzODQzIDEyMzQsMzg0MSAxMzAwLDM4MjJaIiBzdHlsZT0iZmlsbDpyZ2IoMTE4LDExMywxMTMpO2ZpbGwtcnVsZTpub256ZXJvOyIvPgogICAgICAgIDxwYXRoIGQ9Ik0zMTE1LDQxMzhDMzExMiw0MTMxIDMxMDgsMzY4MiAzMTA2LDMxNDBDMzEwMiwyMTY5IDMwOTcsMjAwMyAzMDczLDE5NzhDMzA2NiwxOTcyIDMwNjAsMTk1NCAzMDYwLDE5MzlDMzA2MCwxOTI0IDMwNTMsMTkwNyAzMDQ1LDE5MDBDMzAzNywxODkzIDMwMzAsMTg4MSAzMDMwLDE4NzRDMzAzMCwxODU0IDI5MzAsMTc1OCAyODkwLDE3MzlDMjc4OCwxNjkwIDI3ODYsMTY5MCAyNTk3LDE2OTBDMjQ1OCwxNjkxIDI0MDksMTY5NCAyMzkwLDE3MDVDMjM3NiwxNzEzIDIzNDksMTcyMCAyMzMwLDE3MjBDMjMxMSwxNzIwIDIyODQsMTcyNyAyMjcwLDE3MzVDMjI1NiwxNzQzIDIyMzMsMTc0OSAyMjE4LDE3NTBMMjE5MCwxNzUwTDIxOTAsMTQ3MUwyMjIzLDE0NTdDMjI1OSwxNDQxIDIzMzQsMTQyMCAyNDMyLDEzOTZDMjUyNCwxMzc0IDI4NTQsMTM3MyAyOTA3LDEzOTVDMjkyNiwxNDAzIDI5NTUsMTQxMCAyOTcwLDE0MTBDMzAyNCwxNDEwIDMxNjksMTQ4MSAzMjQyLDE1NDNDMzMwNywxNTk5IDMzODEsMTcwMSAzNDA5LDE3NzVDMzQyMSwxODA4IDM0MzYsMTg0MyAzNDQxLDE4NTNDMzQ0NywxODYzIDM0NTQsMTg5NSAzNDU3LDE5MjNDMzQ1OSwxOTUyIDM0NjgsMTk4OSAzNDc2LDIwMDdDMzQ4OCwyMDMzIDM0OTAsMjIwOSAzNDkwLDMwOTRMMzQ5MCw0MTUwTDMzMDUsNDE1MEMzMTY2LDQxNTAgMzExOCw0MTQ3IDMxMTUsNDEzOFoiIHN0eWxlPSJmaWxsOnJnYigxNTgsMjA1LDI0Nik7ZmlsbC1ydWxlOm5vbnplcm87Ii8+CiAgICA8L2c+Cjwvc3ZnPgo=",
|
|
"camel.apache.org/provider": "Apache Software Foundation",
|
|
"camel.apache.org/kamelet.group": "Actions",
|
|
"camel.apache.org/kamelet.namespace": "AI"
|
|
},
|
|
"labels": {
|
|
"camel.apache.org/kamelet.type": "action"
|
|
}
|
|
},
|
|
"spec": {
|
|
"definition": {
|
|
"title": "Image-to-Text Action",
|
|
"description": "Detect and classify objects in an image into texts using the SSD and ResNet models and the ImageNet dataset.",
|
|
"type": "object"
|
|
},
|
|
"types": {
|
|
"out": {
|
|
"mediaType": "application/json"
|
|
}
|
|
},
|
|
"dependencies": [
|
|
"mvn:ai.djl.pytorch:pytorch-engine:0.29.0",
|
|
"mvn:ai.djl.pytorch:pytorch-model-zoo:0.29.0",
|
|
"camel:core",
|
|
"camel:kamelet",
|
|
"camel:jackson",
|
|
"camel:djl"
|
|
],
|
|
"template": {
|
|
"beans": [
|
|
{
|
|
"name": "imageNetUtil",
|
|
"type": "#class:org.apache.camel.component.djl.ImageNetUtil"
|
|
}
|
|
],
|
|
"from": {
|
|
"uri": "kamelet:source",
|
|
"steps": [
|
|
{
|
|
"to": "djl:cv/object_detection?artifactId=ssd"
|
|
},
|
|
{
|
|
"convertBodyTo": "ai.djl.modality.cv.Image[]"
|
|
},
|
|
{
|
|
"split": {
|
|
"expression": {
|
|
"simple": "${body}"
|
|
},
|
|
"aggregationStrategy": "#class:org.apache.camel.processor.aggregate.GroupedBodyAggregationStrategy",
|
|
"steps": [
|
|
{
|
|
"to": "djl:cv/image_classification?artifactId=resnet"
|
|
},
|
|
{
|
|
"bean": {
|
|
"ref": "{{imageNetUtil}}",
|
|
"method": "extractClassName"
|
|
}
|
|
},
|
|
{
|
|
"bean": {
|
|
"ref": "{{imageNetUtil}}",
|
|
"method": "addHypernym"
|
|
}
|
|
}
|
|
]
|
|
}
|
|
},
|
|
{
|
|
"marshal": {
|
|
"json": {}
|
|
}
|
|
}
|
|
]
|
|
}
|
|
}
|
|
},
|
|
"propertiesSchema": {
|
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
"type": "object",
|
|
"title": "Image-to-Text Action",
|
|
"description": "Detect and classify objects in an image into texts using the SSD and ResNet models and the ImageNet dataset."
|
|
}
|
|
} |