Changelog¶
All notable changes to smelt-ai.
v0.1.1 — 2025-02-18¶
Added¶
job.test()andjob.atest()methods for single-row validation before full runs- PyPI metadata: readme, authors, keywords, classifiers, project URLs
- Documentation URL in PyPI package metadata
Fixed¶
- Empty
datalist now raisesSmeltConfigErrorintest()/atest()instead of silently succeeding
v0.1.0 — 2025-02-18¶
Added¶
- Initial release
Modelclass wrapping LangChain'sinit_chat_modelwith lazy initialization and cachingJobclass withrun(),arun()for sync/async execution- Automatic batching with configurable
batch_size - Concurrent batch processing via
asyncio.Semaphorewith configurableconcurrency - Row ID tracking for guaranteed output ordering
- Automatic retry with exponential backoff and jitter
SmeltResult[T]with typed data, errors, and metricsSmeltMetricswith token counts, timing, retry countsBatchErrorwith per-batch diagnostic informationstop_on_exhaustionparameter for fail-fast vs collect-errors modesshuffleparameter for randomizing batch composition- Exception hierarchy:
SmeltError,SmeltConfigError,SmeltValidationError,SmeltAPIError,SmeltExhaustionError - Support for OpenAI, Anthropic, and Google Gemini providers
- Dynamic Pydantic model creation (inherits user validators)
- Pydantic v2 native validation