{
    "id": 13,
    "title": {
        "en": "ImageLingo",
        "zh": "图片解析"},
    "description": {
        "en": "ImageLingo lets you snap any photo containing text—menus, signs, or documents—and instantly recognize and translate it into your language of choice using advanced AI-powered translation technology.",
        "zh": "多模态大模型允许您拍摄任何包含文本的照片——菜单、标志或文档——立即识别并转换成您选择的语言。"},
    "canvas_type": "Consumer App",
    "dsl": {
            "components": {
                "Agent:CoolPandasCrash": {
                    "downstream": [
                        "Message:CurlyApplesRelate"
                    ],
                    "obj": {
                        "component_name": "Agent",
                        "params": {
                            "delay_after_error": 1,
                            "description": "",
                            "exception_comment": "",
                            "exception_goto": [],
                            "exception_method": null,
                            "frequencyPenaltyEnabled": false,
                            "frequency_penalty": 0.7,
                            "llm_filter": "image2text",
                            "llm_id": "qwen-vl-plus@Tongyi-Qianwen",
                            "maxTokensEnabled": false,
                            "max_retries": 3,
                            "max_rounds": 5,
                            "max_tokens": 256,
                            "mcp": [],
                            "message_history_window_size": 12,
                            "outputs": {
                                "content": {
                                    "type": "string",
                                    "value": ""
                                },
                                "structured_output": {}
                            },
                            "presencePenaltyEnabled": false,
                            "presence_penalty": 0.4,
                            "prompts": [
                                {
                                    "content": "The user query is {sys.query}\n\n\n\nThe input files are {sys.files}\n\n",
                                    "role": "user"
                                }
                            ],
                            "sys_prompt": "You are a multilingual translation assistant that works from images. When given a photo of any text or scene, you should:\n\n\n\n1. Detect and extract all written text in the image, regardless of font, orientation, or style.  \n\n2. Identify the source language of the extracted text.  \n\n3. Determine the target language:\n\n   - If the user explicitly specifies a language, use that.\n\n   - If no language is specified, automatically detect the user\u2019s spoken language and use that as the target.  \n\n4. Translate the content accurately into the target language, preserving meaning, tone, and formatting (e.g., line breaks, punctuation).  \n\n5. If the image contains signage, menus, labels, or other contextual text, adapt the translation to be natural and context-appropriate for daily use.  \n\n6. Return the translated text in plain, well-formatted paragraphs. If the user asks, also provide transliteration for non-Latin scripts.  \n\n7. If the image is unclear or the target language cannot be determined, ask a clarifying follow-up question.\n\n\nExample:\n\nUser: \u201cTranslate this photo for me.\u201d\n\nAgent Input: [Image of a Japanese train schedule]\n\nAgent Output:\n\n\u201c7:30 AM \u2013 \u6771\u4eac\u99c5 (Tokyo Station)  \n\n8:15 AM \u2013 \u65b0\u5927\u962a (Shin-Osaka)\u201d  \n\n(Detected user language: English)```\n\n",
                            "temperature": 0.1,
                            "temperatureEnabled": true,
                            "tools": [],
                            "topPEnabled": false,
                            "top_p": 0.3,
                            "user_prompt": "",
                            "visual_files_var": "sys.files"
                        }
                    },
                    "upstream": [
                        "begin"
                    ]
                },
                "Message:CurlyApplesRelate": {
                    "downstream": [],
                    "obj": {
                        "component_name": "Message",
                        "params": {
                            "content": [
                                "{Agent:CoolPandasCrash@content}"
                            ]
                        }
                    },
                    "upstream": [
                        "Agent:CoolPandasCrash"
                    ]
                },
                "begin": {
                    "downstream": [
                        "Agent:CoolPandasCrash"
                    ],
                    "obj": {
                        "component_name": "Begin",
                        "params": {
                            "enablePrologue": true,
                            "inputs": {},
                            "mode": "task",
                            "prologue": "Hi there! I\u2019m ImageLingo, your on-the-go image translation assistant\u2014just snap a photo, and I\u2019ll instantly translate and adapt it into your language."
                        }
                    },
                    "upstream": []
                }
            },
            "globals": {
                "sys.conversation_turns": 0,
                "sys.files": [],
                "sys.query": "",
                "sys.user_id": ""
            },
            "graph": {
                "edges": [
                    {
                        "data": {
                            "isHovered": false
                        },
                        "id": "xy-edge__beginstart-Agent:CoolPandasCrashend",
                        "source": "begin",
                        "sourceHandle": "start",
                        "target": "Agent:CoolPandasCrash",
                        "targetHandle": "end"
                    },
                    {
                        "data": {
                            "isHovered": false
                        },
                        "id": "xy-edge__Agent:CoolPandasCrashstart-Message:CurlyApplesRelateend",
                        "source": "Agent:CoolPandasCrash",
                        "sourceHandle": "start",
                        "target": "Message:CurlyApplesRelate",
                        "targetHandle": "end"
                    }
                ],
                "nodes": [
                    {
                        "data": {
                            "form": {
                                "enablePrologue": true,
                                "inputs": {},
                                "mode": "task",
                                "prologue": "Hi there! I\u2019m ImageLingo, your on-the-go image translation assistant\u2014just snap a photo, and I\u2019ll instantly translate and adapt it into your language."
                            },
                            "label": "Begin",
                            "name": "begin"
                        },
                        "id": "begin",
                        "measured": {
                            "height": 48,
                            "width": 200
                        },
                        "position": {
                            "x": 50,
                            "y": 200
                        },
                        "selected": false,
                        "sourcePosition": "left",
                        "targetPosition": "right",
                        "type": "beginNode"
                    },
                    {
                        "data": {
                            "form": {
                                "delay_after_error": 1,
                                "description": "",
                                "exception_comment": "",
                                "exception_goto": "",
                                "exception_method": null,
                                "frequencyPenaltyEnabled": false,
                                "frequency_penalty": 0.7,
                                "llm_filter": "image2text",
                                "llm_id": "qwen-vl-plus@Tongyi-Qianwen",
                                "maxTokensEnabled": false,
                                "max_retries": 3,
                                "max_rounds": 5,
                                "max_tokens": 256,
                                "mcp": [],
                                "message_history_window_size": 12,
                                "outputs": {
                                    "content": {
                                        "type": "string",
                                        "value": ""
                                    },
                                    "structured_output": {}
                                },
                                "presencePenaltyEnabled": false,
                                "presence_penalty": 0.4,
                                "prompts": [
                                    {
                                        "content": "The user query is {sys.query}\n\n\n\nThe input files are {sys.files}\n\n",
                                        "role": "user"
                                    }
                                ],
                                "sys_prompt": "You are a multilingual translation assistant that works from images. When given a photo of any text or scene, you should:\n\n\n\n1. Detect and extract all written text in the image, regardless of font, orientation, or style.  \n\n2. Identify the source language of the extracted text.  \n\n3. Determine the target language:\n\n   - If the user explicitly specifies a language, use that.\n\n   - If no language is specified, automatically detect the user\u2019s spoken language and use that as the target.  \n\n4. Translate the content accurately into the target language, preserving meaning, tone, and formatting (e.g., line breaks, punctuation).  \n\n5. If the image contains signage, menus, labels, or other contextual text, adapt the translation to be natural and context-appropriate for daily use.  \n\n6. Return the translated text in plain, well-formatted paragraphs. If the user asks, also provide transliteration for non-Latin scripts.  \n\n7. If the image is unclear or the target language cannot be determined, ask a clarifying follow-up question.\n\n\nExample:\n\nUser: \u201cTranslate this photo for me.\u201d\n\nAgent Input: [Image of a Japanese train schedule]\n\nAgent Output:\n\n\u201c7:30 AM \u2013 \u6771\u4eac\u99c5 (Tokyo Station)  \n\n8:15 AM \u2013 \u65b0\u5927\u962a (Shin-Osaka)\u201d  \n\n(Detected user language: English)```\n\n",
                                "temperature": 0.1,
                                "temperatureEnabled": true,
                                "tools": [],
                                "topPEnabled": false,
                                "top_p": 0.3,
                                "user_prompt": "",
                                "visual_files_var": "sys.files"
                            },
                            "label": "Agent",
                            "name": "Translation Agent With Vision"
                        },
                        "dragging": false,
                        "id": "Agent:CoolPandasCrash",
                        "measured": {
                            "height": 87,
                            "width": 200
                        },
                        "position": {
                            "x": 350.5,
                            "y": 200
                        },
                        "selected": true,
                        "sourcePosition": "right",
                        "targetPosition": "left",
                        "type": "agentNode"
                    },
                    {
                        "data": {
                            "form": {
                                "content": [
                                    "{Agent:CoolPandasCrash@content}"
                                ]
                            },
                            "label": "Message",
                            "name": "Message"
                        },
                        "id": "Message:CurlyApplesRelate",
                        "measured": {
                            "height": 56,
                            "width": 200
                        },
                        "position": {
                            "x": 650,
                            "y": 200
                        },
                        "selected": false,
                        "sourcePosition": "right",
                        "targetPosition": "left",
                        "type": "messageNode"
                    },
                    {
                        "data": {
                            "form": {
                                "text": "ImageLingo lets you snap any photo containing text\u2014menus, signs, or documents\u2014and instantly recognize and translate it into your language of choice using advanced OCR and AI-powered translation technology. With automatic source-language detection and context-aware adaptations, translations preserve formatting, tone, and intent. Your on-the-go language assistant. "
                            },
                            "label": "Note",
                            "name": "Translation Agent"
                        },
                        "dragHandle": ".note-drag-handle",
                        "dragging": false,
                        "height": 190,
                        "id": "Note:OpenCobrasMarry",
                        "measured": {
                            "height": 190,
                            "width": 376
                        },
                        "position": {
                            "x": 385.5,
                            "y": -42
                        },
                        "resizing": false,
                        "selected": false,
                        "sourcePosition": "right",
                        "targetPosition": "left",
                        "type": "noteNode",
                        "width": 376
                    }
                ]
            },
            "history": [],
            "messages": [],
            "path": [],
            "retrieval": []
        },
    "avatar": "data:image/png;base64,[encoded data, 8300 characters]"
}