diysimon opened a new issue, #21592:
URL: https://github.com/apache/echarts/issues/21592

   ### What problem does this feature solve?
   
   [Context & Rationale]
   With the rapid integration of Large Language Models (LLMs) into data 
analysis and BI tools, ECharts has become a primary target for AI-generated 
visualizations. However, there is a significant "impedance mismatch" between 
LLM outputs and the current ECharts option structure. The existing API, while 
powerful and comprehensive, is highly verbose for LLMs, leading to frequent 
"hallucinations" in nested JSON structures, high token consumption, and 
instability in rendering styling details.
   
   [End User Experience]
   The goal is to enable a "Zero-Config" experience for AI-native applications. 
Developers should be able to pass a simplified, intent-based Markdown or JSON 
structure directly from the LLM to ECharts. The renderer should intelligently 
handle the "boilerplate" (like tooltips, basic axis styling, and grid layouts) 
based on the chart type and data, allowing the LLM to focus solely on the data 
and the high-level visual intent.
   
   [Why it cannot be easily dealt with existing APIs]
   While users can write custom "translation" layers, every developer is 
currently reinventing the wheel. A fragmented ecosystem of "ECharts-Lite" 
parsers leads to inconsistent user experiences across different AI platforms. 
By introducing a standardized, declarative "Lite" protocol within the ECharts 
ecosystem, we can:
   
   Lower the barrier for AI agents to interact with ECharts.
   
   Optimize performance by reducing the payload size in LLM streaming.
   
   Ensure visual consistency by separating data (from LLM) and theme/style 
(from the developer/ECharts defaults).
   
   ### What does the proposed API look like?
   
   We propose a Simplified Declarative Schema (e.g., echarts-lite) that can be 
used either as a standalone JSON or within a Markdown code block. This schema 
prioritizes a flat structure and the dataset component.
   
   Proposed Schema Example:
   
   JSON
   {
     "protocol": "echarts-lite/v1",
     "type": "line", 
     "title": "User Growth Trend",
     "data": [
       ["Month", "Users", "Retention"],
       ["2025-01", 150, 0.85],
       ["2025-02", 230, 0.82],
       ["2025-03", 224, 0.88]
     ],
     "options": {
       "smooth": true,
       "stack": false,
       "showSymbol": "auto"
     },
     "enhance": ["tooltip", "legend", "toolbox"] 
   }
   Implementation Suggestion:
   A new static method or a lightweight plugin, e.g., echarts.renderLite(dom, 
liteOption, theme), which:
   
   Expands the lite protocol into a full echarts.option object internally.
   
   Injects smart defaults for missing UI configurations (e.g., automatically 
generating series based on the data dimensions).
   
   Validates the input using a strict JSON Schema to provide clear error 
messages for LLM debugging.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to