GPTCache

Форк
0
/
report.py 
127 строк · 3.3 Кб
1
class Report:
2
    """Get GPTCache report including time and counts for different operations."""
3

4
    def __init__(self):
5
        self.op_pre = OpCounter()
6
        self.op_embedding = OpCounter()
7
        self.op_search = OpCounter()
8
        self.op_data = OpCounter()
9
        self.op_evaluation = OpCounter()
10
        self.op_post = OpCounter()
11
        self.op_llm = OpCounter()
12
        self.op_save = OpCounter()
13
        self.hint_cache_count = 0
14

15
    def pre(self, delta_time):
16
        """Pre-process counts and time.
17

18
        :param delta_time: additional runtime.
19
        """
20
        self.op_pre.total_time += delta_time
21
        self.op_pre.count += 1
22

23
    def embedding(self, delta_time):
24
        """Embedding counts and time.
25

26
        :param delta_time: additional runtime.
27
        """
28
        self.op_embedding.total_time += delta_time
29
        self.op_embedding.count += 1
30

31
    def search(self, delta_time):
32
        """Search counts and time.
33

34
        :param delta_time: additional runtime.
35
        """
36
        self.op_search.total_time += delta_time
37
        self.op_search.count += 1
38

39
    def data(self, delta_time):
40
        """Get data counts and time.
41

42
        :param delta_time: additional runtime.
43
        """
44

45
        self.op_data.total_time += delta_time
46
        self.op_data.count += 1
47

48
    def evaluation(self, delta_time):
49
        """Evaluation counts and time.
50

51
        :param delta_time: additional runtime.
52
        """
53
        self.op_evaluation.total_time += delta_time
54
        self.op_evaluation.count += 1
55

56
    def post(self, delta_time):
57
        """Post-process counts and time.
58

59
        :param delta_time: additional runtime.
60
        """
61
        self.op_post.total_time += delta_time
62
        self.op_post.count += 1
63

64
    def llm(self, delta_time):
65
        """LLM counts and time.
66

67
        :param delta_time: additional runtime.
68
        """
69
        self.op_llm.total_time += delta_time
70
        self.op_llm.count += 1
71

72
    def save(self, delta_time):
73
        """Save counts and time.
74

75
        :param delta_time: additional runtime.
76
        """
77
        self.op_save.total_time += delta_time
78
        self.op_save.count += 1
79

80
    def average_pre_time(self):
81
        """Average pre-process time."""
82
        return self.op_pre.average()
83

84
    def average_embedding_time(self):
85
        """Average embedding time."""
86
        return self.op_embedding.average()
87

88
    def average_search_time(self):
89
        """Average search time."""
90
        return self.op_search.average()
91

92
    def average_data_time(self):
93
        """Average data time."""
94
        return self.op_data.average()
95

96
    def average_evaluation_time(self):
97
        """Average evaluation time."""
98
        return self.op_evaluation.average()
99

100
    def average_post_time(self):
101
        """Average post-process time."""
102
        return self.op_post.average()
103

104
    def average_llm_time(self):
105
        """Average LLM time."""
106
        return self.op_llm.average()
107

108
    def average_save_time(self):
109
        """Average save time."""
110
        return self.op_save.average()
111

112
    def hint_cache(self):
113
        """hint cache count."""
114
        self.hint_cache_count += 1
115

116

117
class OpCounter:
118
    """Operation counter."""
119

120
    count = 0
121
    """Operation count."""
122
    total_time = 0
123
    """Total time."""
124

125
    def average(self):
126
        """Average time."""
127
        return round(self.total_time / self.count, 4) if self.count != 0 else 0
128

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.