mirror of
https://github.com/opendatalab/MinerU.git
synced 2026-03-27 11:08:32 +07:00
Compare commits
19 Commits
release-2.
...
release-2.
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a50616b089 | ||
|
|
da56746668 | ||
|
|
259ab11e74 | ||
|
|
64c7ac0083 | ||
|
|
4d0b6a0513 | ||
|
|
74726662ce | ||
|
|
990782acfc | ||
|
|
2ce4352a25 | ||
|
|
e76f29639f | ||
|
|
60d32b8ac1 | ||
|
|
1dbe356fa4 | ||
|
|
a67ff8707e | ||
|
|
7b701e4907 | ||
|
|
1b6ed5d0a0 | ||
|
|
d85b5e86cd | ||
|
|
9c6778d5ad | ||
|
|
22f5b0b4b4 | ||
|
|
2b3b4331f2 | ||
|
|
0de4075586 |
10
README.md
10
README.md
@@ -17,7 +17,7 @@
|
||||
[](https://mineru.net/OpenSourceTools/Extractor?source=github)
|
||||
[](https://huggingface.co/spaces/opendatalab/MinerU)
|
||||
[](https://www.modelscope.cn/studios/OpenDataLab/MinerU)
|
||||
[](https://colab.research.google.com/gist/myhloli/3b3a00a4a0a61577b6c30f989092d20d/mineru_demo.ipynb)
|
||||
[](https://colab.research.google.com/gist/myhloli/a3cb16570ab3cfeadf9d8f0ac91b4fca/mineru_demo.ipynb)
|
||||
[](https://arxiv.org/abs/2409.18839)
|
||||
[](https://deepwiki.com/opendatalab/MinerU)
|
||||
|
||||
@@ -43,11 +43,13 @@
|
||||
</div>
|
||||
|
||||
# Changelog
|
||||
- 2025/07/30 version 2.1.9 Released
|
||||
- 2025/08/01 2.1.10 Released
|
||||
- Fixed an issue in the `pipeline` backend where block overlap caused the parsing results to deviate from expectations #3232
|
||||
- 2025/07/30 2.1.9 Released
|
||||
- `transformers` 4.54.1 version adaptation
|
||||
- 2025/07/28 version 2.1.8 Released
|
||||
- 2025/07/28 2.1.8 Released
|
||||
- `sglang` 0.4.9.post5 version adaptation
|
||||
- 2025/07/27 version 2.1.7 Released
|
||||
- 2025/07/27 2.1.7 Released
|
||||
- `transformers` 4.54.0 version adaptation
|
||||
- 2025/07/26 2.1.6 Released
|
||||
- Fixed table parsing issues in handwritten documents when using `vlm` backend
|
||||
|
||||
@@ -17,7 +17,7 @@
|
||||
[](https://mineru.net/OpenSourceTools/Extractor?source=github)
|
||||
[](https://www.modelscope.cn/studios/OpenDataLab/MinerU)
|
||||
[](https://huggingface.co/spaces/opendatalab/MinerU)
|
||||
[](https://colab.research.google.com/gist/myhloli/3b3a00a4a0a61577b6c30f989092d20d/mineru_demo.ipynb)
|
||||
[](https://colab.research.google.com/gist/myhloli/a3cb16570ab3cfeadf9d8f0ac91b4fca/mineru_demo.ipynb)
|
||||
[](https://arxiv.org/abs/2409.18839)
|
||||
[](https://deepwiki.com/opendatalab/MinerU)
|
||||
|
||||
@@ -43,6 +43,8 @@
|
||||
</div>
|
||||
|
||||
# 更新记录
|
||||
- 2025/08/01 2.1.10 发布
|
||||
- 修复`pipeline`后端因block覆盖导致的解析结果与预期不符 #3232
|
||||
- 2025/07/30 2.1.9 发布
|
||||
- `transformers` 4.54.1 版本适配
|
||||
- 2025/07/28 2.1.8 发布
|
||||
|
||||
@@ -1,5 +1,10 @@
|
||||
# Use DaoCloud mirrored sglang image for China region
|
||||
FROM docker.m.daocloud.io/lmsysorg/sglang:v0.4.9.post6-cu126
|
||||
# For blackwell GPU, use the following line instead:
|
||||
# FROM docker.m.daocloud.io/lmsysorg/sglang:v0.4.9.post6-cu128-b200
|
||||
|
||||
# Use the official sglang image
|
||||
FROM lmsysorg/sglang:v0.4.9.post6-cu126
|
||||
# FROM lmsysorg/sglang:v0.4.9.post6-cu126
|
||||
# For blackwell GPU, use the following line instead:
|
||||
# FROM lmsysorg/sglang:v0.4.9.post6-cu128-b200
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
[](https://mineru.net/OpenSourceTools/Extractor?source=github)
|
||||
[](https://huggingface.co/spaces/opendatalab/MinerU)
|
||||
[](https://www.modelscope.cn/studios/OpenDataLab/MinerU)
|
||||
[](https://colab.research.google.com/gist/myhloli/3b3a00a4a0a61577b6c30f989092d20d/mineru_demo.ipynb)
|
||||
[](https://colab.research.google.com/gist/myhloli/a3cb16570ab3cfeadf9d8f0ac91b4fca/mineru_demo.ipynb)
|
||||
[](https://arxiv.org/abs/2409.18839)
|
||||
[](https://deepwiki.com/opendatalab/MinerU)
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
[](https://mineru.net/OpenSourceTools/Extractor?source=github)
|
||||
[](https://www.modelscope.cn/studios/OpenDataLab/MinerU)
|
||||
[](https://huggingface.co/spaces/opendatalab/MinerU)
|
||||
[](https://colab.research.google.com/gist/myhloli/3b3a00a4a0a61577b6c30f989092d20d/mineru_demo.ipynb)
|
||||
[](https://colab.research.google.com/gist/myhloli/a3cb16570ab3cfeadf9d8f0ac91b4fca/mineru_demo.ipynb)
|
||||
[](https://arxiv.org/abs/2409.18839)
|
||||
[](https://deepwiki.com/opendatalab/MinerU)
|
||||
|
||||
|
||||
@@ -55,25 +55,34 @@ def page_model_info_to_page_info(page_model_info, image_dict, page, image_writer
|
||||
"""某些图可能是文本块,通过简单的规则判断一下"""
|
||||
if len(maybe_text_image_blocks) > 0:
|
||||
for block in maybe_text_image_blocks:
|
||||
span_in_block_list = []
|
||||
for span in spans:
|
||||
if span['type'] == 'text' and calculate_overlap_area_in_bbox1_area_ratio(span['bbox'], block['bbox']) > 0.7:
|
||||
span_in_block_list.append(span)
|
||||
if len(span_in_block_list) > 0:
|
||||
# span_in_block_list中所有bbox的面积之和
|
||||
spans_area = sum((span['bbox'][2] - span['bbox'][0]) * (span['bbox'][3] - span['bbox'][1]) for span in span_in_block_list)
|
||||
# 求ocr_res_area和res的面积的比值
|
||||
block_area = (block['bbox'][2] - block['bbox'][0]) * (block['bbox'][3] - block['bbox'][1])
|
||||
if block_area > 0:
|
||||
ratio = spans_area / block_area
|
||||
if ratio > 0.25 and ocr_enable:
|
||||
# 移除block的group_id
|
||||
block.pop('group_id', None)
|
||||
# 符合文本图的条件就把块加入到文本块列表中
|
||||
text_blocks.append(block)
|
||||
else:
|
||||
# 如果不符合文本图的条件,就把块加回到图片块列表中
|
||||
img_body_blocks.append(block)
|
||||
should_add_to_text_blocks = False
|
||||
|
||||
if ocr_enable:
|
||||
# 找到与当前block重叠的text spans
|
||||
span_in_block_list = [
|
||||
span for span in spans
|
||||
if span['type'] == 'text' and
|
||||
calculate_overlap_area_in_bbox1_area_ratio(span['bbox'], block['bbox']) > 0.7
|
||||
]
|
||||
|
||||
if len(span_in_block_list) > 0:
|
||||
# 计算spans总面积
|
||||
spans_area = sum(
|
||||
(span['bbox'][2] - span['bbox'][0]) * (span['bbox'][3] - span['bbox'][1])
|
||||
for span in span_in_block_list
|
||||
)
|
||||
|
||||
# 计算block面积
|
||||
block_area = (block['bbox'][2] - block['bbox'][0]) * (block['bbox'][3] - block['bbox'][1])
|
||||
|
||||
# 判断是否符合文本图条件
|
||||
if block_area > 0 and spans_area / block_area > 0.25:
|
||||
should_add_to_text_blocks = True
|
||||
|
||||
# 根据条件决定添加到哪个列表
|
||||
if should_add_to_text_blocks:
|
||||
block.pop('group_id', None) # 移除group_id
|
||||
text_blocks.append(block)
|
||||
else:
|
||||
img_body_blocks.append(block)
|
||||
|
||||
|
||||
@@ -131,15 +131,10 @@ def merge_high_iou_tables(table_res_list, layout_res, table_indices, iou_thresho
|
||||
|
||||
# Create merged table
|
||||
merged_table = table_res_list[i].copy()
|
||||
merged_table['poly'][0] = union_xmin
|
||||
merged_table['poly'][1] = union_ymin
|
||||
merged_table['poly'][2] = union_xmax
|
||||
merged_table['poly'][3] = union_ymin
|
||||
merged_table['poly'][4] = union_xmax
|
||||
merged_table['poly'][5] = union_ymax
|
||||
merged_table['poly'][6] = union_xmin
|
||||
merged_table['poly'][7] = union_ymax
|
||||
|
||||
merged_table['poly'] = [
|
||||
union_xmin, union_ymin, union_xmax, union_ymin,
|
||||
union_xmax, union_ymax, union_xmin, union_ymax
|
||||
]
|
||||
# Update layout_res
|
||||
to_remove = [table_indices[j], table_indices[i]]
|
||||
for idx in sorted(to_remove, reverse=True):
|
||||
@@ -253,6 +248,83 @@ def remove_overlaps_min_blocks(res_list):
|
||||
return res_list, need_remove
|
||||
|
||||
|
||||
def remove_overlaps_low_confidence_blocks(combined_res_list, overlap_threshold=0.8):
|
||||
"""
|
||||
Remove low-confidence blocks that overlap with other blocks.
|
||||
|
||||
This function identifies and removes blocks with low confidence scores that overlap
|
||||
with other blocks. It calculates the coordinates and area of each block, and checks
|
||||
for overlaps based on a specified threshold. Blocks that meet the criteria for removal
|
||||
are returned in a list.
|
||||
|
||||
Parameters:
|
||||
combined_res_list (list): A list of blocks, where each block is a dictionary containing
|
||||
keys like 'poly' (polygon coordinates) and optionally 'score' (confidence score).
|
||||
overlap_threshold (float): The threshold for determining overlap between blocks. Default is 0.8.
|
||||
|
||||
Returns:
|
||||
list: A list of blocks to be removed, based on the overlap and confidence criteria.
|
||||
"""
|
||||
# 计算每个block的坐标和面积
|
||||
block_info = []
|
||||
for block in combined_res_list:
|
||||
xmin, ymin = int(block['poly'][0]), int(block['poly'][1])
|
||||
xmax, ymax = int(block['poly'][4]), int(block['poly'][5])
|
||||
area = (xmax - xmin) * (ymax - ymin)
|
||||
score = block.get('score', 0.5) # 如果没有score字段,默认为0.5
|
||||
block_info.append((xmin, ymin, xmax, ymax, area, score, block))
|
||||
|
||||
blocks_to_remove = []
|
||||
marked_indices = set() # 跟踪已标记为删除的block索引
|
||||
|
||||
# 检查每个block内部是否有3个及以上的小block
|
||||
for i, (xmin, ymin, xmax, ymax, area, score, block) in enumerate(block_info):
|
||||
# 如果当前block已标记为删除,则跳过
|
||||
if i in marked_indices:
|
||||
continue
|
||||
|
||||
# 查找内部的小block (仅考虑尚未被标记为删除的block)
|
||||
blocks_inside = [(j, j_score, j_block) for j, (xj_min, yj_min, xj_max, yj_max, j_area, j_score, j_block) in
|
||||
enumerate(block_info)
|
||||
if i != j and j not in marked_indices and is_inside(block_info[j], block_info[i],
|
||||
overlap_threshold)]
|
||||
|
||||
# 如果内部有3个及以上的小block
|
||||
if len(blocks_inside) >= 3:
|
||||
# 计算小block的平均分数
|
||||
avg_score = sum(s for _, s, _ in blocks_inside) / len(blocks_inside)
|
||||
|
||||
# 比较大block的分数和小block的平均分数
|
||||
if score > avg_score:
|
||||
# 保留大block,扩展其边界
|
||||
# 首先将所有小block标记为要删除
|
||||
for j, _, j_block in blocks_inside:
|
||||
if j_block not in blocks_to_remove:
|
||||
blocks_to_remove.append(j_block)
|
||||
marked_indices.add(j) # 标记索引为已处理
|
||||
|
||||
# 扩展大block的边界以包含所有小block
|
||||
new_xmin, new_ymin, new_xmax, new_ymax = xmin, ymin, xmax, ymax
|
||||
for _, _, j_block in blocks_inside:
|
||||
j_xmin, j_ymin = int(j_block['poly'][0]), int(j_block['poly'][1])
|
||||
j_xmax, j_ymax = int(j_block['poly'][4]), int(j_block['poly'][5])
|
||||
new_xmin = min(new_xmin, j_xmin)
|
||||
new_ymin = min(new_ymin, j_ymin)
|
||||
new_xmax = max(new_xmax, j_xmax)
|
||||
new_ymax = max(new_ymax, j_ymax)
|
||||
|
||||
# 更新大block的边界
|
||||
block['poly'][0] = block['poly'][6] = new_xmin
|
||||
block['poly'][1] = block['poly'][3] = new_ymin
|
||||
block['poly'][2] = block['poly'][4] = new_xmax
|
||||
block['poly'][5] = block['poly'][7] = new_ymax
|
||||
else:
|
||||
# 保留小blocks,删除大block
|
||||
blocks_to_remove.append(block)
|
||||
marked_indices.add(i) # 标记当前索引为已处理
|
||||
return blocks_to_remove
|
||||
|
||||
|
||||
def get_res_list_from_layout_res(layout_res, iou_threshold=0.7, overlap_threshold=0.8, area_threshold=0.8):
|
||||
"""Extract OCR, table and other regions from layout results."""
|
||||
ocr_res_list = []
|
||||
@@ -311,6 +383,19 @@ def get_res_list_from_layout_res(layout_res, iou_threshold=0.7, overlap_threshol
|
||||
del res['bbox']
|
||||
layout_res.remove(res)
|
||||
|
||||
# 检测大block内部是否包含多个小block, 合并ocr和table列表进行检测
|
||||
combined_res_list = ocr_res_list + filtered_table_res_list
|
||||
blocks_to_remove = remove_overlaps_low_confidence_blocks(combined_res_list, overlap_threshold)
|
||||
# 移除需要删除的blocks
|
||||
for block in blocks_to_remove:
|
||||
if block in ocr_res_list:
|
||||
ocr_res_list.remove(block)
|
||||
elif block in filtered_table_res_list:
|
||||
filtered_table_res_list.remove(block)
|
||||
# 同时从layout_res中删除
|
||||
if block in layout_res:
|
||||
layout_res.remove(block)
|
||||
|
||||
return ocr_res_list, filtered_table_res_list, single_page_mfdetrec_res
|
||||
|
||||
|
||||
|
||||
@@ -1 +1 @@
|
||||
__version__ = "2.1.8"
|
||||
__version__ = "2.1.9"
|
||||
|
||||
@@ -1,404 +0,0 @@
|
||||
{
|
||||
"signedContributors": [
|
||||
{
|
||||
"name": "eltociear",
|
||||
"id": 22633385,
|
||||
"comment_id": 2254564260,
|
||||
"created_at": "2024-07-28T15:55:21Z",
|
||||
"repoId": 765083837,
|
||||
"pullRequestNo": 231
|
||||
},
|
||||
{
|
||||
"name": "nutshellfool",
|
||||
"id": 1439114,
|
||||
"comment_id": 2259763094,
|
||||
"created_at": "2024-07-31T06:24:39Z",
|
||||
"repoId": 765083837,
|
||||
"pullRequestNo": 258
|
||||
},
|
||||
{
|
||||
"name": "zuanzuanshao",
|
||||
"id": 43691054,
|
||||
"comment_id": 2272997756,
|
||||
"created_at": "2024-08-07T09:11:10Z",
|
||||
"repoId": 765083837,
|
||||
"pullRequestNo": 355
|
||||
},
|
||||
{
|
||||
"name": "Thepathakarpit",
|
||||
"id": 119810812,
|
||||
"comment_id": 2286123353,
|
||||
"created_at": "2024-08-13T12:23:16Z",
|
||||
"repoId": 765083837,
|
||||
"pullRequestNo": 418
|
||||
},
|
||||
{
|
||||
"name": "Matthijz98",
|
||||
"id": 17087153,
|
||||
"comment_id": 2298912989,
|
||||
"created_at": "2024-08-20T13:49:50Z",
|
||||
"repoId": 765083837,
|
||||
"pullRequestNo": 467
|
||||
},
|
||||
{
|
||||
"name": "strongerfly",
|
||||
"id": 11643869,
|
||||
"comment_id": 2309481561,
|
||||
"created_at": "2024-08-26T07:01:49Z",
|
||||
"repoId": 765083837,
|
||||
"pullRequestNo": 487
|
||||
},
|
||||
{
|
||||
"name": "hamirmahal",
|
||||
"id": 43425812,
|
||||
"comment_id": 2395141155,
|
||||
"created_at": "2024-10-05T18:22:47Z",
|
||||
"repoId": 765083837,
|
||||
"pullRequestNo": 687
|
||||
},
|
||||
{
|
||||
"name": "wmpscc",
|
||||
"id": 29891793,
|
||||
"comment_id": 2416780426,
|
||||
"created_at": "2024-10-16T13:02:13Z",
|
||||
"repoId": 765083837,
|
||||
"pullRequestNo": 682
|
||||
},
|
||||
{
|
||||
"name": "randydl",
|
||||
"id": 36127931,
|
||||
"comment_id": 2439668779,
|
||||
"created_at": "2024-10-26T17:39:26Z",
|
||||
"repoId": 765083837,
|
||||
"pullRequestNo": 793
|
||||
},
|
||||
{
|
||||
"name": "hyastar",
|
||||
"id": 117415976,
|
||||
"comment_id": 2466539016,
|
||||
"created_at": "2024-11-10T01:32:42Z",
|
||||
"repoId": 765083837,
|
||||
"pullRequestNo": 916
|
||||
},
|
||||
{
|
||||
"name": "kimi360",
|
||||
"id": 3158007,
|
||||
"comment_id": 2472266659,
|
||||
"created_at": "2024-11-13T02:57:34Z",
|
||||
"repoId": 765083837,
|
||||
"pullRequestNo": 938
|
||||
},
|
||||
{
|
||||
"name": "ProseGuys",
|
||||
"id": 45124798,
|
||||
"comment_id": 2472990455,
|
||||
"created_at": "2024-11-13T09:37:42Z",
|
||||
"repoId": 765083837,
|
||||
"pullRequestNo": 945
|
||||
},
|
||||
{
|
||||
"name": "liugongjian",
|
||||
"id": 9069358,
|
||||
"comment_id": 2484888409,
|
||||
"created_at": "2024-11-19T07:28:12Z",
|
||||
"repoId": 765083837,
|
||||
"pullRequestNo": 1024
|
||||
},
|
||||
{
|
||||
"name": "MatthewZMD",
|
||||
"id": 12422335,
|
||||
"comment_id": 2565021810,
|
||||
"created_at": "2024-12-30T04:46:33Z",
|
||||
"repoId": 765083837,
|
||||
"pullRequestNo": 1379
|
||||
},
|
||||
{
|
||||
"name": "yzztin",
|
||||
"id": 99233593,
|
||||
"comment_id": 2568773016,
|
||||
"created_at": "2025-01-03T07:02:55Z",
|
||||
"repoId": 765083837,
|
||||
"pullRequestNo": 1397
|
||||
},
|
||||
{
|
||||
"name": "utopia2077",
|
||||
"id": 78017255,
|
||||
"comment_id": 2571704177,
|
||||
"created_at": "2025-01-05T17:57:17Z",
|
||||
"repoId": 765083837,
|
||||
"pullRequestNo": 1412
|
||||
},
|
||||
{
|
||||
"name": "beholder91",
|
||||
"id": 113708464,
|
||||
"comment_id": 2581919559,
|
||||
"created_at": "2025-01-10T06:58:05Z",
|
||||
"repoId": 765083837,
|
||||
"pullRequestNo": 1479
|
||||
},
|
||||
{
|
||||
"name": "moria97",
|
||||
"id": 59813791,
|
||||
"comment_id": 2601404928,
|
||||
"created_at": "2025-01-20T05:30:38Z",
|
||||
"repoId": 765083837,
|
||||
"pullRequestNo": 1578
|
||||
},
|
||||
{
|
||||
"name": "shniubobo",
|
||||
"id": 6594544,
|
||||
"comment_id": 2660086464,
|
||||
"created_at": "2025-02-14T19:15:25Z",
|
||||
"repoId": 765083837,
|
||||
"pullRequestNo": 1693
|
||||
},
|
||||
{
|
||||
"name": "xuzijie1995",
|
||||
"id": 25075527,
|
||||
"comment_id": 2676066426,
|
||||
"created_at": "2025-02-22T07:15:35Z",
|
||||
"repoId": 765083837,
|
||||
"pullRequestNo": 1743
|
||||
},
|
||||
{
|
||||
"name": "nadahlberg",
|
||||
"id": 58701810,
|
||||
"comment_id": 2676309097,
|
||||
"created_at": "2025-02-22T17:04:14Z",
|
||||
"repoId": 765083837,
|
||||
"pullRequestNo": 1748
|
||||
},
|
||||
{
|
||||
"name": "BetterAndBetterII",
|
||||
"id": 141388234,
|
||||
"comment_id": 2680567709,
|
||||
"created_at": "2025-02-25T05:21:05Z",
|
||||
"repoId": 765083837,
|
||||
"pullRequestNo": 1767
|
||||
},
|
||||
{
|
||||
"name": "luckymore",
|
||||
"id": 5390013,
|
||||
"comment_id": 2684392503,
|
||||
"created_at": "2025-02-26T09:23:25Z",
|
||||
"repoId": 765083837,
|
||||
"pullRequestNo": 1785
|
||||
},
|
||||
{
|
||||
"name": "rschutski",
|
||||
"id": 179498169,
|
||||
"comment_id": 2705150371,
|
||||
"created_at": "2025-03-06T23:16:30Z",
|
||||
"repoId": 765083837,
|
||||
"pullRequestNo": 1863
|
||||
},
|
||||
{
|
||||
"name": "qbit-",
|
||||
"id": 4794088,
|
||||
"comment_id": 2705914730,
|
||||
"created_at": "2025-03-07T09:09:13Z",
|
||||
"repoId": 765083837,
|
||||
"pullRequestNo": 1863
|
||||
},
|
||||
{
|
||||
"name": "mauryaland",
|
||||
"id": 22381129,
|
||||
"comment_id": 2717322316,
|
||||
"created_at": "2025-03-12T10:03:11Z",
|
||||
"repoId": 765083837,
|
||||
"pullRequestNo": 1906
|
||||
},
|
||||
{
|
||||
"name": "ZMR2194888146",
|
||||
"id": 23751306,
|
||||
"comment_id": 2742090197,
|
||||
"created_at": "2025-03-21T02:23:38Z",
|
||||
"repoId": 765083837,
|
||||
"pullRequestNo": 1950
|
||||
},
|
||||
{
|
||||
"name": "Zephor5",
|
||||
"id": 2234158,
|
||||
"comment_id": 2748052094,
|
||||
"created_at": "2025-03-24T12:58:56Z",
|
||||
"repoId": 765083837,
|
||||
"pullRequestNo": 1982
|
||||
},
|
||||
{
|
||||
"name": "zjx20",
|
||||
"id": 2639200,
|
||||
"comment_id": 2800714918,
|
||||
"created_at": "2025-04-14T07:25:26Z",
|
||||
"repoId": 765083837,
|
||||
"pullRequestNo": 2215
|
||||
},
|
||||
{
|
||||
"name": "Doge2077",
|
||||
"id": 91442300,
|
||||
"comment_id": 2801283257,
|
||||
"created_at": "2025-04-14T10:40:54Z",
|
||||
"repoId": 765083837,
|
||||
"pullRequestNo": 2226
|
||||
},
|
||||
{
|
||||
"name": "vloum",
|
||||
"id": 75369577,
|
||||
"comment_id": 2811669681,
|
||||
"created_at": "2025-04-17T03:54:59Z",
|
||||
"repoId": 765083837,
|
||||
"pullRequestNo": 2267
|
||||
},
|
||||
{
|
||||
"name": "kowyo",
|
||||
"id": 110339237,
|
||||
"comment_id": 2829263082,
|
||||
"created_at": "2025-04-25T02:54:20Z",
|
||||
"repoId": 765083837,
|
||||
"pullRequestNo": 2367
|
||||
},
|
||||
{
|
||||
"name": "CharlesKeeling65",
|
||||
"id": 94165417,
|
||||
"comment_id": 2841356871,
|
||||
"created_at": "2025-04-30T09:25:31Z",
|
||||
"repoId": 765083837,
|
||||
"pullRequestNo": 2411
|
||||
},
|
||||
{
|
||||
"name": "seedclaimer",
|
||||
"id": 86753366,
|
||||
"comment_id": 2916194375,
|
||||
"created_at": "2025-05-28T12:50:25Z",
|
||||
"repoId": 765083837,
|
||||
"pullRequestNo": 2536
|
||||
},
|
||||
{
|
||||
"name": "liuzhenghua",
|
||||
"id": 11787325,
|
||||
"comment_id": 2921092605,
|
||||
"created_at": "2025-05-30T02:57:07Z",
|
||||
"repoId": 765083837,
|
||||
"pullRequestNo": 2550
|
||||
},
|
||||
{
|
||||
"name": "PairZhu",
|
||||
"id": 47098840,
|
||||
"comment_id": 2938149702,
|
||||
"created_at": "2025-06-04T02:39:39Z",
|
||||
"repoId": 765083837,
|
||||
"pullRequestNo": 2566
|
||||
},
|
||||
{
|
||||
"name": "AdrianWangs",
|
||||
"id": 72337244,
|
||||
"comment_id": 2943818300,
|
||||
"created_at": "2025-06-05T11:30:42Z",
|
||||
"repoId": 765083837,
|
||||
"pullRequestNo": 2578
|
||||
},
|
||||
{
|
||||
"name": "YanzhenHuang",
|
||||
"id": 86364920,
|
||||
"comment_id": 2968974232,
|
||||
"created_at": "2025-06-13T04:17:08Z",
|
||||
"repoId": 765083837,
|
||||
"pullRequestNo": 2620
|
||||
},
|
||||
{
|
||||
"name": "Ar-Hyk",
|
||||
"id": 55748412,
|
||||
"comment_id": 2970512136,
|
||||
"created_at": "2025-06-13T14:02:16Z",
|
||||
"repoId": 765083837,
|
||||
"pullRequestNo": 2634
|
||||
},
|
||||
{
|
||||
"name": "hotelll",
|
||||
"id": 45009029,
|
||||
"comment_id": 2978780331,
|
||||
"created_at": "2025-06-17T03:09:54Z",
|
||||
"repoId": 765083837,
|
||||
"pullRequestNo": 2676
|
||||
},
|
||||
{
|
||||
"name": "hsia",
|
||||
"id": 654127,
|
||||
"comment_id": 2979415817,
|
||||
"created_at": "2025-06-17T17:35:10Z",
|
||||
"repoId": 765083837,
|
||||
"pullRequestNo": 2699
|
||||
},
|
||||
{
|
||||
"name": "CHENyuuuuuuu",
|
||||
"id": 32993095,
|
||||
"comment_id": 2982868924,
|
||||
"created_at": "2025-06-18T06:34:06Z",
|
||||
"repoId": 765083837,
|
||||
"pullRequestNo": 2719
|
||||
},
|
||||
{
|
||||
"name": "yuanjua",
|
||||
"id": 80858000,
|
||||
"comment_id": 2983805144,
|
||||
"created_at": "2025-06-18T11:27:23Z",
|
||||
"repoId": 765083837,
|
||||
"pullRequestNo": 2727
|
||||
},
|
||||
{
|
||||
"name": "QIN2DIM",
|
||||
"id": 62018067,
|
||||
"comment_id": 2992279796,
|
||||
"created_at": "2025-06-20T17:04:59Z",
|
||||
"repoId": 765083837,
|
||||
"pullRequestNo": 2758
|
||||
},
|
||||
{
|
||||
"name": "herryqg",
|
||||
"id": 107988674,
|
||||
"comment_id": 2995155194,
|
||||
"created_at": "2025-06-23T06:49:59Z",
|
||||
"repoId": 765083837,
|
||||
"pullRequestNo": 2763
|
||||
},
|
||||
{
|
||||
"name": "zhanluxianshen",
|
||||
"id": 161462588,
|
||||
"comment_id": 3002955644,
|
||||
"created_at": "2025-06-25T03:59:03Z",
|
||||
"repoId": 765083837,
|
||||
"pullRequestNo": 2787
|
||||
},
|
||||
{
|
||||
"name": "ZhiweiXu-102307",
|
||||
"id": 192890785,
|
||||
"comment_id": 3015529289,
|
||||
"created_at": "2025-06-28T15:37:58Z",
|
||||
"repoId": 765083837,
|
||||
"pullRequestNo": 2826
|
||||
},
|
||||
{
|
||||
"name": "hzwzwzw",
|
||||
"id": 20764045,
|
||||
"comment_id": 3017877153,
|
||||
"created_at": "2025-06-30T05:44:13Z",
|
||||
"repoId": 765083837,
|
||||
"pullRequestNo": 2831
|
||||
},
|
||||
{
|
||||
"name": "Tuyohai",
|
||||
"id": 98230804,
|
||||
"comment_id": 3077606100,
|
||||
"created_at": "2025-07-16T08:53:24Z",
|
||||
"repoId": 765083837,
|
||||
"pullRequestNo": 3070
|
||||
},
|
||||
{
|
||||
"name": "huazZeng",
|
||||
"id": 125243371,
|
||||
"comment_id": 3100630363,
|
||||
"created_at": "2025-07-22T03:04:40Z",
|
||||
"repoId": 765083837,
|
||||
"pullRequestNo": 3129
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user