Add percentiles

This commit is contained in:
Weves
2023-11-02 13:23:06 -07:00
parent 8e81b935d1
commit e94d753821
2 changed files with 28 additions and 12 deletions

View File

@@ -442,9 +442,9 @@ def _query_vespa(query_params: Mapping[str, str | int]) -> list[InferenceChunk]:
SEARCH_ENDPOINT, SEARCH_ENDPOINT,
params=dict( params=dict(
**query_params, **query_params,
# **{ **{
# "presentation.timing": True, "presentation.timing": True,
# }, },
), ),
) )
response.raise_for_status() response.raise_for_status()

View File

@@ -1,6 +1,7 @@
import random import random
import time import time
import nltk
import requests import requests
from danswer.configs.app_configs import DOCUMENT_INDEX_NAME from danswer.configs.app_configs import DOCUMENT_INDEX_NAME
@@ -112,13 +113,24 @@ additional_questions = [
"What is the study of fossils called?", "What is the study of fossils called?",
] ]
# Download the wordlist
nltk.download("words")
from nltk.corpus import words # noqa: E402
def generate_random_sentence():
word_list = words.words()
sentence_length = random.randint(5, 10)
sentence = " ".join(random.choices(word_list, k=sentence_length))
return sentence
def _measure_hybrid_search_latency(filters: dict = {}): def _measure_hybrid_search_latency(filters: dict = {}):
start = time.monotonic() start = time.monotonic()
response = requests.post( response = requests.post(
"http://localhost:8080/document-search", "http://localhost:8080/document-search",
json={ json={
"query": random.choice(additional_questions), "query": generate_random_sentence(),
"collection": DOCUMENT_INDEX_NAME, "collection": DOCUMENT_INDEX_NAME,
"filters": filters, "filters": filters,
"enable_auto_detect_filters": False, "enable_auto_detect_filters": False,
@@ -132,15 +144,19 @@ def _measure_hybrid_search_latency(filters: dict = {}):
if __name__ == "__main__": if __name__ == "__main__":
latencies: list[float] = [] latencies: list[float] = []
for _ in range(50): num_trials = 100
for _ in range(num_trials):
latencies.append(_measure_hybrid_search_latency()) latencies.append(_measure_hybrid_search_latency())
print("Latency", latencies[-1]) print("Latency", latencies[-1])
print(f"Average latency: {sum(latencies) / len(latencies)}")
print("Testing with filters")
for _ in range(50):
latencies.append(
_measure_hybrid_search_latency(filters={"source_type": ["file"]})
)
print("Latency", latencies[-1])
print(f"Average latency: {sum(latencies) / len(latencies)}") print(f"Average latency: {sum(latencies) / len(latencies)}")
print(f"P50: {latencies[num_trials * 0.5]}")
print(f"P95: {latencies[num_trials * 0.95]}")
# print("Testing with filters")
# for _ in range(50):
# latencies.append(
# _measure_hybrid_search_latency(filters={"source_type": ["file"]})
# )
# print("Latency", latencies[-1])
# print(f"Average latency: {sum(latencies) / len(latencies)}")