future_dashboads.ipynb
1 { 2 "cells": [ 3 { 4 "metadata": {}, 5 "cell_type": "code", 6 "outputs": [], 7 "execution_count": null, 8 "source": [ 9 "from random import randint\n", 10 "\n", 11 "from evidently.legacy.ui.dashboards.reports import DashboardPanelHistogram\n", 12 "from evidently import BinaryClassification\n", 13 "from evidently.metrics import PrecisionByLabel\n", 14 "from evidently.metrics.column_statistics import CategoryCount\n", 15 "from evidently.legacy.ui.dashboards import CounterAgg\n", 16 "from evidently.legacy.ui.dashboards import PanelValue\n", 17 "from evidently.legacy.ui.dashboards import ReportFilter\n", 18 "import datetime\n", 19 "import pandas as pd\n", 20 "\n", 21 "from evidently.metrics import MeanValue\n", 22 "from evidently.metrics import UniqueValueCount\n", 23 "from evidently import Dataset\n", 24 "from evidently import DataDefinition\n", 25 "from evidently import Report\n", 26 "\n", 27 "from evidently.ui.backport import snapshot_v2_to_v1\n", 28 "from evidently.ui.backport import SingleValueDashboardPanel\n", 29 "from evidently.tests import lte\n", 30 "from evidently.legacy.ui.dashboards import DashboardPanelCounter\n", 31 "from evidently.legacy.ui.workspace import Workspace\n", 32 "\n", 33 "def create_snapshot(i):\n", 34 " df = pd.DataFrame({\n", 35 " \"col\": list(randint(0, 5) for _ in range(i + 5)),\n", 36 " \"target\": list(x % 2 for x in range(i + 5)),\n", 37 " \"prediction\": list(x / 10 for x in range(i + 5)),\n", 38 " })\n", 39 " dataset = Dataset.from_pandas(\n", 40 " df,\n", 41 " data_definition=DataDefinition(\n", 42 " numerical_columns=[\"col\"],\n", 43 " classification=[BinaryClassification()]\n", 44 " ),\n", 45 " )\n", 46 " report = Report([MeanValue(column=\"col\", tests=[lte(4)]), UniqueValueCount(column=\"col\")])\n", 47 " snapshot_v2 = report.run(dataset, None)\n", 48 "\n", 49 " snapshot_v1 = snapshot_v2_to_v1(snapshot_v2)\n", 50 " import uuid6\n", 51 "\n", 52 " snapshot_v1.id = uuid6.UUID(int=i, version=7)\n", 53 " snapshot_v1.timestamp = datetime.datetime.now() - datetime.timedelta(days=1)\n", 54 " return snapshot_v1\n", 55 "\n", 56 "ws = Workspace.create(\"./workspace\")\n", 57 "from evidently.legacy.ui.type_aliases import ZERO_UUID\n", 58 "\n", 59 "project = ws.get_project(ZERO_UUID)\n", 60 "if project is None:\n", 61 " from evidently.legacy.ui.base import Project\n", 62 "\n", 63 " project = ws.add_project(Project(id=ZERO_UUID, name=\"test proj\"))\n", 64 "\n", 65 " project.dashboard.add_panel(SingleValueDashboardPanel(metric_id=MeanValue(column=\"col\", tests=[lte(4)]).metric_id))\n", 66 " project.dashboard.add_panel(DashboardPanelCounter(\n", 67 " title=\"Last mean value\",\n", 68 " agg=CounterAgg.LAST,\n", 69 " value=PanelValue(field_path=\"value\", metric_args={\"metric.metric_id\": \"2e5caa9690281e02cf243c736d687782\"}),\n", 70 " filter=ReportFilter(metadata_values={}, tag_values=[], include_test_suites=True),\n", 71 " ))\n", 72 " project.dashboard.add_panel(DashboardPanelHistogram(\n", 73 " title=\"Distr\",\n", 74 " value=PanelValue(field_path=\"values\", metric_args={\"metric.type\": \"evidently:metric_v2:UniqueValueCount\"}),\n", 75 " filter=ReportFilter(metadata_values={}, tag_values=[], include_test_suites=True),\n", 76 " ))\n", 77 " # project.dashboard.add_panel(SingleValueDashboardPanel(metric_id=\"mean:col\"))\n", 78 " project.save()\n", 79 "\n", 80 "for i in range(10):\n", 81 " project.add_snapshot(create_snapshot(i)) " 82 ], 83 "id": "c2b75597c8f29b64" 84 }, 85 { 86 "metadata": {}, 87 "cell_type": "code", 88 "outputs": [], 89 "execution_count": null, 90 "source": "# use `evidently ui` to run UI service to see project dashboard.", 91 "id": "88fe5102b323c186" 92 }, 93 { 94 "cell_type": "code", 95 "id": "babdaf65-d7a2-454d-9429-e270dd7fffc7", 96 "metadata": {}, 97 "source": [], 98 "outputs": [], 99 "execution_count": null 100 } 101 ], 102 "metadata": { 103 "kernelspec": { 104 "display_name": "Python 3 (ipykernel)", 105 "language": "python", 106 "name": "python3" 107 }, 108 "language_info": { 109 "codemirror_mode": { 110 "name": "ipython", 111 "version": 3 112 }, 113 "file_extension": ".py", 114 "mimetype": "text/x-python", 115 "name": "python", 116 "nbconvert_exporter": "python", 117 "pygments_lexer": "ipython3", 118 "version": "3.11.4" 119 } 120 }, 121 "nbformat": 4, 122 "nbformat_minor": 5 123 }