async def _process_with_mistral_ocr(self, image_path: str) -> str:
        """Process image using Mistral OCR.

        Args:
            image_path: Path to the image file

        Returns:
            String containing the OCR results in markdown format

        Raises:
            Exception: If Mistral OCR processing fails
        """
        logger.info(f"Using Mistral OCR to process image: {image_path}")

        # Upload file to Mistral
        with open(image_path, "rb") as file:
            uploaded_image = self.mistral_client.files.upload(
                file={
                    "file_name": os.path.basename(image_path),
                    "content": file,
                },
                purpose="ocr",
            )

        # Get signed URL for accessing the file
        signed_url = self.mistral_client.files.get_signed_url(file_id=uploaded_image.id)

        # Process file with OCR
        ocr_response = self.mistral_client.ocr.process(
            model="mistral-ocr-latest",
            document={
                "type": "image_url",
                "image_url": signed_url.url,
            },
        )

        # Extract markdown content from response
        md_content = ""

        # If there are pages in the response (like for multi-page images)
        if hasattr(ocr_response, "pages") and ocr_response.pages:
            for page in ocr_response.pages:
                md_content += f"{page.markdown}"
        # If it's a simple image with direct markdown content
        elif hasattr(ocr_response, "markdown"):
            md_content = ocr_response.markdown

        return md_content.strip()
Process image using Mistral OCR.

        Args:
            image_path: Path to the image file

        Returns:
            String containing the OCR results in markdown format

        Raises:
            Exception: If Mistral OCR processing fails
        
backend/airweave/platform/file_handling/conversion/converters/img_converter.py