MCPcopy
hub / github.com/Tele-AI/Telechat / History

Class History

models/7B/generation_utils.py:7–61  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

5
6
7class History:
8
9 def __init__(self, tokenizer, history):
10 '''
11 init from a list of dict
12 '''
13 # use deque to meet some special situation
14 self.input_history = deque()
15 self.tokenizer = tokenizer
16 if history:
17 self._transfer_from_list(history)
18
19 def _transfer_from_list(self, history):
20 for message in history:
21 content = message.get("content")
22 message.update(self.tokenizer(content))
23 self.input_history.append(message)
24
25 def append(self, message):
26 content = message.get("content")
27 message.update(self.tokenizer(content))
28 self.input_history.append(message)
29
30 def append_left(self, message):
31 content = message.get("content")
32 message.update(self.tokenizer(content))
33 self.input_history.appendleft(message)
34
35 def pop(self):
36 x = self.input_history.pop()
37 return x
38
39 def pop_left(self):
40 x = self.pop_left()
41 return x
42
43 def update(self, content: str):
44 x = self.input_history.pop()
45 self.append({"role": x["role"], "content": content})
46
47 def __len__(self):
48 return self.input_history.__len__()
49
50 def __str__(self):
51 return self.input_history.__str__()
52
53 def __copy__(self):
54 new_instance = type(self)(self.tokenizer, [])
55 new_instance.input_history = copy.copy(self.input_history)
56 return new_instance
57
58 def __deepcopy__(self, memodict={}):
59 new_instance = type(self)(self.tokenizer, [])
60 new_instance.input_history = copy.deepcopy(self.input_history)
61 return new_instance
62
63
64class TelechatIterTextStreamer:

Callers 1

chatMethod · 0.70

Calls

no outgoing calls

Tested by

no test coverage detected