Skip to contents

artcurator 0.1.0

Major Release - Unified AI Interface

This release consolidates artwork analysis functions from artgemini and artopenai into a single, provider-agnostic interface.

Artwork Analysis Functions - Now Implemented

  • Reimplemented all art_* functions with direct low-level API calls:

  • Provider abstraction - All functions support both Gemini and OpenAI:

    # Auto-detect (defaults to gemini)
    art_about_ai("artwork.png")
    
    # Explicit provider
    art_about_ai("artwork.png", provider = "gemini")
    art_about_ai("artwork.png", provider = "openai")
  • Centralized prompts - All prompts now in inst/prompts/ with version tracking

  • Unified schemas - JSON validation schemas in data-raw/schema-definitions.R

Implementation Details

Dependencies

  • Added to Imports: artcore (>= 1.4.0) - Shared utilities
  • Updated to Imports: artgemini (>= 0.2.0), artopenai (>= 0.10.0) - Low-level API exports
  • Removed from Imports: base64enc, magick - Now provided by artcore

Bug Fixes

  • Cache configuration - Fixed curator_cache_config() locked binding error:
    • Changed .cache_config from list to environment
    • Replaced <<- with direct environment assignment
    • Resolves “cannot change value of locked binding” error
  • Context compression - Fixed decompressAgentContext() lossless round-trip:
    • Restores artworks as character vector (not list) after JSON deserialization
    • Restores json class on JSON string fields
    • Test now strips from_cache attribute before comparison
  • httptest2 fixture recording - Fixed path_mocks() preventing fixture generation:
    • Removed fs::dir_create() that pre-created empty directories
    • httptest2 now correctly enters record mode when fixtures don’t exist

Tests

  • Updated httptest2 mocks to reference artcore package for b64EncodeImage() mocking
  • All artwork analysis tests updated to use artcurator implementations

Documentation

  • New vignette: quickstart.qmd - Comprehensive guide to artwork analysis functions
  • Updated vignette: artpipelines-integration.qmd - Migration guide from artopenai to artcurator
  • Updated vignette: advanced-ai-workflows.qmd - Fixed all gpt-4o → gpt-5.1 references
  • Updated: README.md, PLANS.md - Fixed model references

Migration from artgemini/artopenai

Consumers should migrate to artcurator functions. The art_* functions in artgemini/artopenai are now deprecated:

# Old (deprecated)
artgemini::art_style_ai(img)
artopenai::art_style_ai(img)

# New (recommended)
artcurator::art_style_ai(img, provider = "gemini")
artcurator::art_style_ai(img, provider = "openai")

See vignette("artpipelines-integration") for complete migration guide.