(self, item, image_root=None)
| 70 | return encoded |
| 71 | |
| 72 | def build_messages(self, item, image_root=None): |
| 73 | content = [] |
| 74 | images = list(item.get("images", [])) |
| 75 | if image_root: |
| 76 | images = [os.path.join(image_root, image) for image in images] |
| 77 | |
| 78 | for image in images: |
| 79 | if os.path.exists(image): |
| 80 | base64_image = self._get_cached_base64(image) |
| 81 | image_url = f"data:image/jpeg;base64,{base64_image}" |
| 82 | elif image.startswith(("http://", "https://")): |
| 83 | image_url = image |
| 84 | else: |
| 85 | image_url = f"data:image/jpeg;base64,{image}" |
| 86 | content.append({ |
| 87 | "type": "image_url", |
| 88 | "image_url": {"url": image_url} |
| 89 | }) |
| 90 | |
| 91 | content.append({"type": "text", "text": item["problem"]}) |
| 92 | |
| 93 | return [ |
| 94 | { |
| 95 | "role": "user", |
| 96 | "content": content |
| 97 | } |
| 98 | ] |
| 99 | |
| 100 | def process_item(self, item, image_root): |
| 101 | attempt = 0 |
no test coverage detected