Files
IPSExtractor/docs/application/strategies.md
T

1.1 KiB

application/strategies.py

Propósito

Define la interfaz InvoiceExtractorStrategy y una implementación OllamaExtractor para realizar llamadas a un backend compatible con OpenAI/Ollama que procese imágenes + texto.

API pública

class InvoiceExtractorStrategy(ABC)

Interfaz para extraer datos a partir de páginas en base64 e instrucción de texto.

class OllamaExtractor(InvoiceExtractorStrategy)

Extractor que construye prompts multimodales y llama a chat.completions.create.

Métodos clave:

  • extract(images_b64: list[str], instruction: str) -> dict: devuelve al menos {"raw": ...} con el texto del modelo.
  • update_config(api_key=None, base_url=None, model=None): actualiza y recrea el cliente interno.

Consideraciones

  • Reintentos con tenacity usando la configuración de settings.retry.
  • Registro de métricas (tokens, tiempos) en application.api_calls y logs propios.

Ejemplo

from application.strategies import OllamaExtractor

ext = OllamaExtractor()
res = ext.extract([img_b64_1, img_b64_2], "Instrucción...")
text = res["raw"]