|
14 | 14 | # |
15 | 15 | """Visualization utilities for GenAI Evaluation SDK.""" |
16 | 16 |
|
| 17 | +import base64 |
17 | 18 | import json |
18 | 19 | import logging |
19 | 20 | from typing import Any, Optional |
@@ -80,6 +81,7 @@ def stringify_cell(cell: Any) -> Optional[str]: |
80 | 81 |
|
81 | 82 | def _get_evaluation_html(eval_result_json: str) -> str: |
82 | 83 | """Returns a self-contained HTML for single evaluation visualization.""" |
| 84 | + payload_b64 = base64.b64encode(eval_result_json.encode("utf-8")).decode("utf-8") |
83 | 85 | return f""" |
84 | 86 | <!DOCTYPE html> |
85 | 87 | <html> |
@@ -254,7 +256,7 @@ def _get_evaluation_html(eval_result_json: str) -> str: |
254 | 256 | <div id="details-section"></div> |
255 | 257 | </div> |
256 | 258 | <script> |
257 | | - var vizData_vertex_eval_sdk = {eval_result_json}; |
| 259 | + var vizData_vertex_eval_sdk = JSON.parse(atob("{payload_b64}")); |
258 | 260 | function formatDictVals(obj) {{ |
259 | 261 | if (typeof obj === 'string') return obj; |
260 | 262 | if (obj === undefined || obj === null) return ''; |
@@ -556,6 +558,7 @@ def _get_evaluation_html(eval_result_json: str) -> str: |
556 | 558 |
|
557 | 559 | def _get_comparison_html(eval_result_json: str) -> str: |
558 | 560 | """Returns a self-contained HTML for a side-by-side eval comparison.""" |
| 561 | + payload_b64 = base64.b64encode(eval_result_json.encode("utf-8")).decode("utf-8") |
559 | 562 | return f""" |
560 | 563 | <!DOCTYPE html> |
561 | 564 | <html> |
@@ -616,7 +619,7 @@ def _get_comparison_html(eval_result_json: str) -> str: |
616 | 619 | <div id="details-section"></div> |
617 | 620 | </div> |
618 | 621 | <script> |
619 | | - var vizData_vertex_eval_sdk = {eval_result_json}; |
| 622 | + var vizData_vertex_eval_sdk = JSON.parse(atob("{payload_b64}")); |
620 | 623 | function renderSummary(summaryMetrics, metadata) {{ |
621 | 624 | const container = document.getElementById('summary-section'); |
622 | 625 | if (!summaryMetrics || summaryMetrics.length === 0) {{ container.innerHTML = '<h2>Summary Metrics</h2><p>No summary metrics.</p>'; return; }} |
@@ -696,6 +699,7 @@ def _get_comparison_html(eval_result_json: str) -> str: |
696 | 699 |
|
697 | 700 | def _get_inference_html(dataframe_json: str) -> str: |
698 | 701 | """Returns a self-contained HTML for displaying inference results.""" |
| 702 | + payload_b64 = base64.b64encode(dataframe_json.encode("utf-8")).decode("utf-8") |
699 | 703 | return f""" |
700 | 704 | <!DOCTYPE html> |
701 | 705 | <html> |
@@ -746,7 +750,7 @@ def _get_inference_html(dataframe_json: str) -> str: |
746 | 750 | <div id="results-table"></div> |
747 | 751 | </div> |
748 | 752 | <script> |
749 | | - var vizData_vertex_eval_sdk = {dataframe_json}; |
| 753 | + var vizData_vertex_eval_sdk = JSON.parse(atob("{payload_b64}")); |
750 | 754 | var container_vertex_eval_sdk = document.getElementById('results-table'); |
751 | 755 |
|
752 | 756 | function renderRubrics(cellValue) {{ |
|
0 commit comments