From 523069080b0c77ce7403bc2c6eb5e69a5a6e9a83 Mon Sep 17 00:00:00 2001 From: drmingler Date: Fri, 14 Feb 2025 12:19:11 +0000 Subject: [PATCH] feat: Change package name --- README.md | 32 ++++++------ examples/data/test_ocr_doc.png | Bin 0 -> 124551 bytes examples/ocr_example.py | 12 ++--- examples/rag_example.py | 18 +++---- pyproject.toml | 8 +-- {llm_loader => smart_llm_loader}/__init__.py | 2 +- .../document_loader.py | 6 +-- {llm_loader => smart_llm_loader}/llm.py | 6 +-- {llm_loader => smart_llm_loader}/prompts.py | 0 {llm_loader => smart_llm_loader}/schema.py | 0 {llm_loader => smart_llm_loader}/utils.py | 0 tests/test_document_loader.py | 46 +++++++++--------- tests/test_image_processor.py | 4 +- tests/test_llm_processing.py | 26 +++++----- 14 files changed, 80 insertions(+), 80 deletions(-) create mode 100644 examples/data/test_ocr_doc.png rename {llm_loader => smart_llm_loader}/__init__.py (97%) rename {llm_loader => smart_llm_loader}/document_loader.py (97%) rename {llm_loader => smart_llm_loader}/llm.py (97%) rename {llm_loader => smart_llm_loader}/prompts.py (100%) rename {llm_loader => smart_llm_loader}/schema.py (100%) rename {llm_loader => smart_llm_loader}/utils.py (100%) diff --git a/README.md b/README.md index 3309f26..70c5491 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ -# LLMLoader +# SmartLLMLoader -llm-loader is a lightweight yet powerful Python package that transforms any document into LLM-ready chunks. It handles the entire document processing pipeline: +smart-llm-loader is a lightweight yet powerful Python package that transforms any document into LLM-ready chunks. It handles the entire document processing pipeline: - 📄 Converts documents to clean markdown - 🔍 Built-in OCR for scanned documents and images @@ -9,9 +9,9 @@ llm-loader is a lightweight yet powerful Python package that transforms any docu - 📦 Ready for vector stores and LLM ingestion Spend less time on preprocessing headaches and more time building what matters. From RAG systems to chatbots to document Q&A, -LLMLoader handles the heavy lifting so you can focus on creating exceptional AI applications. +SmartLLMLoader handles the heavy lifting so you can focus on creating exceptional AI applications. -LLMLoader's chunking approach has been benchmarked against traditional methods, showing superior performance particularly when paired with Google's Gemini Flash model. This combination offers an efficient and cost-effective solution for document chunking in RAG systems. View the detailed performance comparison [here](https://www.sergey.fyi/articles/gemini-flash-2). +SmartLLMLoader's chunking approach has been benchmarked against traditional methods, showing superior performance particularly when paired with Google's Gemini Flash model. This combination offers an efficient and cost-effective solution for document chunking in RAG systems. View the detailed performance comparison [here](https://www.sergey.fyi/articles/gemini-flash-2). ## Features @@ -45,24 +45,24 @@ brew install poppler ### Package Installation -You can install LLMLoader using pip: +You can install SmartLLMLoader using pip: ```bash -pip install llm-loader +pip install smart-llm-loader ``` Or using Poetry: ```bash -poetry add llm-loader +poetry add smart-llm-loader ``` ## Quick Start -llm-loader package uses litellm to call the LLM so any arguments supported by litellm can be used. You can find the litellm documentation [here](https://docs.litellm.ai/docs/providers). +smart-llm-loader package uses litellm to call the LLM so any arguments supported by litellm can be used. You can find the litellm documentation [here](https://docs.litellm.ai/docs/providers). You can use any multi-modal model supported by litellm. ```python -from llm_loader import LLMLoader +from smart_llm_loader import SmartLLMLoader # Using Gemini Flash model @@ -79,7 +79,7 @@ model = "anthropic/claude-3-5-sonnet" # Initialize the document loader -loader = LLMLoader( +loader = SmartLLMLoader( file_path="your_document.pdf", chunk_strategy="contextual", model=model, @@ -91,7 +91,7 @@ documents = loader.load_and_split() ## Parameters ```python -class LLMLoader(BaseLoader): +class SmartLLMLoader(BaseLoader): """A flexible document loader that supports multiple input types.""" def __init__( @@ -110,7 +110,7 @@ class LLMLoader(BaseLoader): ## Comparison with Traditional Methods -Let's see LLMLoader in action! We'll compare it with PyMuPDF (a popular traditional document loader) to demonstrate why LLMLoader's intelligent chunking makes such a difference in real-world applications. +Let's see SmartLLMLoader in action! We'll compare it with PyMuPDF (a popular traditional document loader) to demonstrate why SmartLLMLoader's intelligent chunking makes such a difference in real-world applications. ### The Challenge: Processing an Invoice We'll process this sample invoice that includes headers, tables, and complex formatting: @@ -119,8 +119,8 @@ We'll process this sample invoice that includes headers, tables, and complex for ### Head-to-Head Comparison -#### 1. LLMLoader Output -LLMLoader intelligently breaks down the document into semantic chunks, preserving structure and meaning (note that the json output below has been formatted for readability): +#### 1. SmartLLMLoader Output +SmartLLMLoader intelligently breaks down the document into semantic chunks, preserving structure and meaning (note that the json output below has been formatted for readability): ```json [ @@ -232,7 +232,7 @@ Let's see how this difference affects a real Question-Answering system: ```python question = "What is the total gross worth for item 1 and item 7?" -# LLMLoader Result ✅ +# SmartLLMLoader Result ✅ "The total gross worth for item 1 (Lilly Pulitzer dress) is $247.50 and for item 7 (J.Crew Collection sweater dress) is $33.00. Total: $280.50" @@ -242,7 +242,7 @@ Total: $280.50" Total: $78.00" ``` -**Why LLMLoader Won:** +**Why SmartLLMLoader Won:** - 🎯 Maintained table structure - 💡 Preserved relationships between data - 📊 Accurate calculations diff --git a/examples/data/test_ocr_doc.png b/examples/data/test_ocr_doc.png new file mode 100644 index 0000000000000000000000000000000000000000..1686db569e4cd65c07c4cd8812991da7b7aff434 GIT binary patch literal 124551 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

