Spaces:
Runtime error
Runtime error
File size: 1,989 Bytes
e2e8616 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 |
import math
class Block:
def __init__(self, doc: str= '',title: str = '', content: str = '',
index: str = '', rank: int = 0, level: int = 0, distance: float = 99999):
self.doc = doc
self.title = title
self.content = content
self.index = index
self.rank = rank
self.level = level
self.distance = distance
@property
def distance_str(self) -> str:
return format(self.distance, '.2f')
def separate_1_block_in_n(self, max_size=4500):
"""
Separate a block in n blocks of equal size
"""
content_length = len(self.content)
n = math.ceil(content_length / max_size)
block_size = content_length // n
new_blocks = []
for i in range(n):
start = i * block_size
end = (i + 1) * block_size if i < n - 1 else None
new_blocks.append(Block(doc=self.doc,
title=self.title + f"_part{i}",
content=self.content[start:end],
index=self.index + f"_{i}",
rank=self.rank,
level=self.level))
return new_blocks
def to_dict(self) -> {}:
block_dict = {'doc': self.doc,
'title': self.title,
'content': self.content,
'index': self.index,
'rank': self.rank,
'level': self.level,
'distance': self.distance}
return block_dict
def from_dict(self, block_dict: {}):
self.doc = block_dict['doc']
self.title = block_dict['title']
self.content = block_dict['content']
self.index = block_dict['index']
self.rank = block_dict['rank']
self.level = block_dict['level']
self.distance = block_dict['distance']
return self
|