INNER CODE UNIT · Python
_get_hash
usepr/eva · eva.py:501
def _get_hash(self, l: int, r: int) -> int:
return (self.prefix_hash[r] - self.prefix_hash[l] * self.pow_base[r - l]) % self.mod
def add_char(self, ch: str) -> bool:
self.pow_base.append((self.pow_base[-1] * self.base) % self.mod)
new_hash = (self.prefix_hash[-1] * self.base + ord(ch)) % self.mod
self.prefix_hash.append(new_hash)
n = len(self.prefix_hash) - 1
if n < 2 * self.min_unit_len or n % self.min_unit_len != 0:
return False
for unit_len in range(n // 2, self.min_unit_len - 1, -1):
if self._get_hash(n - 2 * unit_len, n - unit_len) == self._get_hash(n - unit_len, n):
return True
return False
def llm_chat_stream(messages, tools=None, temperature=0.6, thinking=True):