Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion vectordb_bench/frontend/components/check_results/filters.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ def getshownResults(
st,
results: list[TestResult],
case_results_filter: Callable[[CaseResult], bool] = lambda x: True,
default_selected_task_labels: list[str] = [],
**kwargs,
) -> list[CaseResult]:
resultSelectOptions = [
Expand All @@ -47,7 +48,7 @@ def getshownResults(
"Select the task results you need to analyze.",
resultSelectOptions,
# label_visibility="hidden",
default=resultSelectOptions,
default=default_selected_task_labels or resultSelectOptions,
)
selectedResult: list[CaseResult] = []
for option in selectedResultSelectedOptions:
Expand Down
1 change: 1 addition & 0 deletions vectordb_bench/frontend/components/check_results/nav.py
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ def NavToPages(st):
options = [
{"name": "Run Test", "link": "run_test"},
{"name": "Results", "link": "results"},
{"name": "Qps & Recall", "link": "qps_recall"},
{"name": "Quries Per Dollar", "link": "quries_per_dollar"},
{"name": "Concurrent", "link": "concurrent"},
{"name": "Label Filter", "link": "label_filter"},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ def initResultsPageConfig(st):
st.set_page_config(
page_title=PAGE_TITLE,
page_icon=FAVICON,
layout="wide",
# layout="wide",
# initial_sidebar_state="collapsed",
)

Expand Down
11 changes: 6 additions & 5 deletions vectordb_bench/frontend/components/qps_recall/charts.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,6 @@ def drawBestperformance(data, y, group):


def drawlinechart(st, data: list[object], metric, key: str):
unit = metric_unit_map.get(metric, "")
minV = min([d.get(metric, 0) for d in data])
maxV = max([d.get(metric, 0) for d in data])
padding = maxV - minV
Expand Down Expand Up @@ -87,11 +86,14 @@ def drawlinechart(st, data: list[object], metric, key: str):
go.Scatter(
x=db_data["recall"],
y=db_data["qps"],
mode="lines+markers",
mode="lines+markers+text",
name=db,
line=dict(color=color_map[db]),
marker=dict(color=color_map[db]),
showlegend=True,
hovertemplate="QPS=%{y:.4g}, Recall=%{x:.2f}",
text=[f"{qps:.4g}@{recall:.2f}" for recall, qps in zip(db_data["recall"], db_data["qps"])],
textposition="top right",
)
)

Expand All @@ -107,9 +109,8 @@ def drawlinechart(st, data: list[object], metric, key: str):
)
)

fig.update_xaxes(range=xrange)
fig.update_yaxes(range=yrange)
fig.update_traces(textposition="bottom right", texttemplate="%{y:,.4~r}" + unit)
fig.update_xaxes(range=xrange, title_text="Recall")
fig.update_yaxes(range=yrange, title_text="QPS")
fig.update_layout(
margin=dict(l=0, r=0, t=40, b=0, pad=8),
legend=dict(orientation="h", yanchor="bottom", y=1, xanchor="right", x=1, title=""),
Expand Down
16 changes: 15 additions & 1 deletion vectordb_bench/frontend/pages/qps_recall.py
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
import streamlit as st
from vectordb_bench.backend.cases import CaseLabel
from vectordb_bench.backend.filter import FilterOp
from vectordb_bench.frontend.components.check_results.footer import footer
from vectordb_bench.frontend.components.check_results.headerIcon import drawHeaderIcon
from vectordb_bench.frontend.components.check_results.nav import (
Expand All @@ -12,6 +14,7 @@

from vectordb_bench.frontend.config.styles import FAVICON
from vectordb_bench.interface import benchmark_runner
from vectordb_bench.models import CaseResult


def main():
Expand All @@ -35,7 +38,18 @@ def main():

# results selector and filter
resultSelectorContainer = st.sidebar.container()
shownData, failedTasks, showCaseNames = getshownData(resultSelectorContainer, allResults)

def case_results_filter(case_result: CaseResult) -> bool:
case = case_result.task_config.case_config.case
return case.label == CaseLabel.Performance and case.filters.type == FilterOp.NonFilter

default_selected_task_labels = ["standard_2025"]
shownData, failedTasks, showCaseNames = getshownData(
resultSelectorContainer,
allResults,
case_results_filter=case_results_filter,
default_selected_task_labels=default_selected_task_labels,
)

resultSelectorContainer.divider()

Expand Down