End-to-end test for VLM annotation
This commit is contained in:
parent
769e0d4746
commit
3b7fd440cc
2 changed files with 130 additions and 0 deletions
File diff suppressed because one or more lines are too long
|
|
@ -374,6 +374,51 @@ class TestDoclingLocalConverter:
|
||||||
assert pic_desc.enabled is True
|
assert pic_desc.enabled is True
|
||||||
assert pic_desc.timeout == 120
|
assert pic_desc.timeout == 120
|
||||||
|
|
||||||
|
@pytest.mark.asyncio
|
||||||
|
@pytest.mark.integration
|
||||||
|
@pytest.mark.vcr()
|
||||||
|
async def test_picture_description_end_to_end(self, config):
|
||||||
|
"""End-to-end test: convert PDF with VLM picture descriptions."""
|
||||||
|
pdf_path = Path("tests/data/doclaynet.pdf")
|
||||||
|
if not pdf_path.exists():
|
||||||
|
pytest.skip("doclaynet.pdf not found")
|
||||||
|
|
||||||
|
# Enable picture description with Ollama
|
||||||
|
config.processing.conversion_options.picture_description.enabled = True
|
||||||
|
config.processing.conversion_options.picture_description.model.provider = (
|
||||||
|
"ollama"
|
||||||
|
)
|
||||||
|
config.processing.conversion_options.picture_description.model.name = (
|
||||||
|
"ministral-3"
|
||||||
|
)
|
||||||
|
|
||||||
|
converter = DoclingLocalConverter(config)
|
||||||
|
doc = await converter.convert_file(pdf_path)
|
||||||
|
|
||||||
|
# Export to markdown and check for picture descriptions
|
||||||
|
markdown = doc.export_to_markdown()
|
||||||
|
|
||||||
|
# The document should have pictures with descriptions
|
||||||
|
assert doc.pictures, "Document should have pictures"
|
||||||
|
|
||||||
|
# Check that at least one picture has a description annotation
|
||||||
|
from docling_core.types.doc.document import PictureDescriptionData
|
||||||
|
|
||||||
|
pictures_with_descriptions = []
|
||||||
|
for pic in doc.pictures:
|
||||||
|
for ann in pic.annotations:
|
||||||
|
if isinstance(ann, PictureDescriptionData):
|
||||||
|
pictures_with_descriptions.append(pic)
|
||||||
|
# Description should appear in markdown output
|
||||||
|
assert ann.text in markdown, (
|
||||||
|
f"Picture description '{ann.text[:50]}...' should be in markdown"
|
||||||
|
)
|
||||||
|
break
|
||||||
|
|
||||||
|
assert pictures_with_descriptions, (
|
||||||
|
"At least one picture should have a VLM description"
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
class TestDoclingServeConverter:
|
class TestDoclingServeConverter:
|
||||||
"""Tests for DoclingServeConverter (mocked)."""
|
"""Tests for DoclingServeConverter (mocked)."""
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue