(slides: list[SlidePage], ppt_folder: str, image_model)
| 140 | return False |
| 141 | |
| 142 | def check_consistency(slides: list[SlidePage], ppt_folder: str, image_model): |
| 143 | original_embeddings = get_image_embedding( |
| 144 | pjoin(ppt_folder, "original_slides"), *image_model |
| 145 | ) |
| 146 | rebuild_embeddings = get_image_embedding( |
| 147 | pjoin(ppt_folder, "source_slides"), *image_model |
| 148 | ) |
| 149 | for slide in slides: |
| 150 | if ( |
| 151 | torch.cosine_similarity( |
| 152 | original_embeddings[f"slide_{slide.real_idx:04d}.jpg"], |
| 153 | rebuild_embeddings[f"slide_{slide.slide_idx:04d}.jpg"], |
| 154 | dim=-1, |
| 155 | ) |
| 156 | < 0.9 |
| 157 | ): |
| 158 | raise ValueError(f"slide {slide.real_idx} in {ppt_folder} is inconsistent") |
| 159 | return True |
| 160 | |
| 161 | |
| 162 | def prepare_ppt_folder(ppt_folder: str, text_model: BGEM3FlagModel, image_model): |
no test coverage detected