(model: Literal["Qwen2.5", "gpt"])
| 162 | |
| 163 | |
| 164 | def generate(model: Literal["Qwen2.5", "gpt"]): |
| 165 | if model == "Qwen2.5": |
| 166 | llms.language_model = llms.qwen2_5 |
| 167 | elif model == "gpt": |
| 168 | llms.language_model = llms.gpt4o |
| 169 | |
| 170 | print("Generating slides on baseline with ", llms.language_model.model) |
| 171 | llm_name = llms.get_simple_modelname(llms.language_model) |
| 172 | model = CLIPModel.from_pretrained("openai/clip-vit-large-patch14").to("cuda").eval() |
| 173 | processor = CLIPProcessor.from_pretrained("openai/clip-vit-large-patch14") |
| 174 | folders = list(glob("data/*/pdf/*")) |
| 175 | progress = tqdm(total=len(folders)) |
| 176 | |
| 177 | def process_folder(pdf_folder, model, processor): |
| 178 | source_text = open(f"{pdf_folder}/source.md").read() |
| 179 | bird_eye = json.load(open(f"{pdf_folder}/refined_doc.json")) |
| 180 | images = json.load(open(f"{pdf_folder}/image_caption.json")).keys() |
| 181 | output_dir = f"{pdf_folder}/docpres/{llm_name}" |
| 182 | if os.path.exists(output_dir + "/final.jsonl"): |
| 183 | progress.write(f"Skipping {pdf_folder}") |
| 184 | progress.update(1) |
| 185 | return |
| 186 | try: |
| 187 | generate_slides( |
| 188 | output_dir, |
| 189 | source_text, |
| 190 | bird_eye, |
| 191 | list(images), |
| 192 | model, |
| 193 | processor, |
| 194 | ) |
| 195 | progress.update(1) |
| 196 | except Exception as e: |
| 197 | print(f"Error in {pdf_folder}: {e}") |
| 198 | |
| 199 | # for folder in folders: |
| 200 | # process_folder(folder, model, processor) |
| 201 | |
| 202 | with ThreadPoolExecutor() as executor: |
| 203 | list(executor.map(lambda f: process_folder(f, model, processor), folders)) |
| 204 | |
| 205 | |
| 206 | if __name__ == "__main__": |
nothing calls this directly
no test coverage detected