From 0bb3f954113a656583e78ef40089a6dd4219e0b3 Mon Sep 17 00:00:00 2001 From: Pamela Fox Date: Mon, 9 Dec 2024 10:37:02 -0800 Subject: [PATCH] Add media description feature using Azure Content Understanding (#2195) * First pass * CU kinda working * CU integration * Better splitting * Add Bicep * Rm unneeded figures * Remove en-us from URLs * Fix URLs * Remote figures output JSON * Update matrix comments * Make mypy happy * Add same errors to file strategy * Add pymupdf to skip modules for mypy * Output the endpoint from Bicep * 100 percent coverage for mediadescriber.py * Tests added for PDFParser * Fix that tuple type * Add pricing link * Fix content read issue --- .azdo/pipelines/azure-dev.yml | 1 + .github/workflows/azure-dev.yml | 3 +- CONTRIBUTING.md | 2 + README.md | 4 +- app/backend/gunicorn.conf.py | 2 +- app/backend/prepdocs.py | 16 +- app/backend/prepdocslib/blobmanager.py | 2 +- app/backend/prepdocslib/filestrategy.py | 17 + app/backend/prepdocslib/mediadescriber.py | 107 ++++++ app/backend/prepdocslib/page.py | 6 +- app/backend/prepdocslib/pdfparser.py | 175 ++++++++-- app/backend/prepdocslib/textsplitter.py | 17 +- app/backend/requirements.in | 3 +- app/backend/requirements.txt | 12 +- azure.yaml | 1 + docs/data_ingestion.md | 2 +- docs/deploy_features.md | 28 +- infra/abbreviations.json | 1 + infra/main.bicep | 35 ++ infra/main.parameters.json | 9 + infra/private-endpoints.bicep | 2 +- pyproject.toml | 1 + tests/conftest.py | 6 +- tests/mocks.py | 17 +- .../split_pages_with_figures.json | 50 +++ .../Financial Market Analysis Report 2023.pdf | Bin 0 -> 206953 bytes ...rket Analysis Report 2023_page2_figure.png | Bin 0 -> 75374 bytes tests/test-data/Simple Figure.pdf | Bin 0 -> 45371 bytes tests/test-data/Simple Figure_content.txt | 13 + tests/test-data/Simple Table.pdf | Bin 0 -> 26616 bytes tests/test-data/Simple Table_content.txt | 17 + tests/test-data/pages_with_figures.json | 1 + tests/test_app.py | 2 +- tests/test_mediadescriber.py | 135 ++++++++ tests/test_pdfparser.py | 310 ++++++++++++++++++ tests/test_prepdocslib_textsplitter.py | 30 +- 36 files changed, 962 insertions(+), 65 deletions(-) create mode 100644 app/backend/prepdocslib/mediadescriber.py create mode 100644 tests/snapshots/test_prepdocslib_textsplitter/test_pages_with_figures/split_pages_with_figures.json create mode 100644 tests/test-data/Financial Market Analysis Report 2023.pdf create mode 100644 tests/test-data/Financial Market Analysis Report 2023_page2_figure.png create mode 100644 tests/test-data/Simple Figure.pdf create mode 100644 tests/test-data/Simple Figure_content.txt create mode 100644 tests/test-data/Simple Table.pdf create mode 100644 tests/test-data/Simple Table_content.txt create mode 100644 tests/test-data/pages_with_figures.json create mode 100644 tests/test_mediadescriber.py create mode 100644 tests/test_pdfparser.py diff --git a/.azdo/pipelines/azure-dev.yml b/.azdo/pipelines/azure-dev.yml index 3495e06a45..8c61d4acaf 100644 --- a/.azdo/pipelines/azure-dev.yml +++ b/.azdo/pipelines/azure-dev.yml @@ -120,6 +120,7 @@ steps: DEPLOYMENT_TARGET: $(DEPLOYMENT_TARGET) AZURE_CONTAINER_APPS_WORKLOAD_PROFILE: $(AZURE_CONTAINER_APPS_WORKLOAD_PROFILE) USE_CHAT_HISTORY_BROWSER: $(USE_CHAT_HISTORY_BROWSER) + USE_MEDIA_DESCRIBER_AZURE_CU: $(USE_MEDIA_DESCRIBER_AZURE_CU) - task: AzureCLI@2 displayName: Deploy Application inputs: diff --git a/.github/workflows/azure-dev.yml b/.github/workflows/azure-dev.yml index 798e589413..860a13cbfa 100644 --- a/.github/workflows/azure-dev.yml +++ b/.github/workflows/azure-dev.yml @@ -13,7 +13,7 @@ on: # To configure required secrets for connecting to Azure, simply run `azd pipeline config` # Set up permissions for deploying with secretless Azure federated credentials -# https://learn.microsoft.com/en-us/azure/developer/github/connect-from-azure?tabs=azure-portal%2Clinux#set-up-azure-login-with-openid-connect-authentication +# https://learn.microsoft.com/azure/developer/github/connect-from-azure?tabs=azure-portal%2Clinux#set-up-azure-login-with-openid-connect-authentication permissions: id-token: write contents: read @@ -103,6 +103,7 @@ jobs: DEPLOYMENT_TARGET: ${{ vars.DEPLOYMENT_TARGET }} AZURE_CONTAINER_APPS_WORKLOAD_PROFILE: ${{ vars.AZURE_CONTAINER_APPS_WORKLOAD_PROFILE }} USE_CHAT_HISTORY_BROWSER: ${{ vars.USE_CHAT_HISTORY_BROWSER }} + USE_MEDIA_DESCRIBER_AZURE_CU: ${{ vars.USE_MEDIA_DESCRIBER_AZURE_CU }} steps: - name: Checkout uses: actions/checkout@v4 diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 4b54675d56..9fa92346c9 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -122,6 +122,8 @@ If you followed the steps above to install the pre-commit hooks, then you can ju When adding new azd environment variables, please remember to update: +1. [main.parameters.json](./infra/main.parameters.json) +1. [appEnvVariables in main.bicep](./infra/main.bicep) 1. App Service's [azure.yaml](./azure.yaml) 1. [ADO pipeline](.azdo/pipelines/azure-dev.yml). 1. [Github workflows](.github/workflows/azure-dev.yml) diff --git a/README.md b/README.md index 1fb97c6784..49d5ea84b3 100644 --- a/README.md +++ b/README.md @@ -91,7 +91,9 @@ However, you can try the [Azure pricing calculator](https://azure.com/e/e3490de2 - Azure AI Document Intelligence: SO (Standard) tier using pre-built layout. Pricing per document page, sample documents have 261 pages total. [Pricing](https://azure.microsoft.com/pricing/details/form-recognizer/) - Azure AI Search: Basic tier, 1 replica, free level of semantic search. Pricing per hour. [Pricing](https://azure.microsoft.com/pricing/details/search/) - Azure Blob Storage: Standard tier with ZRS (Zone-redundant storage). Pricing per storage and read operations. [Pricing](https://azure.microsoft.com/pricing/details/storage/blobs/) -- Azure Cosmos DB: Serverless tier. Pricing per request unit and storage. [Pricing](https://azure.microsoft.com/pricing/details/cosmos-db/) +- Azure Cosmos DB: Only provisioned if you enabled [chat history with Cosmos DB](docs/deploy_features.md#enabling-persistent-chat-history-with-azure-cosmos-db). Serverless tier. Pricing per request unit and storage. [Pricing](https://azure.microsoft.com/pricing/details/cosmos-db/) +- Azure AI Vision: Only provisioned if you enabled [GPT-4 with vision](docs/gpt4v.md). Pricing per 1K transactions. [Pricing](https://azure.microsoft.com/pricing/details/cognitive-services/computer-vision/) +- Azure AI Content Understanding: Only provisioned if you enabled [media description](docs/deploy_features.md#enabling-media-description-with-azure-content-understanding). Pricing per 1K images. [Pricing](https://azure.microsoft.com/pricing/details/content-understanding/) - Azure Monitor: Pay-as-you-go tier. Costs based on data ingested. [Pricing](https://azure.microsoft.com/pricing/details/monitor/) To reduce costs, you can switch to free SKUs for various services, but those SKUs have limitations. diff --git a/app/backend/gunicorn.conf.py b/app/backend/gunicorn.conf.py index 4518587695..9144e3cc00 100644 --- a/app/backend/gunicorn.conf.py +++ b/app/backend/gunicorn.conf.py @@ -7,7 +7,7 @@ bind = "0.0.0.0" timeout = 230 -# https://learn.microsoft.com/en-us/troubleshoot/azure/app-service/web-apps-performance-faqs#why-does-my-request-time-out-after-230-seconds +# https://learn.microsoft.com/troubleshoot/azure/app-service/web-apps-performance-faqs#why-does-my-request-time-out-after-230-seconds num_cpus = multiprocessing.cpu_count() if os.getenv("WEBSITE_SKU") == "LinuxFree": diff --git a/app/backend/prepdocs.py b/app/backend/prepdocs.py index d62a42f8cf..57cfe52e6f 100644 --- a/app/backend/prepdocs.py +++ b/app/backend/prepdocs.py @@ -7,6 +7,7 @@ from azure.core.credentials import AzureKeyCredential from azure.core.credentials_async import AsyncTokenCredential from azure.identity.aio import AzureDeveloperCliCredential, get_bearer_token_provider +from rich.logging import RichHandler from load_azd_env import load_azd_env from prepdocslib.blobmanager import BlobManager @@ -158,8 +159,10 @@ def setup_file_processors( local_pdf_parser: bool = False, local_html_parser: bool = False, search_images: bool = False, + use_content_understanding: bool = False, + content_understanding_endpoint: Union[str, None] = None, ): - sentence_text_splitter = SentenceTextSplitter(has_image_embeddings=search_images) + sentence_text_splitter = SentenceTextSplitter() doc_int_parser: Optional[DocumentAnalysisParser] = None # check if Azure Document Intelligence credentials are provided @@ -170,6 +173,8 @@ def setup_file_processors( doc_int_parser = DocumentAnalysisParser( endpoint=f"https://{document_intelligence_service}.cognitiveservices.azure.com/", credential=documentintelligence_creds, + use_content_understanding=use_content_understanding, + content_understanding_endpoint=content_understanding_endpoint, ) pdf_parser: Optional[Parser] = None @@ -294,10 +299,10 @@ async def main(strategy: Strategy, setup_index: bool = True): args = parser.parse_args() if args.verbose: - logging.basicConfig(format="%(message)s") + logging.basicConfig(format="%(message)s", datefmt="[%X]", handlers=[RichHandler(rich_tracebacks=True)]) # We only set the level to INFO for our logger, # to avoid seeing the noisy INFO level logs from the Azure SDKs - logger.setLevel(logging.INFO) + logger.setLevel(logging.DEBUG) load_azd_env() @@ -309,6 +314,7 @@ async def main(strategy: Strategy, setup_index: bool = True): use_gptvision = os.getenv("USE_GPT4V", "").lower() == "true" use_acls = os.getenv("AZURE_ADLS_GEN2_STORAGE_ACCOUNT") is not None dont_use_vectors = os.getenv("USE_VECTORS", "").lower() == "false" + use_content_understanding = os.getenv("USE_MEDIA_DESCRIBER_AZURE_CU", "").lower() == "true" # Use the current user identity to connect to Azure services. See infra/main.bicep for role assignments. if tenant_id := os.getenv("AZURE_TENANT_ID"): @@ -406,6 +412,8 @@ async def main(strategy: Strategy, setup_index: bool = True): local_pdf_parser=os.getenv("USE_LOCAL_PDF_PARSER") == "true", local_html_parser=os.getenv("USE_LOCAL_HTML_PARSER") == "true", search_images=use_gptvision, + use_content_understanding=use_content_understanding, + content_understanding_endpoint=os.getenv("AZURE_CONTENTUNDERSTANDING_ENDPOINT"), ) image_embeddings_service = setup_image_embeddings_service( azure_credential=azd_credential, @@ -424,6 +432,8 @@ async def main(strategy: Strategy, setup_index: bool = True): search_analyzer_name=os.getenv("AZURE_SEARCH_ANALYZER_NAME"), use_acls=use_acls, category=args.category, + use_content_understanding=use_content_understanding, + content_understanding_endpoint=os.getenv("AZURE_CONTENTUNDERSTANDING_ENDPOINT"), ) loop.run_until_complete(main(ingestion_strategy, setup_index=not args.remove and not args.removeall)) diff --git a/app/backend/prepdocslib/blobmanager.py b/app/backend/prepdocslib/blobmanager.py index e9f18e795a..e8d01dda52 100644 --- a/app/backend/prepdocslib/blobmanager.py +++ b/app/backend/prepdocslib/blobmanager.py @@ -171,7 +171,7 @@ def sourcepage_from_file_page(cls, filename, page=0) -> str: @classmethod def blob_image_name_from_file_page(cls, filename, page=0) -> str: - return os.path.splitext(os.path.basename(filename))[0] + f"-{page}" + ".png" + return os.path.splitext(os.path.basename(filename))[0] + f"-{page+1}" + ".png" @classmethod def blob_name_from_file_name(cls, filename) -> str: diff --git a/app/backend/prepdocslib/filestrategy.py b/app/backend/prepdocslib/filestrategy.py index 55b24b6f3a..3748f67a09 100644 --- a/app/backend/prepdocslib/filestrategy.py +++ b/app/backend/prepdocslib/filestrategy.py @@ -1,10 +1,13 @@ import logging from typing import List, Optional +from azure.core.credentials import AzureKeyCredential + from .blobmanager import BlobManager from .embeddings import ImageEmbeddings, OpenAIEmbeddings from .fileprocessor import FileProcessor from .listfilestrategy import File, ListFileStrategy +from .mediadescriber import ContentUnderstandingDescriber from .searchmanager import SearchManager, Section from .strategy import DocumentAction, SearchInfo, Strategy @@ -50,6 +53,8 @@ def __init__( search_analyzer_name: Optional[str] = None, use_acls: bool = False, category: Optional[str] = None, + use_content_understanding: bool = False, + content_understanding_endpoint: Optional[str] = None, ): self.list_file_strategy = list_file_strategy self.blob_manager = blob_manager @@ -61,6 +66,8 @@ def __init__( self.search_info = search_info self.use_acls = use_acls self.category = category + self.use_content_understanding = use_content_understanding + self.content_understanding_endpoint = content_understanding_endpoint async def setup(self): search_manager = SearchManager( @@ -73,6 +80,16 @@ async def setup(self): ) await search_manager.create_index() + if self.use_content_understanding: + if self.content_understanding_endpoint is None: + raise ValueError("Content Understanding is enabled but no endpoint was provided") + if isinstance(self.search_info.credential, AzureKeyCredential): + raise ValueError( + "AzureKeyCredential is not supported for Content Understanding, use keyless auth instead" + ) + cu_manager = ContentUnderstandingDescriber(self.content_understanding_endpoint, self.search_info.credential) + await cu_manager.create_analyzer() + async def run(self): search_manager = SearchManager( self.search_info, self.search_analyzer_name, self.use_acls, False, self.embeddings diff --git a/app/backend/prepdocslib/mediadescriber.py b/app/backend/prepdocslib/mediadescriber.py new file mode 100644 index 0000000000..5aae79232e --- /dev/null +++ b/app/backend/prepdocslib/mediadescriber.py @@ -0,0 +1,107 @@ +import logging +from abc import ABC + +import aiohttp +from azure.core.credentials_async import AsyncTokenCredential +from azure.identity.aio import get_bearer_token_provider +from rich.progress import Progress +from tenacity import retry, retry_if_exception_type, stop_after_attempt, wait_fixed + +logger = logging.getLogger("scripts") + + +class MediaDescriber(ABC): + + async def describe_image(self, image_bytes) -> str: + raise NotImplementedError # pragma: no cover + + +class ContentUnderstandingDescriber: + CU_API_VERSION = "2024-12-01-preview" + + analyzer_schema = { + "analyzerId": "image_analyzer", + "name": "Image understanding", + "description": "Extract detailed structured information from images extracted from documents.", + "baseAnalyzerId": "prebuilt-image", + "scenario": "image", + "config": {"returnDetails": False}, + "fieldSchema": { + "name": "ImageInformation", + "descriptions": "Description of image.", + "fields": { + "Description": { + "type": "string", + "description": "Description of the image. If the image has a title, start with the title. Include a 2-sentence summary. If the image is a chart, diagram, or table, include the underlying data in an HTML table tag, with accurate numbers. If the image is a chart, describe any axis or legends. The only allowed HTML tags are the table/thead/tr/td/tbody tags.", + }, + }, + }, + } + + def __init__(self, endpoint: str, credential: AsyncTokenCredential): + self.endpoint = endpoint + self.credential = credential + + async def poll_api(self, session, poll_url, headers): + + @retry(stop=stop_after_attempt(60), wait=wait_fixed(2), retry=retry_if_exception_type(ValueError)) + async def poll(): + async with session.get(poll_url, headers=headers) as response: + response.raise_for_status() + response_json = await response.json() + if response_json["status"] == "Failed": + raise Exception("Failed") + if response_json["status"] == "Running": + raise ValueError("Running") + return response_json + + return await poll() + + async def create_analyzer(self): + logger.info("Creating analyzer '%s'...", self.analyzer_schema["analyzerId"]) + + token_provider = get_bearer_token_provider(self.credential, "https://cognitiveservices.azure.com/.default") + token = await token_provider() + headers = {"Authorization": f"Bearer {token}", "Content-Type": "application/json"} + params = {"api-version": self.CU_API_VERSION} + analyzer_id = self.analyzer_schema["analyzerId"] + cu_endpoint = f"{self.endpoint}/contentunderstanding/analyzers/{analyzer_id}" + async with aiohttp.ClientSession() as session: + async with session.put( + url=cu_endpoint, params=params, headers=headers, json=self.analyzer_schema + ) as response: + if response.status == 409: + logger.info("Analyzer '%s' already exists.", analyzer_id) + return + elif response.status != 201: + data = await response.text() + raise Exception("Error creating analyzer", data) + else: + poll_url = response.headers.get("Operation-Location") + + with Progress() as progress: + progress.add_task("Creating analyzer...", total=None, start=False) + await self.poll_api(session, poll_url, headers) + + async def describe_image(self, image_bytes: bytes) -> str: + logger.info("Sending image to Azure Content Understanding service...") + async with aiohttp.ClientSession() as session: + token = await self.credential.get_token("https://cognitiveservices.azure.com/.default") + headers = {"Authorization": "Bearer " + token.token} + params = {"api-version": self.CU_API_VERSION} + analyzer_name = self.analyzer_schema["analyzerId"] + async with session.post( + url=f"{self.endpoint}/contentunderstanding/analyzers/{analyzer_name}:analyze", + params=params, + headers=headers, + data=image_bytes, + ) as response: + response.raise_for_status() + poll_url = response.headers["Operation-Location"] + + with Progress() as progress: + progress.add_task("Processing...", total=None, start=False) + results = await self.poll_api(session, poll_url, headers) + + fields = results["result"]["contents"][0]["fields"] + return fields["Description"]["valueString"] diff --git a/app/backend/prepdocslib/page.py b/app/backend/prepdocslib/page.py index f12fe70b94..857235c571 100644 --- a/app/backend/prepdocslib/page.py +++ b/app/backend/prepdocslib/page.py @@ -3,7 +3,7 @@ class Page: A single page from a document Attributes: - page_num (int): Page number + page_num (int): Page number (0-indexed) offset (int): If the text of the entire Document was concatenated into a single string, the index of the first character on the page. For example, if page 1 had the text "hello" and page 2 had the text "world", the offset of page 2 is 5 ("hellow") text (str): The text of the page """ @@ -17,6 +17,10 @@ def __init__(self, page_num: int, offset: int, text: str): class SplitPage: """ A section of a page that has been split into a smaller chunk. + + Attributes: + page_num (int): Page number (0-indexed) + text (str): The text of the section """ def __init__(self, page_num: int, text: str): diff --git a/app/backend/prepdocslib/pdfparser.py b/app/backend/prepdocslib/pdfparser.py index 6604110020..1fcbbc9531 100644 --- a/app/backend/prepdocslib/pdfparser.py +++ b/app/backend/prepdocslib/pdfparser.py @@ -1,13 +1,23 @@ import html +import io import logging +from enum import Enum from typing import IO, AsyncGenerator, Union +import pymupdf from azure.ai.documentintelligence.aio import DocumentIntelligenceClient -from azure.ai.documentintelligence.models import DocumentTable +from azure.ai.documentintelligence.models import ( + AnalyzeDocumentRequest, + AnalyzeResult, + DocumentFigure, + DocumentTable, +) from azure.core.credentials import AzureKeyCredential from azure.core.credentials_async import AsyncTokenCredential +from PIL import Image from pypdf import PdfReader +from .mediadescriber import ContentUnderstandingDescriber from .page import Page from .parser import Parser @@ -39,11 +49,18 @@ class DocumentAnalysisParser(Parser): """ def __init__( - self, endpoint: str, credential: Union[AsyncTokenCredential, AzureKeyCredential], model_id="prebuilt-layout" + self, + endpoint: str, + credential: Union[AsyncTokenCredential, AzureKeyCredential], + model_id="prebuilt-layout", + use_content_understanding=True, + content_understanding_endpoint: Union[str, None] = None, ): self.model_id = model_id self.endpoint = endpoint self.credential = credential + self.use_content_understanding = use_content_understanding + self.content_understanding_endpoint = content_understanding_endpoint async def parse(self, content: IO) -> AsyncGenerator[Page, None]: logger.info("Extracting text from '%s' using Azure Document Intelligence", content.name) @@ -51,47 +68,126 @@ async def parse(self, content: IO) -> AsyncGenerator[Page, None]: async with DocumentIntelligenceClient( endpoint=self.endpoint, credential=self.credential ) as document_intelligence_client: - poller = await document_intelligence_client.begin_analyze_document( - model_id=self.model_id, analyze_request=content, content_type="application/octet-stream" - ) - form_recognizer_results = await poller.result() + if self.use_content_understanding: + if self.content_understanding_endpoint is None: + raise ValueError("Content Understanding is enabled but no endpoint was provided") + if isinstance(self.credential, AzureKeyCredential): + raise ValueError( + "AzureKeyCredential is not supported for Content Understanding, use keyless auth instead" + ) + cu_describer = ContentUnderstandingDescriber(self.content_understanding_endpoint, self.credential) + content_bytes = content.read() + poller = await document_intelligence_client.begin_analyze_document( + model_id="prebuilt-layout", + analyze_request=AnalyzeDocumentRequest(bytes_source=content_bytes), + output=["figures"], + features=["ocrHighResolution"], + output_content_format="markdown", + ) + doc_for_pymupdf = pymupdf.open(stream=io.BytesIO(content_bytes)) + else: + poller = await document_intelligence_client.begin_analyze_document( + model_id=self.model_id, analyze_request=content, content_type="application/octet-stream" + ) + analyze_result: AnalyzeResult = await poller.result() offset = 0 - for page_num, page in enumerate(form_recognizer_results.pages): + for page in analyze_result.pages: tables_on_page = [ table - for table in (form_recognizer_results.tables or []) - if table.bounding_regions and table.bounding_regions[0].page_number == page_num + 1 + for table in (analyze_result.tables or []) + if table.bounding_regions and table.bounding_regions[0].page_number == page.page_number ] + figures_on_page = [] + if self.use_content_understanding: + figures_on_page = [ + figure + for figure in (analyze_result.figures or []) + if figure.bounding_regions and figure.bounding_regions[0].page_number == page.page_number + ] + + class ObjectType(Enum): + NONE = -1 + TABLE = 0 + FIGURE = 1 - # mark all positions of the table spans in the page page_offset = page.spans[0].offset page_length = page.spans[0].length - table_chars = [-1] * page_length - for table_id, table in enumerate(tables_on_page): + mask_chars: list[tuple[ObjectType, Union[int, None]]] = [(ObjectType.NONE, None)] * page_length + # mark all positions of the table spans in the page + for table_idx, table in enumerate(tables_on_page): for span in table.spans: # replace all table spans with "table_id" in table_chars array for i in range(span.length): idx = span.offset - page_offset + i if idx >= 0 and idx < page_length: - table_chars[idx] = table_id + mask_chars[idx] = (ObjectType.TABLE, table_idx) + # mark all positions of the figure spans in the page + for figure_idx, figure in enumerate(figures_on_page): + for span in figure.spans: + # replace all figure spans with "figure_id" in figure_chars array + for i in range(span.length): + idx = span.offset - page_offset + i + if idx >= 0 and idx < page_length: + mask_chars[idx] = (ObjectType.FIGURE, figure_idx) # build page text by replacing characters in table spans with table html page_text = "" - added_tables = set() - for idx, table_id in enumerate(table_chars): - if table_id == -1: - page_text += form_recognizer_results.content[page_offset + idx] - elif table_id not in added_tables: - page_text += DocumentAnalysisParser.table_to_html(tables_on_page[table_id]) - added_tables.add(table_id) - - yield Page(page_num=page_num, offset=offset, text=page_text) + added_objects = set() # set of object types todo mypy + for idx, mask_char in enumerate(mask_chars): + object_type, object_idx = mask_char + if object_type == ObjectType.NONE: + page_text += analyze_result.content[page_offset + idx] + elif object_type == ObjectType.TABLE: + if object_idx is None: + raise ValueError("Expected object_idx to be set") + if mask_char not in added_objects: + page_text += DocumentAnalysisParser.table_to_html(tables_on_page[object_idx]) + added_objects.add(mask_char) + elif object_type == ObjectType.FIGURE: + if cu_describer is None: + raise ValueError("cu_describer should not be None, unable to describe figure") + if object_idx is None: + raise ValueError("Expected object_idx to be set") + if mask_char not in added_objects: + figure_html = await DocumentAnalysisParser.figure_to_html( + doc_for_pymupdf, figures_on_page[object_idx], cu_describer + ) + page_text += figure_html + added_objects.add(mask_char) + # We remove these comments since they are not needed and skew the page numbers + page_text = page_text.replace("", "") + # We remove excess newlines at the beginning and end of the page + page_text = page_text.strip() + yield Page(page_num=page.page_number - 1, offset=offset, text=page_text) offset += len(page_text) - @classmethod - def table_to_html(cls, table: DocumentTable): - table_html = "" + @staticmethod + async def figure_to_html( + doc: pymupdf.Document, figure: DocumentFigure, cu_describer: ContentUnderstandingDescriber + ) -> str: + figure_title = (figure.caption and figure.caption.content) or "" + logger.info("Describing figure %s with title '%s'", figure.id, figure_title) + if not figure.bounding_regions: + return f"
{figure_title}
" + if len(figure.bounding_regions) > 1: + logger.warning("Figure %s has more than one bounding region, using the first one", figure.id) + first_region = figure.bounding_regions[0] + # To learn more about bounding regions, see https://aka.ms/bounding-region + bounding_box = ( + first_region.polygon[0], # x0 (left) + first_region.polygon[1], # y0 (top + first_region.polygon[4], # x1 (right) + first_region.polygon[5], # y1 (bottom) + ) + page_number = first_region["pageNumber"] # 1-indexed + cropped_img = DocumentAnalysisParser.crop_image_from_pdf_page(doc, page_number - 1, bounding_box) + figure_description = await cu_describer.describe_image(cropped_img) + return f"
{figure_title}
{figure_description}
" + + @staticmethod + def table_to_html(table: DocumentTable): + table_html = "
" rows = [ sorted([cell for cell in table.cells if cell.row_index == i], key=lambda cell: cell.column_index) for i in range(table.row_count) @@ -107,5 +203,32 @@ def table_to_html(cls, table: DocumentTable): cell_spans += f" rowSpan={cell.row_span}" table_html += f"<{tag}{cell_spans}>{html.escape(cell.content)}" table_html += "" - table_html += "
" + table_html += "" return table_html + + @staticmethod + def crop_image_from_pdf_page( + doc: pymupdf.Document, page_number: int, bounding_box: tuple[float, float, float, float] + ) -> bytes: + """ + Crops a region from a given page in a PDF and returns it as an image. + + :param pdf_path: Path to the PDF file. + :param page_number: The page number to crop from (0-indexed). + :param bounding_box: A tuple of (x0, y0, x1, y1) coordinates for the bounding box. + :return: A PIL Image of the cropped area. + """ + page = doc.load_page(page_number) + + # Cropping the page. The rect requires the coordinates in the format (x0, y0, x1, y1). + bbx = [x * 72 for x in bounding_box] + rect = pymupdf.Rect(bbx) + # Bounding box is scaled to 72 dots per inch + # We assume the PDF has 300 DPI + # The matrix is used to convert between these 2 units + pix = page.get_pixmap(matrix=pymupdf.Matrix(300 / 72, 300 / 72), clip=rect) + + img = Image.frombytes("RGB", (pix.width, pix.height), pix.samples) + bytes_io = io.BytesIO() + img.save(bytes_io, format="PNG") + return bytes_io.getvalue() diff --git a/app/backend/prepdocslib/textsplitter.py b/app/backend/prepdocslib/textsplitter.py index 30b0c1ad77..2c39dff850 100644 --- a/app/backend/prepdocslib/textsplitter.py +++ b/app/backend/prepdocslib/textsplitter.py @@ -87,14 +87,13 @@ class SentenceTextSplitter(TextSplitter): Class that splits pages into smaller chunks. This is required because embedding models may not be able to analyze an entire page at once """ - def __init__(self, has_image_embeddings: bool, max_tokens_per_section: int = 500): + def __init__(self, max_tokens_per_section: int = 500): self.sentence_endings = STANDARD_SENTENCE_ENDINGS + CJK_SENTENCE_ENDINGS self.word_breaks = STANDARD_WORD_BREAKS + CJK_WORD_BREAKS self.max_section_length = DEFAULT_SECTION_LENGTH self.sentence_search_limit = 100 self.max_tokens_per_section = max_tokens_per_section self.section_overlap = int(self.max_section_length * DEFAULT_OVERLAP_PERCENT / 100) - self.has_image_embeddings = has_image_embeddings def split_page_by_max_tokens(self, page_num: int, text: str) -> Generator[SplitPage, None, None]: """ @@ -192,15 +191,15 @@ def find_page(offset): section_text = all_text[start:end] yield from self.split_page_by_max_tokens(page_num=find_page(start), text=section_text) - last_table_start = section_text.rfind(" 2 * self.sentence_search_limit and last_table_start > section_text.rfind(" 2 * self.sentence_search_limit and last_figure_start > section_text.rfind( + "=1.3.7 numpy>=1,<2.1.0 # Used by openai embeddings.create to optimize embeddings (but not required) tiktoken tenacity -azure-ai-documentintelligence +azure-ai-documentintelligence==1.0.0b4 azure-cognitiveservices-speech azure-cosmos azure-search-documents==11.6.0b6 @@ -31,3 +31,4 @@ types-beautifulsoup4 msgraph-sdk==1.1.0 openai-messages-token-helper python-dotenv +rich diff --git a/app/backend/requirements.txt b/app/backend/requirements.txt index 2efe32b484..c148bb04f8 100644 --- a/app/backend/requirements.txt +++ b/app/backend/requirements.txt @@ -1,5 +1,5 @@ # -# This file is autogenerated by pip-compile with Python 3.11 +# This file is autogenerated by pip-compile with Python 3.12 # by the following command: # # pip-compile requirements.in @@ -24,7 +24,7 @@ asgiref==3.8.1 # via opentelemetry-instrumentation-asgi attrs==24.2.0 # via aiohttp -azure-ai-documentintelligence==1.0.0b3 +azure-ai-documentintelligence==1.0.0b4 # via -r requirements.in azure-cognitiveservices-speech==1.40.0 # via -r requirements.in @@ -155,11 +155,15 @@ jinja2==3.1.4 # quart jiter==0.5.0 # via openai +markdown-it-py==3.0.0 + # via rich markupsafe==2.1.5 # via # jinja2 # quart # werkzeug +mdurl==0.1.2 + # via markdown-it-py microsoft-kiota-abstractions==1.3.3 # via # microsoft-kiota-authentication-azure @@ -338,6 +342,8 @@ pydantic==2.8.2 # via openai pydantic-core==2.20.1 # via pydantic +pygments==2.18.0 + # via rich pyjwt[crypto]==2.9.0 # via # -r requirements.in @@ -372,6 +378,8 @@ requests==2.32.3 # tiktoken requests-oauthlib==2.0.0 # via msrest +rich==13.9.4 + # via -r requirements.in six==1.16.0 # via # azure-core diff --git a/azure.yaml b/azure.yaml index fd673f48e0..d72dc2ff13 100644 --- a/azure.yaml +++ b/azure.yaml @@ -115,6 +115,7 @@ pipeline: - DEPLOYMENT_TARGET - AZURE_CONTAINER_APPS_WORKLOAD_PROFILE - USE_CHAT_HISTORY_BROWSER + - USE_MEDIA_DESCRIBER_AZURE_CU secrets: - AZURE_SERVER_APP_SECRET - AZURE_CLIENT_APP_SECRET diff --git a/docs/data_ingestion.md b/docs/data_ingestion.md index db18bd10d3..1c8d2138ff 100644 --- a/docs/data_ingestion.md +++ b/docs/data_ingestion.md @@ -69,7 +69,7 @@ A [recent change](https://github.com/Azure-Samples/azure-search-openai-demo/pull You may want to remove documents from the index. For example, if you're using the sample data, you may want to remove the documents that are already in the index before adding your own. -To remove all documents, use `scripts/prepdocs.sh --removeall` or `scripts/prepdocs.ps1 --removeall`. +To remove all documents, use `./scripts/prepdocs.sh --removeall` or `./scripts/prepdocs.ps1 --removeall`. You can also remove individual documents by using the `--remove` flag. Open either `scripts/prepdocs.sh` or `scripts/prepdocs.ps1` and replace `/data/*` with `/data/YOUR-DOCUMENT-FILENAME-GOES-HERE.pdf`. Then run `scripts/prepdocs.sh --remove` or `scripts/prepdocs.ps1 --remove`. diff --git a/docs/deploy_features.md b/docs/deploy_features.md index b1291a00b4..ea0c7e8288 100644 --- a/docs/deploy_features.md +++ b/docs/deploy_features.md @@ -7,6 +7,7 @@ You should typically enable these features before running `azd up`. Once you've * [Using GPT-4](#using-gpt-4) * [Using text-embedding-3 models](#using-text-embedding-3-models) * [Enabling GPT-4 Turbo with Vision](#enabling-gpt-4-turbo-with-vision) +* [Enabling media description with Azure Content Understanding](#enabling-media-description-with-azure-content-understanding) * [Enabling client-side chat history](#enabling-client-side-chat-history) * [Enabling persistent chat history with Azure Cosmos DB](#enabling-persistent-chat-history-with-azure-cosmos-db) * [Enabling language picker](#enabling-language-picker) @@ -149,8 +150,31 @@ If you have already deployed: ## Enabling GPT-4 Turbo with Vision +⚠️ This feature is not currently compatible with [integrated vectorization](#enabling-integrated-vectorization). + This section covers the integration of GPT-4 Vision with Azure AI Search. Learn how to enhance your search capabilities with the power of image and text indexing, enabling advanced search functionalities over diverse document types. For a detailed guide on setup and usage, visit our [Enabling GPT-4 Turbo with Vision](gpt4v.md) page. +## Enabling media description with Azure Content Understanding + +⚠️ This feature is not currently compatible with [integrated vectorization](#enabling-integrated-vectorization). +It is compatible with [GPT vision integration](./gpt4v.md), but the features provide similar functionality. + +By default, if your documents contain image-like figures, the data ingestion process will ignore those figures, +so users will not be able to ask questions about them. + +You can optionably enable the description of media content using Azure Content Understanding. When enabled, the data ingestion process will send figures to Azure Content Understanding and replace the figure with the description in the indexed document. +To learn more about this process and compare it to the gpt-4 vision integration, see [this guide](./data_ingestion.md#media-description). + +To enable media description with Azure Content Understanding, run: + +```shell +azd env set USE_MEDIA_DESCRIBER_AZURE_CU true +``` + +If you have already run `azd up`, you will need to run `azd provision` to create the new Content Understanding service. +If you have already indexed your documents and want to re-index them with the media descriptions, +first [remove the existing documents](./data_ingestion.md#removing-documents) and then [re-ingest the data](./data_ingestion.md#indexing-additional-documents). + ## Enabling client-side chat history This feature allows users to view the chat history of their conversation, stored in the browser using [IndexedDB](https://developer.mozilla.org/docs/Web/API/IndexedDB_API). That means the chat history will be available only on the device where the chat was initiated. To enable browser-stored chat history, run: @@ -215,6 +239,8 @@ azd env set USE_SPEECH_OUTPUT_BROWSER true ## Enabling Integrated Vectorization +⚠️ This feature is not currently compatible with the [GPT vision integration](./gpt4v.md). + Azure AI search recently introduced an [integrated vectorization feature in preview mode](https://techcommunity.microsoft.com/blog/azure-ai-services-blog/announcing-the-public-preview-of-integrated-vectorization-in-azure-ai-search/3960809). This feature is a cloud-based approach to data ingestion, which takes care of document format cracking, data extraction, chunking, vectorization, and indexing, all with Azure technologies. To enable integrated vectorization with this sample: @@ -238,8 +264,6 @@ To enable integrated vectorization with this sample: 4. You can view the resources such as the indexer and skillset in Azure Portal and monitor the status of the vectorization process. -⚠️ This feature is not currently compatible with the [GPT vision integration](./gpt4v.md). - ## Enabling authentication By default, the deployed Azure web app will have no authentication or access restrictions enabled, meaning anyone with routable network access to the web app can chat with your indexed data. If you'd like to automatically setup authentication and user login as part of the `azd up` process, see [this guide](./login_and_acl.md). diff --git a/infra/abbreviations.json b/infra/abbreviations.json index 5084711603..3673672a7e 100644 --- a/infra/abbreviations.json +++ b/infra/abbreviations.json @@ -29,6 +29,7 @@ "containerInstanceContainerGroups": "ci", "containerRegistryRegistries": "cr", "containerServiceManagedClusters": "aks-", + "cognitiveServicesContentUnderstanding": "cu-", "databricksWorkspaces": "dbw-", "dataFactoryFactories": "adf-", "dataLakeAnalyticsAccounts": "dla", diff --git a/infra/main.bicep b/infra/main.bicep index 0630519c29..5c181cd525 100644 --- a/infra/main.bicep +++ b/infra/main.bicep @@ -119,6 +119,9 @@ param computerVisionResourceGroupName string = '' // Set in main.parameters.json param computerVisionResourceGroupLocation string = '' // Set in main.parameters.json param computerVisionSkuName string // Set in main.parameters.json +param contentUnderstandingServiceName string = '' // Set in main.parameters.json +param contentUnderstandingResourceGroupName string = '' // Set in main.parameters.json + param chatGptModelName string = '' param chatGptDeploymentName string = '' param chatGptDeploymentVersion string = '' @@ -218,6 +221,9 @@ param useVectors bool = false @description('Use Built-in integrated Vectorization feature of AI Search to vectorize and ingest documents') param useIntegratedVectorization bool = false +@description('Use media description feature with Azure Content Understanding during ingestion') +param useMediaDescriberAzureCU bool = true + @description('Enable user document upload feature') param useUserUpload bool = false param useLocalPdfParser bool = false @@ -278,6 +284,10 @@ resource computerVisionResourceGroup 'Microsoft.Resources/resourceGroups@2021-04 name: !empty(computerVisionResourceGroupName) ? computerVisionResourceGroupName : resourceGroup.name } +resource contentUnderstandingResourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' existing = if (!empty(contentUnderstandingResourceGroupName)) { + name: !empty(contentUnderstandingResourceGroupName) ? contentUnderstandingResourceGroupName : resourceGroup.name +} + resource searchServiceResourceGroup 'Microsoft.Resources/resourceGroups@2021-04-01' existing = if (!empty(searchServiceResourceGroupName)) { name: !empty(searchServiceResourceGroupName) ? searchServiceResourceGroupName : resourceGroup.name } @@ -401,6 +411,8 @@ var appEnvVariables = { AZURE_DOCUMENTINTELLIGENCE_SERVICE: documentIntelligence.outputs.name USE_LOCAL_PDF_PARSER: useLocalPdfParser USE_LOCAL_HTML_PARSER: useLocalHtmlParser + USE_MEDIA_DESCRIBER_AZURE_CU: useMediaDescriberAzureCU + AZURE_CONTENTUNDERSTANDING_ENDPOINT: useMediaDescriberAzureCU ? contentUnderstanding.outputs.endpoint : '' RUNNING_IN_PRODUCTION: 'true' } @@ -634,6 +646,28 @@ module computerVision 'br/public:avm/res/cognitive-services/account:0.7.2' = if } } + +module contentUnderstanding 'br/public:avm/res/cognitive-services/account:0.7.2' = if (useMediaDescriberAzureCU) { + name: 'content-understanding' + scope: contentUnderstandingResourceGroup + params: { + name: !empty(contentUnderstandingServiceName) + ? contentUnderstandingServiceName + : '${abbrs.cognitiveServicesContentUnderstanding}${resourceToken}' + kind: 'AIServices' + networkAcls: { + defaultAction: 'Allow' + } + customSubDomainName: !empty(contentUnderstandingServiceName) + ? contentUnderstandingServiceName + : '${abbrs.cognitiveServicesContentUnderstanding}${resourceToken}' + // Hard-coding to westus for now, due to limited availability and no overlap with Document Intelligence + location: 'westus' + tags: tags + sku: 'S0' + } +} + module speech 'br/public:avm/res/cognitive-services/account:0.7.2' = if (useSpeechOutputAzure) { name: 'speech-service' scope: speechResourceGroup @@ -1160,6 +1194,7 @@ output AZURE_SPEECH_SERVICE_ID string = useSpeechOutputAzure ? speech.outputs.re output AZURE_SPEECH_SERVICE_LOCATION string = useSpeechOutputAzure ? speech.outputs.location : '' output AZURE_VISION_ENDPOINT string = useGPT4V ? computerVision.outputs.endpoint : '' +output AZURE_CONTENTUNDERSTANDING_ENDPOINT string = useMediaDescriberAzureCU ? contentUnderstanding.outputs.endpoint : '' output AZURE_DOCUMENTINTELLIGENCE_SERVICE string = documentIntelligence.outputs.name output AZURE_DOCUMENTINTELLIGENCE_RESOURCE_GROUP string = documentIntelligenceResourceGroup.name diff --git a/infra/main.parameters.json b/infra/main.parameters.json index a7ba80373e..54541ca8a6 100644 --- a/infra/main.parameters.json +++ b/infra/main.parameters.json @@ -35,6 +35,12 @@ "computerVisionSkuName": { "value": "${AZURE_COMPUTER_VISION_SKU=S1}" }, + "contentUnderstandingServiceName": { + "value": "${AZURE_CONTENT_UNDERSTANDING_SERVICE}" + }, + "contentUnderstandingResourceGroupName": { + "value": "${AZURE_CONTENT_UNDERSTANDING_RESOURCE_GROUP}" + }, "documentIntelligenceServiceName": { "value": "${AZURE_DOCUMENTINTELLIGENCE_SERVICE}" }, @@ -289,6 +295,9 @@ }, "azureContainerAppsWorkloadProfile": { "value": "${AZURE_CONTAINER_APPS_WORKLOAD_PROFILE=Consumption}" + }, + "useMediaDescriberAzureCU": { + "value": "${USE_MEDIA_DESCRIBER_AZURE_CU=false}" } } } diff --git a/infra/private-endpoints.bicep b/infra/private-endpoints.bicep index 6053519cae..58fe14177e 100644 --- a/infra/private-endpoints.bicep +++ b/infra/private-endpoints.bicep @@ -84,7 +84,7 @@ module monitorDnsZones './core/networking/private-dns-zones.bicep' = [for monito var dnsZoneBlobIndex = filter(flatten(privateEndpointInfo), info => info.groupId == 'blob')[0].dnsZoneIndex // Azure Monitor Private Link Scope -// https://learn.microsoft.com/en-us/azure/azure-monitor/logs/private-link-security +// https://learn.microsoft.com/azure/azure-monitor/logs/private-link-security resource monitorPrivateLinkScope 'microsoft.insights/privateLinkScopes@2021-07-01-preview' = { name: 'mpls${resourceToken}' location: 'global' diff --git a/pyproject.toml b/pyproject.toml index 1e21fddfd4..9e12e399f0 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -32,5 +32,6 @@ module = [ "kiota.*", "azure.cognitiveservices.*", "azure.cognitiveservices.speech.*", + "pymupdf.*", ] ignore_missing_imports = true diff --git a/tests/conftest.py b/tests/conftest.py index cfc5326f31..157770b186 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -54,7 +54,7 @@ async def mock_search(self, *args, **kwargs): @pytest.fixture -def mock_compute_embeddings_call(monkeypatch): +def mock_azurehttp_calls(monkeypatch): def mock_post(*args, **kwargs): if kwargs.get("url").endswith("computervision/retrieval:vectorizeText"): return mock_computervision_response() @@ -327,7 +327,7 @@ async def client( mock_openai_embedding, mock_acs_search, mock_blob_container_client, - mock_compute_embeddings_call, + mock_azurehttp_calls, ): quart_app = app.create_app() @@ -346,7 +346,7 @@ async def client_with_expiring_token( mock_openai_embedding, mock_acs_search, mock_blob_container_client, - mock_compute_embeddings_call, + mock_azurehttp_calls, ): quart_app = app.create_app() diff --git a/tests/mocks.py b/tests/mocks.py index 13dc82ac6e..788823941c 100644 --- a/tests/mocks.py +++ b/tests/mocks.py @@ -151,12 +151,10 @@ def by_page(self): class MockResponse: - def __init__(self, text, status): - self.text = text + def __init__(self, status, text=None, headers=None): + self._text = text or "" self.status = status - - async def text(self): - return self._text + self.headers = headers or {} async def __aexit__(self, exc_type, exc, tb): pass @@ -164,8 +162,15 @@ async def __aexit__(self, exc_type, exc, tb): async def __aenter__(self): return self + async def text(self): + return self._text + async def json(self): - return json.loads(self.text) + return json.loads(self._text) + + def raise_for_status(self): + if self.status != 200: + raise Exception(f"HTTP status {self.status}") class MockEmbeddingsClient: diff --git a/tests/snapshots/test_prepdocslib_textsplitter/test_pages_with_figures/split_pages_with_figures.json b/tests/snapshots/test_prepdocslib_textsplitter/test_pages_with_figures/split_pages_with_figures.json new file mode 100644 index 0000000000..72bddc1dbe --- /dev/null +++ b/tests/snapshots/test_prepdocslib_textsplitter/test_pages_with_figures/split_pages_with_figures.json @@ -0,0 +1,50 @@ +[ + { + "text": "# Financial Market Analysis Report 2023\n\nAn In-Depth Exploration of Stocks, Cryptocurrencies, and Commodities\nPrepared by: Contoso Financial Analytics## Executive Summary\n\n. In this comprehensive report, Contoso Financial Analytics provides a\ndeep dive into the financial markets of 2023, focusing on the trends\nand fluctuations within stocks, cryptocurrencies, and commodities.\nOur analysis covers historical patterns, current market conditions, and\nfuture predictions, offering valuable insights for investors, analysts,\nand financial enthusiasts. This report leverages advanced data\nanalytics to present a clear picture of the complex interplay between\ndifferent financial markets and their potential trajectories## Introduction to Financial Markets\n\n\n
Global Financial Market Distribution (2023)
This pie chart represents the distribution of investments across four categories: Stocks, Bonds, Cryptocurrencies, and Commodities. The chart is divided into four colored sections, each representing a different category.", + "page_num": 0 + }, + { + "text": "a clear picture of the complex interplay between\ndifferent financial markets and their potential trajectories## Introduction to Financial Markets\n\n\n
Global Financial Market Distribution (2023)
This pie chart represents the distribution of investments across four categories: Stocks, Bonds, Cryptocurrencies, and Commodities. The chart is divided into four colored sections, each representing a different category. Stocks are shown in blue, Bonds in orange, Cryptocurrencies in gray, and Commodities in yellow. The chart visually indicates the proportion of each investment type within a portfolio.

CategoryColor
StocksBlue
BondsOrange
CryptocurrenciesGray
CommoditiesYellow
\n\n\nThe global financial market is a vast and intricate network of\nexchanges, instruments, and assets, ranging from traditional stocks\nand bonds to modern cryptocurrencies and commodities. Each\nsegment plays a crucial role in the overall economy, and their\ninteractions can have profound effects on global financial stability.", + "page_num": 1 + }, + { + "text": " Each\nsegment plays a crucial role in the overall economy, and their\ninteractions can have profound effects on global financial stability.\nThis section provides an overview of these segments and sets the\nstage for a detailed analysis## Stock Market Overview\n\n\n

5-Year Trend of the S&P 500 Index

This line chart shows the trend of the S&P 500 Index over a five-year period from 2018 to 2022. The index starts at around 2500 in 2018, rises steadily to a peak of about 4500 in 2021, and then declines slightly to approximately 4000 in 2022.

YearS&P 500 Index
20182500
20193000
20203500
20214500
20224000
\n\n\nThe stock market is often considered the economy's\nheartbeat, reflecting corporate health and investor\nsentiment. Over the past five years, the S&P 500 index has\nexperienced significant volatility, with notable peaks and\ntroughs corresponding to various economic events.", + "page_num": 2 + }, + { + "text": " Over the past five years, the S&P 500 index has\nexperienced significant volatility, with notable peaks and\ntroughs corresponding to various economic events. This\noverview examines the key factors that have influenced\nthe stock market's performance and what they indicate\nabout the economy's state## Cryptocurrency Market Dynamics\n\n\n
Price Fluctuations of Bitcoin and Ethereum (Last 12 Months)

This line graph shows two data series over the months from January to December. The blue line represents a data series that starts at around 32,500 in January, peaks in May at about 42,500, dips in July, and then rises steadily to approximately 47,500 in December. The orange line represents a much lower data series, remaining relatively flat throughout the year, starting at around 2,500 in January and ending slightly above 2,500 in December.

\n\n\nCryptocurrencies have emerged as a new asset\nclass, captivating investors with their potential for\nhigh returns and their role in the future of finance.\nThis section explores the price dynamics of major\ncryptocurrencies like Bitcoin and Ethereum,\nanalyzing the ", + "page_num": 3 + }, + { + "text": "\nThis section explores the price dynamics of major\ncryptocurrencies like Bitcoin and Ethereum,\nanalyzing the factors driving their volatility and the\nimplications for the broader financial market.\n\n\n

The image shows a legend with two colored lines and labels. A blue line is labeled \"Bitconin\" and an orange line is labeled \"Ethereum.\" This legend is likely used to differentiate between two data sets or categories in a chart or graph, with \"Bitconin\" and \"Ethereum\" representing different entities or variables.
### Commodity Market Fluctuations\n\n\n
Price Changes of Oil, Gold, and Wheat
This is a horizontal bar chart showing the annual percentage change in prices for Wheat, Gold, and Oil from 2014 to 2022. The chart uses different colors to represent each commodity: gray for Wheat, orange for Gold, and blue for Oil. The x-axis represents the percentage change, ranging from -25% to 35%, while the y-axis lists the years from 2014 to 2022.", + "page_num": 4 + }, + { + "text": "
### Commodity Market Fluctuations\n\n\n
Price Changes of Oil, Gold, and Wheat
This is a horizontal bar chart showing the annual percentage change in prices for Wheat, Gold, and Oil from 2014 to 2022. The chart uses different colors to represent each commodity: gray for Wheat, orange for Gold, and blue for Oil. The x-axis represents the percentage change, ranging from -25% to 35%, while the y-axis lists the years from 2014 to 2022.\n\n\n\n\n\n\n\n\n\n\n\n\n
YearWheatGoldOil
20225%2%0%
20213%4%30%
20201%5%-20%
20192%3%10%
20180%1%15%
20174%2%5%
20163%6%-5%
20151%0%10%
20142%5%-10%
\n\n\nCommodities such as oil, gold, and\nwheat are fundamental to the ", + "page_num": 4 + }, + { + "text": "20151%0%10%\n20142%5%-10%\n
\n\n\nCommodities such as oil, gold, and\nwheat are fundamental to the global\neconomy, influencing everything from\nenergy costs to food prices. This section\ndelves into the trends and factors\naffecting commodity prices, including\ngeopolitical events, supply-chain\ndisruptions, and environmental factors,\nproviding a comprehensive view of this\ncrucial market segment.### Interplay Between Different Market Segments\n\n\n
\n\n
S&P 500NASDAQBitcoinEthereumOilGold
S&P 5001
NASDAQ0.951
Bitcoin0.30.41
Ethereum0.350.450.91
Oil0.60.650.20.251
Gold-0.", + "page_num": 5 + }, + { + "text": "### Interplay Between Different Market Segments\n\n\n
S&P 500NASDAQBitcoinEthereumOilGold
S&P 5001
NASDAQ0.951
Bitcoin0.30.41
Ethereum0.350.450.91
Oil0.60.650.20.251
Gold-0.2-0.15-0.1-0.05-0.31
\n\n\nFinancial markets are interconnected, with movements in one segment often influencing others. This\nsection examines the correlations between stock indices, cryptocurrency prices, and commodity prices,\nrevealing how changes in one market can have ripple effects across the financial ecosystem.### Impact of Macroeconomic Factors\n\n\n
Impact of Interest Rates, Inflation, and GDP Growth on Financial ", + "page_num": 6 + }, + { + "text": "### Impact of Macroeconomic Factors\n\n\n
Impact of Interest Rates, Inflation, and GDP Growth on Financial Markets

The image is a line graph titled \"On Financial Markets\" showing the trends of Interest Rates %, Inflation Data %, and GDP Growth % from 2018 to 2023. The graph has three lines representing each of these metrics over the years.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
YearInterest Rates %Inflation Data %GDP Growth %
2018223
201922.52
202011.5-4
20211.533
202223.52
20232.532.5
\n\n

The graph shows that GDP Growth % experienced a significant drop in 2020, while Inflation Data % and Interest Rates % remained relatively stable with slight fluctuations over the years.", + "page_num": 7 + }, + { + "text": "5

\n\n

The graph shows that GDP Growth % experienced a significant drop in 2020, while Inflation Data % and Interest Rates % remained relatively stable with slight fluctuations over the years.

\n\n\nMacroeconomic factors such as interest\nrates, inflation, and GDP growth play a\npivotal role in shaping financial markets.\nThis section analyzes how these factors\nhave influenced stock, cryptocurrency,\nand commodity markets over recent\nyears, providing insights into the\ncomplex relationship between the\neconomy and financial market\nperformance.## Future Predictions and Trends\n\n\n
Relative Growth Trends for S&P 500, Bitcoin, and Oil Prices (2024 Indexed to 100)

Prices (2024 Indexed to 100)

\n

This bar chart compares the indexed prices of Oil, Bitcoin, and the S&P 500 from 2024 to 2028, with 2024 set as the base year (indexed to 100). The chart shows the relative price changes over the years for each asset.

\n\n\n\n\n\n\n", + "page_num": 7 + }, + { + "text": "## Future Predictions and Trends\n\n\n
Relative Growth Trends for S&P 500, Bitcoin, and Oil Prices (2024 Indexed to 100)

Prices (2024 Indexed to 100)

\n

This bar chart compares the indexed prices of Oil, Bitcoin, and the S&P 500 from 2024 to 2028, with 2024 set as the base year (indexed to 100). The chart shows the relative price changes over the years for each asset.

\n
YearOilBitcoinS&P 500
2024100100100
\n\n\n\n\n\n\n\n\n\n\n
YearOilBitcoinS&P 500
2024100100100
2025105110108
2026110115112
2027115120116
2028120125120
\n\n\nBased on historical data, current trends,\nand economic indicators, this section\npresents predictions for the future of\nfinancial markets. We explore potential\ntrajectories for stock indices,\ncryptocurrency values, and commodity\nprices, offering investors and analysts\n", + "page_num": 8 + }, + { + "text": " We explore potential\ntrajectories for stock indices,\ncryptocurrency values, and commodity\nprices, offering investors and analysts\nforesight into what the coming years\nmight hold.## Conclusions\n\n. In conclusion, this report has traversed the multifaceted landscape of\nfinancial markets, shedding light on the intricate patterns and\ninterdependencies that define their behavior. From the volatility of\ncryptocurrencies to the steadiness of commodities, each segment\ntells a part of the story of our global economy. As Contoso Financial\nAnalytics, we are committed to providing our clients with the most\ncomprehensive and nuanced analysis, empowering them to make\ninformed financial decisions in an ever-evolving market.", + "page_num": 8 + } +] \ No newline at end of file diff --git a/tests/test-data/Financial Market Analysis Report 2023.pdf b/tests/test-data/Financial Market Analysis Report 2023.pdf new file mode 100644 index 0000000000000000000000000000000000000000..eef17aad75d7fe46116e066224e53527d25787b4 GIT binary patch literal 206953 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%0A*Ob0J@T>yedOTu{E!GS-0Y8B`##j+i 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℞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 z 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 literal 0 HcmV?d00001 diff --git a/tests/test-data/Financial Market Analysis Report 2023_page2_figure.png b/tests/test-data/Financial Market Analysis Report 2023_page2_figure.png new file mode 100644 index 0000000000000000000000000000000000000000..b5dd8ae5776cbebcef689f273a8ef6d28e828de4 GIT binary patch literal 75374 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

%%a13xo?rEGg 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 FKLAxG@4x^6 literal 0 HcmV?d00001 diff --git a/tests/test-data/Simple Figure_content.txt b/tests/test-data/Simple Figure_content.txt new file mode 100644 index 0000000000..3e8db25dbb --- /dev/null +++ b/tests/test-data/Simple Figure_content.txt @@ -0,0 +1,13 @@ +# Simple Figure + +This text is before the figure and NOT part of it. + + +
+ +9 + +
+ + +This is text after the figure that's not part of it. diff --git a/tests/test-data/Simple Table.pdf b/tests/test-data/Simple Table.pdf new file mode 100644 index 0000000000000000000000000000000000000000..0a5ae23e90e26844b8be728bae10c9d5a580491d GIT binary patch literal 26616 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 + +Header 1 +Header 2 + + +Cell 1 +Cell 2 + + +Cell 3 +Cell 4 + + diff --git a/tests/test-data/pages_with_figures.json b/tests/test-data/pages_with_figures.json new file mode 100644 index 0000000000..0b157c7f0c --- /dev/null +++ b/tests/test-data/pages_with_figures.json @@ -0,0 +1 @@ +[{"page_num": 0, "offset": 0, "text": "# Financial Market Analysis Report 2023\n\nAn In-Depth Exploration of Stocks, Cryptocurrencies, and Commodities\nPrepared by: Contoso Financial Analytics"}, {"page_num": 1, "offset": 150, "text": "## Executive Summary\n\n. In this comprehensive report, Contoso Financial Analytics provides a\ndeep dive into the financial markets of 2023, focusing on the trends\nand fluctuations within stocks, cryptocurrencies, and commodities.\nOur analysis covers historical patterns, current market conditions, and\nfuture predictions, offering valuable insights for investors, analysts,\nand financial enthusiasts. This report leverages advanced data\nanalytics to present a clear picture of the complex interplay between\ndifferent financial markets and their potential trajectories"}, {"page_num": 2, "offset": 716, "text": "## Introduction to Financial Markets\n\n\n
Global Financial Market Distribution (2023)
This pie chart represents the distribution of investments across four categories: Stocks, Bonds, Cryptocurrencies, and Commodities. The chart is divided into four colored sections, each representing a different category. Stocks are shown in blue, Bonds in orange, Cryptocurrencies in gray, and Commodities in yellow. The chart visually indicates the proportion of each investment type within a portfolio.

CategoryColor
StocksBlue
BondsOrange
CryptocurrenciesGray
CommoditiesYellow
\n\n\nThe global financial market is a vast and intricate network of\nexchanges, instruments, and assets, ranging from traditional stocks\nand bonds to modern cryptocurrencies and commodities. Each\nsegment plays a crucial role in the overall economy, and their\ninteractions can have profound effects on global financial stability.\nThis section provides an overview of these segments and sets the\nstage for a detailed analysis"}, {"page_num": 3, "offset": 1897, "text": "## Stock Market Overview\n\n\n

5-Year Trend of the S&P 500 Index

This line chart shows the trend of the S&P 500 Index over a five-year period from 2018 to 2022. The index starts at around 2500 in 2018, rises steadily to a peak of about 4500 in 2021, and then declines slightly to approximately 4000 in 2022.

YearS&P 500 Index
20182500
20193000
20203500
20214500
20224000
\n\n\nThe stock market is often considered the economy's\nheartbeat, reflecting corporate health and investor\nsentiment. Over the past five years, the S&P 500 index has\nexperienced significant volatility, with notable peaks and\ntroughs corresponding to various economic events. This\noverview examines the key factors that have influenced\nthe stock market's performance and what they indicate\nabout the economy's state"}, {"page_num": 4, "offset": 2937, "text": "## Cryptocurrency Market Dynamics\n\n\n
Price Fluctuations of Bitcoin and Ethereum (Last 12 Months)

This line graph shows two data series over the months from January to December. The blue line represents a data series that starts at around 32,500 in January, peaks in May at about 42,500, dips in July, and then rises steadily to approximately 47,500 in December. The orange line represents a much lower data series, remaining relatively flat throughout the year, starting at around 2,500 in January and ending slightly above 2,500 in December.

\n\n\nCryptocurrencies have emerged as a new asset\nclass, captivating investors with their potential for\nhigh returns and their role in the future of finance.\nThis section explores the price dynamics of major\ncryptocurrencies like Bitcoin and Ethereum,\nanalyzing the factors driving their volatility and the\nimplications for the broader financial market.\n\n\n

The image shows a legend with two colored lines and labels. A blue line is labeled \"Bitconin\" and an orange line is labeled \"Ethereum.\" This legend is likely used to differentiate between two data sets or categories in a chart or graph, with \"Bitconin\" and \"Ethereum\" representing different entities or variables.
"}, {"page_num": 5, "offset": 4243, "text": "### Commodity Market Fluctuations\n\n\n
Price Changes of Oil, Gold, and Wheat
This is a horizontal bar chart showing the annual percentage change in prices for Wheat, Gold, and Oil from 2014 to 2022. The chart uses different colors to represent each commodity: gray for Wheat, orange for Gold, and blue for Oil. The x-axis represents the percentage change, ranging from -25% to 35%, while the y-axis lists the years from 2014 to 2022.\n\n\n\n\n\n\n\n\n\n\n\n\n
YearWheatGoldOil
20225%2%0%
20213%4%30%
20201%5%-20%
20192%3%10%
20180%1%15%
20174%2%5%
20163%6%-5%
20151%0%10%
20142%5%-10%
\n\n\nCommodities such as oil, gold, and\nwheat are fundamental to the global\neconomy, influencing everything from\nenergy costs to food prices. This section\ndelves into the trends and factors\naffecting commodity prices, including\ngeopolitical events, supply-chain\ndisruptions, and environmental factors,\nproviding a comprehensive view of this\ncrucial market segment."}, {"page_num": 6, "offset": 5673, "text": "### Interplay Between Different Market Segments\n\n\n
S&P 500NASDAQBitcoinEthereumOilGold
S&P 5001
NASDAQ0.951
Bitcoin0.30.41
Ethereum0.350.450.91
Oil0.60.650.20.251
Gold-0.2-0.15-0.1-0.05-0.31
\n\n\nFinancial markets are interconnected, with movements in one segment often influencing others. This\nsection examines the correlations between stock indices, cryptocurrency prices, and commodity prices,\nrevealing how changes in one market can have ripple effects across the financial ecosystem."}, {"page_num": 7, "offset": 6695, "text": "### Impact of Macroeconomic Factors\n\n\n
Impact of Interest Rates, Inflation, and GDP Growth on Financial Markets

The image is a line graph titled \"On Financial Markets\" showing the trends of Interest Rates %, Inflation Data %, and GDP Growth % from 2018 to 2023. The graph has three lines representing each of these metrics over the years.

\n\n\n\n\n\n\n\n\n\n\n\n\n\n
YearInterest Rates %Inflation Data %GDP Growth %
2018223
201922.52
202011.5-4
20211.533
202223.52
20232.532.5
\n\n

The graph shows that GDP Growth % experienced a significant drop in 2020, while Inflation Data % and Interest Rates % remained relatively stable with slight fluctuations over the years.

\n\n\nMacroeconomic factors such as interest\nrates, inflation, and GDP growth play a\npivotal role in shaping financial markets.\nThis section analyzes how these factors\nhave influenced stock, cryptocurrency,\nand commodity markets over recent\nyears, providing insights into the\ncomplex relationship between the\neconomy and financial market\nperformance."}, {"page_num": 8, "offset": 8102, "text": "## Future Predictions and Trends\n\n\n
Relative Growth Trends for S&P 500, Bitcoin, and Oil Prices (2024 Indexed to 100)

Prices (2024 Indexed to 100)

\n

This bar chart compares the indexed prices of Oil, Bitcoin, and the S&P 500 from 2024 to 2028, with 2024 set as the base year (indexed to 100). The chart shows the relative price changes over the years for each asset.

\n\n\n\n\n\n\n\n\n\n\n\n
YearOilBitcoinS&P 500
2024100100100
2025105110108
2026110115112
2027115120116
2028120125120
\n\n\nBased on historical data, current trends,\nand economic indicators, this section\npresents predictions for the future of\nfinancial markets. We explore potential\ntrajectories for stock indices,\ncryptocurrency values, and commodity\nprices, offering investors and analysts\nforesight into what the coming years\nmight hold."}, {"page_num": 9, "offset": 9281, "text": "## Conclusions\n\n. In conclusion, this report has traversed the multifaceted landscape of\nfinancial markets, shedding light on the intricate patterns and\ninterdependencies that define their behavior. From the volatility of\ncryptocurrencies to the steadiness of commodities, each segment\ntells a part of the story of our global economy. As Contoso Financial\nAnalytics, we are committed to providing our clients with the most\ncomprehensive and nuanced analysis, empowering them to make\ninformed financial decisions in an ever-evolving market."}] diff --git a/tests/test_app.py b/tests/test_app.py index 9c20b9421a..580e31e5d1 100644 --- a/tests/test_app.py +++ b/tests/test_app.py @@ -15,7 +15,7 @@ def fake_response(http_code): return Response(http_code, request=Request(method="get", url="https://foo.bar/")) -# See https://learn.microsoft.com/en-us/azure/ai-services/openai/concepts/content-filter +# See https://learn.microsoft.com/azure/ai-services/openai/concepts/content-filter filtered_response = BadRequestError( message="The response was filtered", body={ diff --git a/tests/test_mediadescriber.py b/tests/test_mediadescriber.py new file mode 100644 index 0000000000..117a186281 --- /dev/null +++ b/tests/test_mediadescriber.py @@ -0,0 +1,135 @@ +import json +import logging + +import aiohttp +import pytest + +from prepdocslib.mediadescriber import ContentUnderstandingDescriber + +from .mocks import MockAzureCredential, MockResponse + + +@pytest.mark.asyncio +async def test_contentunderstanding_analyze(monkeypatch, caplog): + + def mock_post(*args, **kwargs): + if kwargs.get("url").find("badanalyzer") > 0: + return MockResponse( + status=200, + headers={ + "Operation-Location": "https://testcontentunderstanding.cognitiveservices.azure.com/contentunderstanding/analyzers/badanalyzer/operations/7f313e00-4da1-4b19-a25e-53f121c24d10?api-version=2024-12-01-preview" + }, + ) + if kwargs.get("url").endswith("contentunderstanding/analyzers/image_analyzer:analyze"): + return MockResponse( + status=200, + headers={ + "Operation-Location": "https://testcontentunderstanding.cognitiveservices.azure.com/contentunderstanding/analyzers/image_analyzer/results/53e4c016-d2c0-48a9-a9f4-38891f7d45f0?api-version=2024-12-01-preview" + }, + ) + else: + raise Exception("Unexpected URL for mock call to ClientSession.post()") + + monkeypatch.setattr(aiohttp.ClientSession, "post", mock_post) + + num_poll_calls = 0 + + def mock_get(self, url, **kwargs): + if url.endswith( + "contentunderstanding/analyzers/image_analyzer/results/53e4c016-d2c0-48a9-a9f4-38891f7d45f0?api-version=2024-12-01-preview" + ): + return MockResponse( + status=200, + text=json.dumps( + { + "id": "f8c4c1c0-71c3-410c-a723-d223e0a84a88", + "status": "Succeeded", + "result": { + "analyzerId": "image_analyzer", + "apiVersion": "2024-12-01-preview", + "createdAt": "2024-12-05T17:33:04Z", + "warnings": [], + "contents": [ + { + "markdown": "![image](image)\n", + "fields": { + "Description": { + "type": "string", + "valueString": "The bar chart titled 'Prices (2024 Indexed to 100)' compares the indexed prices of Oil, Bitcoin, and S&P 500 from 2024 to 2028. Each year is represented by a set of three horizontal bars, with Oil in gray, Bitcoin in orange, and S&P 500 in blue. The index is based on the year 2024, where all values start at 100. Over the years, Bitcoin shows the most significant increase, reaching around 130 by 2028, while Oil and S&P 500 show moderate increases.\n\n
YearOilBitcoinS&P 500
2024100100100
20251051101 08
2026110115112
2027115120116
2028120130120
", + } + }, + "kind": "document", + "startPageNumber": 1, + "endPageNumber": 1, + "unit": "pixel", + "pages": [{"pageNumber": 1}], + } + ], + }, + } + ), + ) + elif url.endswith( + "https://testcontentunderstanding.cognitiveservices.azure.com/contentunderstanding/analyzers/badanalyzer/operations/7f313e00-4da1-4b19-a25e-53f121c24d10?api-version=2024-12-01-preview" + ): + return MockResponse(status=200, text=json.dumps({"status": "Failed"})) + elif url.endswith( + "https://testcontentunderstanding.cognitiveservices.azure.com/contentunderstanding/analyzers/image_analyzer/operations/7f313e00-4da1-4b19-a25e-53f121c24d10?api-version=2024-12-01-preview" + ): + nonlocal num_poll_calls + num_poll_calls += 1 + if num_poll_calls == 1: + return MockResponse(status=200, text=json.dumps({"status": "Running"})) + elif num_poll_calls > 1: + return MockResponse(status=200, text=json.dumps({"status": "Succeeded"})) + else: + raise Exception("Unexpected URL for mock call to ClientSession.get()") + + monkeypatch.setattr(aiohttp.ClientSession, "get", mock_get) + + def mock_put(self, *args, **kwargs): + if kwargs.get("url").find("existinganalyzer") > 0: + return MockResponse(status=409) + if kwargs.get("url").find("wrongservicename") > 0: + return MockResponse( + status=404, + text=json.dumps( + {"error": {"code": "ResourceNotFound", "message": "The specified resource does not exist."}} + ), + ) + elif kwargs.get("url").endswith("contentunderstanding/analyzers/image_analyzer"): + return MockResponse( + status=201, + headers={ + "Operation-Location": "https://testcontentunderstanding.cognitiveservices.azure.com/contentunderstanding/analyzers/image_analyzer/operations/7f313e00-4da1-4b19-a25e-53f121c24d10?api-version=2024-12-01-preview" + }, + ) + else: + raise Exception("Unexpected URL for mock call to ClientSession.put()") + + monkeypatch.setattr(aiohttp.ClientSession, "put", mock_put) + + describer = ContentUnderstandingDescriber( + endpoint="https://testcontentunderstanding.cognitiveservices.azure.com", credential=MockAzureCredential() + ) + await describer.create_analyzer() + await describer.describe_image(b"imagebytes") + + describer_wrong_endpoint = ContentUnderstandingDescriber( + endpoint="https://wrongservicename.cognitiveservices.azure.com", credential=MockAzureCredential() + ) + with pytest.raises(Exception): + await describer_wrong_endpoint.create_analyzer() + + describer_existing_analyzer = ContentUnderstandingDescriber( + endpoint="https://existinganalyzer.cognitiveservices.azure.com", credential=MockAzureCredential() + ) + with caplog.at_level(logging.INFO): + await describer_existing_analyzer.create_analyzer() + assert "Analyzer 'image_analyzer' already exists." in caplog.text + + describer_bad_analyze = ContentUnderstandingDescriber( + endpoint="https://badanalyzer.cognitiveservices.azure.com", credential=MockAzureCredential() + ) + with pytest.raises(Exception): + await describer_bad_analyze.describe_image(b"imagebytes") diff --git a/tests/test_pdfparser.py b/tests/test_pdfparser.py new file mode 100644 index 0000000000..408aa2b2d0 --- /dev/null +++ b/tests/test_pdfparser.py @@ -0,0 +1,310 @@ +import io +import logging +import math +import pathlib +from unittest.mock import AsyncMock, MagicMock + +import pymupdf +import pytest +from azure.ai.documentintelligence.aio import DocumentIntelligenceClient +from azure.ai.documentintelligence.models import ( + AnalyzeResult, + BoundingRegion, + DocumentCaption, + DocumentFigure, + DocumentPage, + DocumentSpan, + DocumentTable, + DocumentTableCell, +) +from PIL import Image, ImageChops + +from prepdocslib.mediadescriber import ContentUnderstandingDescriber +from prepdocslib.pdfparser import DocumentAnalysisParser + +from .mocks import MockAzureCredential + +TEST_DATA_DIR = pathlib.Path(__file__).parent / "test-data" + + +def assert_image_equal(image1, image2): + assert image1.size == image2.size + assert image1.mode == image2.mode + # Based on https://stackoverflow.com/a/55251080/1347623 + diff = ImageChops.difference(image1, image2).histogram() + sq = (value * (i % 256) ** 2 for i, value in enumerate(diff)) + rms = math.sqrt(sum(sq) / float(image1.size[0] * image1.size[1])) + assert rms < 90 + + +def test_crop_image_from_pdf_page(): + doc = pymupdf.open(TEST_DATA_DIR / "Financial Market Analysis Report 2023.pdf", filetype="pdf") + page_number = 2 + bounding_box = (1.4703, 2.8371, 5.5381, 6.6022) # Coordinates in inches + + cropped_image_bytes = DocumentAnalysisParser.crop_image_from_pdf_page(doc, page_number, bounding_box) + + # Verify the output is not empty + assert cropped_image_bytes is not None + assert len(cropped_image_bytes) > 0 + + # Verify the output is a valid image + cropped_image = Image.open(io.BytesIO(cropped_image_bytes)) + assert cropped_image.format == "PNG" + assert cropped_image.size[0] > 0 + assert cropped_image.size[1] > 0 + + expected_image = Image.open(TEST_DATA_DIR / "Financial Market Analysis Report 2023_page2_figure.png") + assert_image_equal(cropped_image, expected_image) + + +def test_table_to_html(): + table = DocumentTable( + row_count=2, + column_count=2, + cells=[ + DocumentTableCell(row_index=0, column_index=0, content="Header 1", kind="columnHeader"), + DocumentTableCell(row_index=0, column_index=1, content="Header 2", kind="columnHeader"), + DocumentTableCell(row_index=1, column_index=0, content="Cell 1"), + DocumentTableCell(row_index=1, column_index=1, content="Cell 2"), + ], + ) + + expected_html = ( + "
" + "" + "" + "
Header 1Header 2
Cell 1Cell 2
" + ) + + result_html = DocumentAnalysisParser.table_to_html(table) + assert result_html == expected_html + + +def test_table_to_html_with_spans(): + table = DocumentTable( + row_count=2, + column_count=2, + cells=[ + DocumentTableCell(row_index=0, column_index=0, content="Header 1", kind="columnHeader", column_span=2), + DocumentTableCell(row_index=1, column_index=0, content="Cell 1", row_span=2), + DocumentTableCell(row_index=1, column_index=1, content="Cell 2"), + ], + ) + + expected_html = ( + "
" + "" + "" + "
Header 1
Cell 1Cell 2
" + ) + + result_html = DocumentAnalysisParser.table_to_html(table) + assert result_html == expected_html + + +@pytest.mark.asyncio +async def test_figure_to_html_without_bounding_regions(): + doc = MagicMock() + figure = DocumentFigure(id="1", caption=None, bounding_regions=None) + cu_describer = MagicMock() + + result_html = await DocumentAnalysisParser.figure_to_html(doc, figure, cu_describer) + expected_html = "
" + + assert result_html == expected_html + + +@pytest.mark.asyncio +async def test_figure_to_html_with_bounding_regions(monkeypatch, caplog): + doc = MagicMock() + figure = DocumentFigure( + id="1", + caption=DocumentCaption(content="Figure 1"), + bounding_regions=[ + BoundingRegion(page_number=1, polygon=[1.4703, 2.8371, 5.5409, 2.8415, 5.5381, 6.6022, 1.4681, 6.5978]), + BoundingRegion(page_number=2, polygon=[1.4703, 2.8371, 5.5409, 2.8415, 5.5381, 6.6022, 1.4681, 6.5978]), + ], + ) + cu_describer = AsyncMock() + + async def mock_describe_image(image_bytes): + assert image_bytes == b"image_bytes" + return "Described Image" + + monkeypatch.setattr(cu_describer, "describe_image", mock_describe_image) + + def mock_crop_image_from_pdf_page(doc, page_number, bounding_box) -> bytes: + assert page_number == 0 + assert bounding_box == (1.4703, 2.8371, 5.5381, 6.6022) + return b"image_bytes" + + monkeypatch.setattr(DocumentAnalysisParser, "crop_image_from_pdf_page", mock_crop_image_from_pdf_page) + + with caplog.at_level(logging.WARNING): + result_html = await DocumentAnalysisParser.figure_to_html(doc, figure, cu_describer) + expected_html = "
Figure 1
Described Image
" + assert result_html == expected_html + assert "Figure 1 has more than one bounding region, using the first one" in caplog.text + + +@pytest.mark.asyncio +async def test_parse_simple(monkeypatch): + mock_poller = MagicMock() + + async def mock_begin_analyze_document(self, model_id, analyze_request, **kwargs): + return mock_poller + + async def mock_poller_result(): + return AnalyzeResult( + content="Page content", + pages=[DocumentPage(page_number=1, spans=[DocumentSpan(offset=0, length=12)])], + tables=[], + figures=[], + ) + + monkeypatch.setattr(DocumentIntelligenceClient, "begin_analyze_document", mock_begin_analyze_document) + monkeypatch.setattr(mock_poller, "result", mock_poller_result) + + parser = DocumentAnalysisParser( + endpoint="https://example.com", credential=MockAzureCredential(), use_content_understanding=False + ) + content = io.BytesIO(b"pdf content bytes") + content.name = "test.pdf" + pages = [page async for page in parser.parse(content)] + + assert len(pages) == 1 + assert pages[0].page_num == 0 + assert pages[0].offset == 0 + assert pages[0].text == "Page content" + + +@pytest.mark.asyncio +async def test_parse_doc_with_tables(monkeypatch): + mock_poller = MagicMock() + + async def mock_begin_analyze_document(self, model_id, analyze_request, **kwargs): + return mock_poller + + async def mock_poller_result(): + content = open(TEST_DATA_DIR / "Simple Table_content.txt").read() + return AnalyzeResult( + content=content, + pages=[DocumentPage(page_number=1, spans=[DocumentSpan(offset=0, length=172)])], + tables=[ + DocumentTable( + bounding_regions=[ + BoundingRegion( + page_number=1, polygon=[0.4394, 1.0459, 4.2509, 1.0449, 4.2524, 1.9423, 0.4408, 1.9432] + ) + ], + row_count=3, + column_count=2, + cells=[ + DocumentTableCell( + row_index=0, + column_index=0, + content="Header 1", + kind="columnHeader", + spans=[DocumentSpan(offset=39, length=8)], + ), + DocumentTableCell( + row_index=0, + column_index=1, + content="Header 2", + kind="columnHeader", + spans=[DocumentSpan(offset=57, length=8)], + ), + DocumentTableCell( + row_index=1, column_index=0, content="Cell 1", spans=[DocumentSpan(offset=86, length=6)] + ), + DocumentTableCell( + row_index=1, column_index=1, content="Cell 2", spans=[DocumentSpan(offset=102, length=6)] + ), + DocumentTableCell( + row_index=2, column_index=0, content="Cell 3", spans=[DocumentSpan(offset=129, length=6)] + ), + DocumentTableCell( + row_index=2, column_index=1, content="Cell 4", spans=[DocumentSpan(offset=145, length=6)] + ), + ], + spans=[DocumentSpan(offset=22, length=149)], + ) + ], + figures=[], + ) + + monkeypatch.setattr(DocumentIntelligenceClient, "begin_analyze_document", mock_begin_analyze_document) + monkeypatch.setattr(mock_poller, "result", mock_poller_result) + + parser = DocumentAnalysisParser( + endpoint="https://example.com", credential=MockAzureCredential(), use_content_understanding=False + ) + with open(TEST_DATA_DIR / "Simple Table.pdf", "rb") as f: + content = io.BytesIO(f.read()) + content.name = "Simple Table.pdf" + pages = [page async for page in parser.parse(content)] + + assert len(pages) == 1 + assert pages[0].page_num == 0 + assert pages[0].offset == 0 + assert ( + pages[0].text + == "# Simple HTML Table\n\n\n
Header 1Header 2
Cell 1Cell 2
Cell 3Cell 4
" + ) + + +@pytest.mark.asyncio +async def test_parse_doc_with_figures(monkeypatch): + mock_poller = MagicMock() + + async def mock_begin_analyze_document(self, model_id, analyze_request, **kwargs): + return mock_poller + + async def mock_poller_result(): + content = open(TEST_DATA_DIR / "Simple Figure_content.txt").read() + return AnalyzeResult( + content=content, + pages=[DocumentPage(page_number=1, spans=[DocumentSpan(offset=0, length=148)])], + figures=[ + DocumentFigure( + id="1.1", + caption=DocumentCaption(content="Figure 1"), + bounding_regions=[ + BoundingRegion( + page_number=1, polygon=[0.4295, 1.3072, 1.7071, 1.3076, 1.7067, 2.6088, 0.4291, 2.6085] + ) + ], + spans=[DocumentSpan(offset=70, length=22)], + ) + ], + ) + + monkeypatch.setattr(DocumentIntelligenceClient, "begin_analyze_document", mock_begin_analyze_document) + monkeypatch.setattr(mock_poller, "result", mock_poller_result) + + async def mock_describe_image(self, image_bytes): + return "Pie chart" + + monkeypatch.setattr(ContentUnderstandingDescriber, "describe_image", mock_describe_image) + + parser = DocumentAnalysisParser( + endpoint="https://example.com", + credential=MockAzureCredential(), + use_content_understanding=True, + content_understanding_endpoint="https://example.com", + ) + + with open(TEST_DATA_DIR / "Simple Figure.pdf", "rb") as f: + content = io.BytesIO(f.read()) + content.name = "Simple Figure.pdf" + + pages = [page async for page in parser.parse(content)] + + assert len(pages) == 1 + assert pages[0].page_num == 0 + assert pages[0].offset == 0 + assert ( + pages[0].text + == "# Simple Figure\n\nThis text is before the figure and NOT part of it.\n\n\n
Figure 1
Pie chart
\n\n\nThis is text after the figure that's not part of it." + ) diff --git a/tests/test_prepdocslib_textsplitter.py b/tests/test_prepdocslib_textsplitter.py index 87049d4dad..c71e15c826 100644 --- a/tests/test_prepdocslib_textsplitter.py +++ b/tests/test_prepdocslib_textsplitter.py @@ -17,13 +17,13 @@ def test_sentencetextsplitter_split_empty_pages(): - t = SentenceTextSplitter(has_image_embeddings=False) + t = SentenceTextSplitter() assert list(t.split_pages([])) == [] def test_sentencetextsplitter_split_small_pages(): - t = SentenceTextSplitter(has_image_embeddings=False) + t = SentenceTextSplitter() split_pages = list(t.split_pages(pages=[Page(page_num=0, offset=0, text="Not a large page")])) assert len(split_pages) == 1 @@ -33,7 +33,7 @@ def test_sentencetextsplitter_split_small_pages(): @pytest.mark.asyncio async def test_sentencetextsplitter_list_parse_and_split(tmp_path, snapshot): - text_splitter = SentenceTextSplitter(has_image_embeddings=False) + text_splitter = SentenceTextSplitter() pdf_parser = LocalPdfParser() for pdf in Path("data").glob("*.pdf"): shutil.copy(str(pdf.absolute()), tmp_path) @@ -98,7 +98,7 @@ def pytest_generate_tests(metafunc): @pytest.mark.asyncio async def test_sentencetextsplitter_multilang(test_doc, tmp_path): - text_splitter = SentenceTextSplitter(has_image_embeddings=False) + text_splitter = SentenceTextSplitter() bpe = tiktoken.encoding_for_model(ENCODING_MODEL) pdf_parser = LocalPdfParser() @@ -133,7 +133,7 @@ async def test_sentencetextsplitter_multilang(test_doc, tmp_path): def test_split_tables(): - t = SentenceTextSplitter(has_image_embeddings=False) + t = SentenceTextSplitter() test_text_without_table = """Contoso Electronics is a leader in the aerospace industry, providing advanced electronic components for both commercial and military aircraft. We specialize in creating cutting- @@ -166,3 +166,23 @@ def test_split_tables(): assert "