Crate ai_transform

Source
Expand description

Procedural macro for AI-powered data transformations between JSON-serializable types.

Transforms data from one JSON-serializable type to another using OpenAI’s language models. The idea is to enable semantic understanding when that is useful and easier than writing deterministic parser by hand.

Important: This crate requires ai_transform_runtime to run properly.

[dependencies]
ai-transform = "0.1.0"
ai-transform-runtime = "0.1.0"  # Required!

§How It Works

  1. Macro Expansion: Generates ai_transform_runtime::transform::<S, T>(value)
  2. Serialization: Converts source value to JSON
  3. Schema Generation: Creates example JSON for both types using Default
  4. AI Request: Sends transformation prompt to OpenAI with context
  5. Response Processing: Extracts and validates JSON from AI response
  6. Deserialization: Converts result to target type

§Considerations

  • Each call makes an HTTP request to OpenAI’s API
  • Consider caching for repeated transformations
  • Response time: ~1-5 seconds depending on complexity

§Configuration

Environment variables:

  • OPENAI_API_KEY: Your API key (required)
  • OPENAI_MODEL: Model to use (default: "gpt-4o")
  • OPENAI_BASE_URL: API endpoint (default: OpenAI’s URL)

See transform! for usage info.

Macros§

transform
AI-powered data transformation macro.