pSd&)ya5MD$iz_^^@LGuO14XV02um=D2 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 literal 0 HcmV?d00001 diff --git a/examples/ocr_example.py b/examples/ocr_example.py index cfc519e..c542354 100644 --- a/examples/ocr_example.py +++ b/examples/ocr_example.py @@ -1,10 +1,10 @@ """ -Example usage of different document loaders (llm_loader and PyMuPDF) for RAG applications. +Example usage of different document loaders (smart-llm-loader and PyMuPDF) for RAG applications. """ import os from dotenv import load_dotenv -from llm_loader.document_loader import LLMLoader +from smart_llm_loader import SmartLLMLoader # Load environment variables load_dotenv() @@ -13,14 +13,14 @@ os.environ["OPENAI_API_KEY"] = "YOUR_OPENAI_API_KEY" # Gemini API key since we are using the gemini flash model -os.environ["GEMINI_API_KEY"] = "YOUR_GEMINI" +os.environ["GEMINI_API_KEY"] = "YOUR_GEMINI_API_KEY" def process_with_llmloader(): - """Process documents using LLMLoader with Gemini Flash.""" + """Process documents using SmartLLMLoader with Gemini Flash.""" - # Initialize the loader from the llm_loader package - loader = LLMLoader( + # Initialize the loader from the smart-llm-loader package + loader = SmartLLMLoader( file_path="./data/test_ocr_doc.pdf", chunk_strategy="contextual", model="gemini/gemini-1.5-flash", diff --git a/examples/rag_example.py b/examples/rag_example.py index c739e87..5ccf052 100644 --- a/examples/rag_example.py +++ b/examples/rag_example.py @@ -1,17 +1,17 @@ """ -Example usage of different document loaders (llm_loader and PyMuPDF) for RAG applications. +Example usage of different document loaders (smart-llm-loader and PyMuPDF) for RAG applications. """ import os from dotenv import load_dotenv from langchain.text_splitter import RecursiveCharacterTextSplitter -from langchain_community.chat_models import ChatOpenAI from langchain_community.document_loaders import PyMuPDFLoader -from langchain_community.embeddings import OpenAIEmbeddings from langchain_core.output_parsers import StrOutputParser +from langchain_core.prompts import PromptTemplate from langchain_core.runnables import RunnablePassthrough +from langchain_openai import ChatOpenAI, OpenAIEmbeddings from langchain_community.vectorstores import FAISS -from llm_loader.document_loader import LLMLoader -from langchain_core.prompts import PromptTemplate + +from smart_llm_loader import SmartLLMLoader # Load environment variables load_dotenv() @@ -20,7 +20,7 @@ os.environ["OPENAI_API_KEY"] = "YOUR_OPENAI_API_KEY" # Gemini API key since we are using the gemini flash model -os.environ["GEMINI_API_KEY"] = "YOUR_GEMINI" +os.environ["GEMINI_API_KEY"] = "YOUR_GEMINI_API_KEY" def create_rag_chain(retriever, llm): @@ -48,11 +48,11 @@ def format_docs(docs): def process_with_llmloader(): - """Process documents using LLMLoader with Gemini Flash.""" + """Process documents using SmartLLMLoader with Gemini Flash.""" llm = ChatOpenAI(model="gpt-4o-mini") - # Initialize the loader from the llm_loader package - loader = LLMLoader( + # Initialize the loader from the smart-llm-loader package + loader = SmartLLMLoader( file_path="./data/test_ocr_doc.pdf", chunk_strategy="contextual", model="gemini/gemini-1.5-flash", diff --git a/pyproject.toml b/pyproject.toml index e7cc94d..2c8c589 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,12 +1,12 @@ [tool.poetry] -name = "llm-loader" +name = "smart-llm-loader" version = "0.1.0" description = "A powerful PDF processing toolkit that seamlessly integrates with LLMs for intelligent document chunking and RAG applications. Features smart context-aware segmentation, multi-LLM support, and optimized content extraction for enhanced RAG performance." authors = ["drmingler "] readme = "README.md" -packages = [{include = "llm_loader"}] +packages = [{include = "smart_llm_loader"}] license = "MIT" -repository = "https://github.com/drmingler/llm-loader" +repository = "https://github.com/drmingler/smart-llm-loader" keywords = ["pdf", "llm", "rag", "document-processing", "ai"] classifiers = [ "Development Status :: 4 - Beta", @@ -44,5 +44,5 @@ build-backend = "poetry.core.masonry.api" [tool.pytest.ini_options] testpaths = ["tests"] python_files = ["test_*.py"] -addopts = "-v --cov=llm_loader --cov-report=term-missing" +addopts = "-v --cov=smart_llm_loader --cov-report=term-missing" asyncio_mode = "auto" \ No newline at end of file diff --git a/llm_loader/__init__.py b/smart_llm_loader/__init__.py similarity index 97% rename from llm_loader/__init__.py rename to smart_llm_loader/__init__.py index 3688e2a..0f7ea2a 100644 --- a/llm_loader/__init__.py +++ b/smart_llm_loader/__init__.py @@ -38,6 +38,6 @@ def _check_poppler_installation(): _check_poppler_installation() # Import main package components -from .document_loader import LLMLoader +from .document_loader import SmartLLMLoader __version__ = "0.1.0" diff --git a/llm_loader/document_loader.py b/smart_llm_loader/document_loader.py similarity index 97% rename from llm_loader/document_loader.py rename to smart_llm_loader/document_loader.py index 06a96ab..9310063 100644 --- a/llm_loader/document_loader.py +++ b/smart_llm_loader/document_loader.py @@ -9,11 +9,11 @@ from langchain_core.documents import Document import requests -from llm_loader.llm import ImageProcessor, LLMProcessing -from llm_loader.utils import copy_file, save_output_file, is_pdf +from smart_llm_loader.llm import ImageProcessor, LLMProcessing +from smart_llm_loader.utils import copy_file, save_output_file, is_pdf -class LLMLoader(BaseLoader): +class SmartLLMLoader(BaseLoader): """A flexible document loader that supports multiple input types.""" def __init__( diff --git a/llm_loader/llm.py b/smart_llm_loader/llm.py similarity index 97% rename from llm_loader/llm.py rename to smart_llm_loader/llm.py index 3a1a7ad..478dccc 100644 --- a/llm_loader/llm.py +++ b/smart_llm_loader/llm.py @@ -10,9 +10,9 @@ from pdf2image import convert_from_path from litellm import completion, validate_environment, supports_vision, check_valid_key, acompletion -from llm_loader.prompts import DEFAULT_PAGE_CHUNK_PROMPT, DEFAULT_CHUNK_PROMPT -from llm_loader.schema import OCRResponse -from llm_loader.utils import save_output_file +from smart_llm_loader.prompts import DEFAULT_PAGE_CHUNK_PROMPT, DEFAULT_CHUNK_PROMPT +from smart_llm_loader.schema import OCRResponse +from smart_llm_loader.utils import save_output_file class ImageProcessor: diff --git a/llm_loader/prompts.py b/smart_llm_loader/prompts.py similarity index 100% rename from llm_loader/prompts.py rename to smart_llm_loader/prompts.py diff --git a/llm_loader/schema.py b/smart_llm_loader/schema.py similarity index 100% rename from llm_loader/schema.py rename to smart_llm_loader/schema.py diff --git a/llm_loader/utils.py b/smart_llm_loader/utils.py similarity index 100% rename from llm_loader/utils.py rename to smart_llm_loader/utils.py diff --git a/tests/test_document_loader.py b/tests/test_document_loader.py index e7e7bdf..20c6dba 100644 --- a/tests/test_document_loader.py +++ b/tests/test_document_loader.py @@ -4,15 +4,15 @@ from unittest.mock import Mock from langchain_core.documents import Document -from llm_loader.document_loader import LLMLoader +from smart_llm_loader.document_loader import SmartLLMLoader @pytest.fixture(autouse=True) def mock_llm_validation(mocker): """Mock LLM validation for all tests.""" - mocker.patch('llm_loader.llm.validate_environment', return_value={"keys_in_environment": True}) - mocker.patch('llm_loader.llm.supports_vision', return_value=True) - mocker.patch('llm_loader.llm.check_valid_key', return_value=True) + mocker.patch('smart_llm_loader.llm.validate_environment', return_value={"keys_in_environment": True}) + mocker.patch('smart_llm_loader.llm.supports_vision', return_value=True) + mocker.patch('smart_llm_loader.llm.check_valid_key', return_value=True) @pytest.fixture @@ -31,7 +31,7 @@ def mock_response(): def test_init_with_file_path(sample_pdf_path): - loader = LLMLoader(file_path=sample_pdf_path) + loader = SmartLLMLoader(file_path=sample_pdf_path) assert str(loader.file_path) == str(sample_pdf_path) assert loader.output_dir is None @@ -42,23 +42,23 @@ def test_init_with_url(mocker, mock_response): with tempfile.NamedTemporaryFile(suffix='.pdf') as temp_file: mocker.patch('tempfile.NamedTemporaryFile', return_value=temp_file) - loader = LLMLoader(url=url) + loader = SmartLLMLoader(url=url) assert isinstance(loader.file_path, Path) def test_init_with_both_file_and_url(sample_pdf_path): with pytest.raises(ValueError, match=r"Only one of file_path or url should be provided\."): - LLMLoader(file_path=sample_pdf_path, url="http://example.com/test.pdf") + SmartLLMLoader(file_path=sample_pdf_path, url="http://example.com/test.pdf") def test_init_with_neither_file_nor_url(): with pytest.raises(ValueError, match=r"Either file_path or url must be provided\."): - LLMLoader() + SmartLLMLoader() def test_load_from_path_with_output_dir(sample_pdf_path, tmp_path): output_dir = tmp_path / "output" - loader = LLMLoader(file_path=sample_pdf_path, save_output=True, output_dir=output_dir) + loader = SmartLLMLoader(file_path=sample_pdf_path, save_output=True, output_dir=output_dir) assert loader.output_dir == output_dir assert (output_dir / sample_pdf_path.name).exists() @@ -72,14 +72,14 @@ def test_load_from_url_invalid_content(mocker): mocker.patch('requests.get', return_value=mock_resp) with pytest.raises(ValueError, match=r"The URL does not point to a PDF file\."): - LLMLoader(url=url) + SmartLLMLoader(url=url) def test_load_method(mocker, sample_pdf_path): mock_documents = [Document(page_content="Test content")] - mocker.patch('llm_loader.llm.LLMProcessing.process_document_with_llm', return_value=mock_documents) + mocker.patch('smart_llm_loader.llm.LLMProcessing.process_document_with_llm', return_value=mock_documents) - loader = LLMLoader(file_path=sample_pdf_path) + loader = SmartLLMLoader(file_path=sample_pdf_path) documents = loader.load() assert len(documents) == 1 @@ -89,9 +89,9 @@ def test_load_method(mocker, sample_pdf_path): @pytest.mark.asyncio async def test_aload_method(mocker, sample_pdf_path): mock_documents = [Document(page_content="Test content")] - mocker.patch('llm_loader.llm.LLMProcessing.async_process_document_with_llm', return_value=mock_documents) + mocker.patch('smart_llm_loader.llm.LLMProcessing.async_process_document_with_llm', return_value=mock_documents) - loader = LLMLoader(file_path=sample_pdf_path) + loader = SmartLLMLoader(file_path=sample_pdf_path) documents = await loader.aload() assert len(documents) == 1 @@ -100,9 +100,9 @@ async def test_aload_method(mocker, sample_pdf_path): def test_load_and_split_method(mocker, sample_pdf_path): mock_documents = [Document(page_content="Test content")] - mocker.patch('llm_loader.llm.LLMProcessing.process_document_with_llm', return_value=mock_documents) + mocker.patch('smart_llm_loader.llm.LLMProcessing.process_document_with_llm', return_value=mock_documents) - loader = LLMLoader(file_path=sample_pdf_path, chunk_strategy="contextual") + loader = SmartLLMLoader(file_path=sample_pdf_path, chunk_strategy="contextual") documents = loader.load_and_split() assert len(documents) == 1 @@ -110,7 +110,7 @@ def test_load_and_split_method(mocker, sample_pdf_path): def test_create_document(sample_pdf_path): - loader = LLMLoader(file_path=sample_pdf_path) + loader = SmartLLMLoader(file_path=sample_pdf_path) chunk = {"content": "Test content", "theme": "Test theme"} page_num = 1 @@ -128,10 +128,10 @@ def test_lazy_load(mocker, sample_pdf_path): mock_images = [Mock()] mock_result = {"markdown_chunks": [{"content": "Test content", "theme": "Test theme"}]} - mocker.patch('llm_loader.llm.ImageProcessor.pdf_to_images', return_value=mock_images) - mocker.patch('llm_loader.llm.LLMProcessing.process_image_with_llm', return_value=mock_result) + mocker.patch('smart_llm_loader.llm.ImageProcessor.pdf_to_images', return_value=mock_images) + mocker.patch('smart_llm_loader.llm.LLMProcessing.process_image_with_llm', return_value=mock_result) - loader = LLMLoader(file_path=sample_pdf_path) + loader = SmartLLMLoader(file_path=sample_pdf_path) documents = list(loader.lazy_load()) assert len(documents) == 1 @@ -145,10 +145,10 @@ async def test_alazy_load(mocker, sample_pdf_path): mock_images = [Mock()] mock_result = {"markdown_chunks": [{"content": "Test content", "theme": "Test theme"}]} - mocker.patch('llm_loader.llm.ImageProcessor.pdf_to_images', return_value=mock_images) - mocker.patch('llm_loader.llm.LLMProcessing.async_process_image_with_llm', return_value=mock_result) + mocker.patch('smart_llm_loader.llm.ImageProcessor.pdf_to_images', return_value=mock_images) + mocker.patch('smart_llm_loader.llm.LLMProcessing.async_process_image_with_llm', return_value=mock_result) - loader = LLMLoader(file_path=sample_pdf_path) + loader = SmartLLMLoader(file_path=sample_pdf_path) documents = [doc async for doc in loader.alazy_load()] assert len(documents) == 1 diff --git a/tests/test_image_processor.py b/tests/test_image_processor.py index 79cfbbf..4edf658 100644 --- a/tests/test_image_processor.py +++ b/tests/test_image_processor.py @@ -3,7 +3,7 @@ import io import base64 -from llm_loader.llm import ImageProcessor +from smart_llm_loader.llm import ImageProcessor @pytest.fixture @@ -24,7 +24,7 @@ def sample_image(): def test_pdf_to_images(sample_pdf_path, mocker): # Mock pdf2image.convert_from_path mock_images = [Image.new('RGB', (100, 100)) for _ in range(2)] - mocker.patch('llm_loader.llm.convert_from_path', return_value=mock_images) + mocker.patch('smart_llm_loader.llm.convert_from_path', return_value=mock_images) images = ImageProcessor.pdf_to_images(sample_pdf_path) diff --git a/tests/test_llm_processing.py b/tests/test_llm_processing.py index eaa9f02..5d59014 100644 --- a/tests/test_llm_processing.py +++ b/tests/test_llm_processing.py @@ -3,16 +3,16 @@ from langchain_core.documents import Document from unittest.mock import Mock -from llm_loader.llm import LLMProcessing -from llm_loader.prompts import DEFAULT_PAGE_CHUNK_PROMPT, DEFAULT_CHUNK_PROMPT +from smart_llm_loader.llm import LLMProcessing +from smart_llm_loader.prompts import DEFAULT_PAGE_CHUNK_PROMPT, DEFAULT_CHUNK_PROMPT @pytest.fixture def llm_processor(mocker): # Mock all validation functions - mocker.patch('llm_loader.llm.validate_environment', return_value={"keys_in_environment": True}) - mocker.patch('llm_loader.llm.supports_vision', return_value=True) - mocker.patch('llm_loader.llm.check_valid_key', return_value=True) + mocker.patch('smart_llm_loader.llm.validate_environment', return_value={"keys_in_environment": True}) + mocker.patch('smart_llm_loader.llm.supports_vision', return_value=True) + mocker.patch('smart_llm_loader.llm.check_valid_key', return_value=True) return LLMProcessing(model="gemini/gemini-2.0-flash") @@ -23,24 +23,24 @@ def sample_image(): def test_validate_model_valid(mocker): # Mock the validation functions - mocker.patch('llm_loader.llm.validate_environment', return_value={"keys_in_environment": True}) - mocker.patch('llm_loader.llm.supports_vision', return_value=True) - mocker.patch('llm_loader.llm.check_valid_key', return_value=True) + mocker.patch('smart_llm_loader.llm.validate_environment', return_value={"keys_in_environment": True}) + mocker.patch('smart_llm_loader.llm.supports_vision', return_value=True) + mocker.patch('smart_llm_loader.llm.check_valid_key', return_value=True) # Should not raise any exceptions LLMProcessing(model="gemini/gemini-2.0-flash") def test_validate_model_missing_env_vars(mocker): - mocker.patch('llm_loader.llm.validate_environment', return_value={"keys_in_environment": False}) + mocker.patch('smart_llm_loader.llm.validate_environment', return_value={"keys_in_environment": False}) with pytest.raises(ValueError, match="Missing environment variables"): LLMProcessing(model="gemini/gemini-2.0-flash") def test_validate_model_unsupported_vision(mocker): - mocker.patch('llm_loader.llm.validate_environment', return_value={"keys_in_environment": True}) - mocker.patch('llm_loader.llm.supports_vision', return_value=False) + mocker.patch('smart_llm_loader.llm.validate_environment', return_value={"keys_in_environment": True}) + mocker.patch('smart_llm_loader.llm.supports_vision', return_value=False) with pytest.raises(ValueError, match="not a supported vision model"): LLMProcessing(model="unsupported-model") @@ -116,7 +116,7 @@ async def test_async_process_image_with_llm_success(llm_processor, sample_image, ) ) ] - mocker.patch('llm_loader.llm.acompletion', return_value=mock_response) + mocker.patch('smart_llm_loader.llm.acompletion', return_value=mock_response) result = await llm_processor.async_process_image_with_llm(sample_image, "Test prompt") @@ -127,7 +127,7 @@ async def test_async_process_image_with_llm_success(llm_processor, sample_image, @pytest.mark.asyncio async def test_async_process_image_with_llm_error(llm_processor, sample_image, mocker): - mocker.patch('llm_loader.llm.acompletion', side_effect=Exception("Test error")) + mocker.patch('smart_llm_loader.llm.acompletion', side_effect=Exception("Test error")) result = await llm_processor.async_process_image_with_llm(sample_image, "Test prompt")