From 3ff5074cf5970d1285b4a49d1b7221593f0e8a99 Mon Sep 17 00:00:00 2001 From: sabaimran Date: Wed, 5 Jul 2023 14:59:44 -0700 Subject: [PATCH] Log the end-to-end time of generating a streamed response from OpenAI --- src/khoj/processor/conversation/utils.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/khoj/processor/conversation/utils.py b/src/khoj/processor/conversation/utils.py index cab4ef19..4c3e7619 100644 --- a/src/khoj/processor/conversation/utils.py +++ b/src/khoj/processor/conversation/utils.py @@ -2,6 +2,7 @@ import os import logging from datetime import datetime +from time import perf_counter from typing import Any from threading import Thread import json @@ -38,6 +39,7 @@ class ThreadedGenerator: self.compiled_references = compiled_references self.completion_func = completion_func self.response = "" + self.start_time = perf_counter() def __iter__(self): return self @@ -45,6 +47,8 @@ class ThreadedGenerator: def __next__(self): item = self.queue.get() if item is StopIteration: + time_to_response = perf_counter() - self.start_time + logger.info(f"Time to stream full response: {time_to_response:.3f}") if self.completion_func: # The completion func effective acts as a callback. # It adds the aggregated response to the conversation history. It's constructed in api.py.