async def _process_single_pdf(self, pdf_path: str) -> Tuple[str, Optional[str]]:
        """Process a single PDF file with Mistral OCR.

        Args:
            pdf_path: Path to the PDF file

        Returns:
            Tuple of (markdown_content, title)
        """
        # Upload file to Mistral
        with open(pdf_path, "rb") as file:
            uploaded_pdf = self.mistral_client.files.upload(
                file={
                    "file_name": os.path.basename(pdf_path),
                    "content": file,
                },
                purpose="ocr",
            )

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

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

        # Extract markdown content from each page
        md_content = ""
        for page in ocr_response.pages:
            md_content += f"{page.markdown}"

        # Try to extract title from metadata if available
        title = None
        if hasattr(ocr_response, "metadata") and ocr_response.metadata:
            if hasattr(ocr_response.metadata, "title"):
                title = ocr_response.metadata.title

        return md_content.strip(), title
Process a single PDF file with Mistral OCR.

        Args:
            pdf_path: Path to the PDF file

        Returns:
            Tuple of (markdown_content, title)
        
backend/airweave/platform/file_handling/conversion/converters/pdf_converter.py