FEAT: Add Vega Char Visualizer Renderer

### FEAT: Add Vega Char Visualizer Renderer

Feature required in https://github.com/open-webui/open-webui/discussions/18022

Added npm vega lib to package.json
Added function for visualization renderer to src/libs/utils/index.ts
Added logic to src/lib/components/chat/Messages/CodeBlock.svelte

The treatment is similar as for mermaid diagrams.

Reference: https://vega.github.io/vega/
This commit is contained in:
_00_
2025-10-03 19:42:04 +02:00
parent 8334149cb2
commit 351ba167f5
3 changed files with 31 additions and 1 deletions
+13
View File
@@ -1596,3 +1596,16 @@ export const renderMermaidDiagram = async (code: string) => {
return '';
}
};
export const renderVegaVisualization = async (spec: string) => {
try {
const vega = await import('vega');
const parsedSpec = JSON.parse(spec);
const view = new vega.View(vega.parse(parsedSpec), { renderer: 'none' });
const svg = await view.toSVG();
return svg;
} catch (error) {
console.log('Failed to render Vega visualization:', error);
return '';
}
};