Releases: mozilla-ai/any-llm
Release list
1.19.0
What's Changed
- feat: add Requesty provider by @Thibaultjaigu in #1145
- feat: add Cascadia provider for distributed on-prem Intel AI PC inference by @t8 in #1147
New Contributors
- @Thibaultjaigu made their first contribution in #1145
- @t8 made their first contribution in #1147
Full Changelog: 1.18.0...1.19.0
1.18.0
What's Changed
- fix(ollama): pass tools as top-level arg in streaming completions by @jonigl in #1114
- feat(otari): adopt otari SDK 0.1.0 (async client, drop OpenAI passthrough) by @njbrake in #1116
- test: suppress spurious "Event loop is closed" asyncio teardown noise by @njbrake in #1119
- fix(otari): preserve cache_control via native /messages pass-through by @njbrake in #1121
- fix(otari): max_completion_tokens + response_format, and wire otari e2e into the matrix by @njbrake in #1127
- fix(otari): unwrap union responses via to_dict (tool_calls + non-streaming messages) by @njbrake in #1129
- test(otari): re-enable reasoning e2e tests with gpt-oss-120b (blocked on otari SDK release) by @njbrake in #1131
- feat: remove deprecated gateway provider by @njbrake in #1122
- fix(responses): strict schema + alias-safe round-trip for dataclass structured output by @njbrake in #1132
- feat(messages): support structured output via output_format by @njbrake in #1133
- feat(messages): accept raw output_config dict for non-Pydantic structured output by @avalyset in #1134
- fix(openai): forward embedding dimensions to the client exactly once by @rolandgvc in #1136
- fix: repair the chronically-red integration test suite (provider bugs + drift) by @njbrake in #1140
- feat(otari): image+audio via otari 0.2.0, web search/MCP e2e, run otari in CI by @njbrake in #1139
New Contributors
- @jonigl made their first contribution in #1114
- @rolandgvc made their first contribution in #1136
Full Changelog: 1.17.0...1.18.0
1.17.0
What's Changed
- feat(responses): support structured outputs via response_format by @damyantilev in #1103
- Feat: Added New Provider Neosantara by @ErRickow in #1104
- fix(types): serialize Reasoning as a plain string for OpenAI wire compatibility by @tbille in #1112
- fix(anthropic): map xhigh to Anthropic xhigh and expose max effort by @tbille in #1108
- fix: use word-boundary-aware patterns to prevent auth error misclassification by @dashitongzhi in #1070
- feat(lmstudio): use native lmstudio-python SDK by @tbille in #1099
New Contributors
Full Changelog: 1.16.0...1.17.0
1.16.0
What's Changed
- fix: resolve gateway credentials and SambaNova embedding integration test failures by @tbille in #1076
- feat(gemini): add batch completion support for Vertex AI and Gemini by @tbille in #1078
- feat(bedrock): add batch completion support by @tbille in #1077
- feat(cohere): support embeddings and image inputs by @tbille in #1079
- docs: improve exception discoverability with common scenarios table by @tbille in #1082
- docs: redirect GitHub Pages docs to docs.mozilla.ai by @angpt in #1080
- feat!: remove platform provider by @tbille in #1088
- fix(openrouter): normalize list_models response to valid Model schema by @tbille in #1085
- feat(otari): migrate gateway provider to otari sdk by @tbille in #1089
- Browser use cookbook by @angpt in #1090
- feat(azure): add Entra ID auth and update Foundry documentation by @tbille in #1087
- feat(provider): Add GitHub Models provider by @tbille in #1086
- pre-commit autoupdate by @github-actions[bot] in #1096
- revert: pre-commit autoupdate (#1096) by @tbille in #1098
- fix(docs): stop gitbook publish from ignoring cookbook pages by @angpt in #1093
- chore(deps): bump actions/upload-artifact from 4 to 7 by @dependabot[bot] in #1097
- feat(cohere): map reasoning_effort to thinking token_budget by @tbille in #1092
- feat(together): support list_models by @tbille in #1091
- fix(gemini): route JSON Schema with $defs/$ref through parameters_json_schema by @avalyset in #1095
- fix(bedrock): coerce empty tool description to non-empty string by @avalyset in #1102
New Contributors
Full Changelog: 1.15.0...1.16.0
1.15.0
What's Changed
- docs: add better instructions for running lint and pre-commit by @AroonKumarr in #1068
- feat: add image generation API support by @tbille in #1035
- fix: rename auth header from X-AnyLLM-Key to AnyLLM-Key by @tbille in #1044
- pre-commit autoupdate by @github-actions[bot] in #1059
- fix: use non-empty placeholder API key for local providers by @tbille in #1072
- feat: add audio transcription and speech API support by @tbille in #1036
- feat(moderation): add moderation/amoderation support for OpenAI and Mistral by @tbille in #1045
- fix(anthropic): rename
stoptostop_sequencesin request params by @agpituk in #1069 - fix: use NullHandler instead of setup_logger at import time by @dashitongzhi in #1071
- docs: remove bundled gateway section from README, point to mozilla-ai/gateway by @tbille in #1056
- feat(rerank): add rerank API support with Cohere and Gateway providers by @tbille in #1046
- chore: remove gateway server code by @tbille in #1075
New Contributors
- @AroonKumarr made their first contribution in #1068
- @dashitongzhi made their first contribution in #1071
Full Changelog: 1.14.0...1.15.0
1.14.0
What's Changed
- docs(readme): add LiteLLM migration callout by @njbrake in #960
- feat(docs): restore cookbooks with build-time notebook conversion by @njbrake in #963
- feat(bedrock): support custom boto3 client via client_args by @njbrake in #962
- fix(docs): show sidebar navigation on landing page by @njbrake in #964
- chore(deps): bump astro from 5.18.0 to 5.18.1 in /docs by @dependabot[bot] in #967
- chore(deps): bump picomatch in /docs by @dependabot[bot] in #966
- chore(deps): bump smol-toml from 1.6.0 to 1.6.1 in /docs by @dependabot[bot] in #965
- fix(gateway): inject stream_options for streaming usage tracking by @njbrake in #974
- fix(gateway): add Cache-Control headers to prevent cross-user identity leak by @njbrake in #975
- fix(sambanova): replace deprecated reasoning model with DeepSeek-R1-0528 by @njbrake in #977
- feature(gemini): inline media by @liukidar in #972
- refactor(gateway): simplify internals with layered architecture by @tbille in #980
- chore: add supply chain attack guards for uv and npm by @njbrake in #990
- chore(deps-dev): update pytest-cov requirement from <7,>=6.2.1 to >=6.2.1,<8 by @dependabot[bot] in #989
- chore(deps): bump actions/setup-node from 4 to 6 by @dependabot[bot] in #986
- chore(deps): bump docker/build-push-action from 6 to 7 by @dependabot[bot] in #984
- chore(deps): bump docker/metadata-action from 5 to 6 by @dependabot[bot] in #985
- chore(deps): bump docker/setup-qemu-action from 3 to 4 by @dependabot[bot] in #987
- chore(deps): bump docker/login-action from 3 to 4 by @dependabot[bot] in #988
- chore(deps): bump defu from 6.1.4 to 6.1.6 in /docs by @dependabot[bot] in #993
- feature(gemini): dict response format by @liukidar in #969
- fix: resolve mypy indexing error in gemini test and document mypy guidelines by @njbrake in #1005
- fix(xai): support OpenAI dict response_format for structured output by @tmchow in #1002
- pre-commit autoupdate by @github-actions[bot] in #983
- chore(deps): bump vite from 6.4.1 to 6.4.2 in /docs by @dependabot[bot] in #1008
- fix(docs): remove stale committed provider table by @njbrake in #1010
- feat: raise exceptions on finish_reason='length' or 'content_filter' for ParsedChatCompletion by @njbrake in #1011
- fix(ci): remove llama from expected integration test providers by @njbrake in #1012
- fix(cohere): handle parallel tool calls in streaming and non-streaming paths by @njbrake in #1013
- fix(anthropic): parallel tool streaming by @liukidar in #970
- fix(mistral): update imports for mistralai v2 SDK by @njbrake in #1020
- fix(cohere): allow parallel tool messages in message validation by @njbrake in #1022
- fix(mistral): handle Optional choice.message from v2 SDK by @peteski22 in #1031
- feat(provider): Add Aliyun (DashScope) provider by @Xibao-Lv in #1026
- Feat/gitbook docs by @angpt in #1032
- feat(gateway): add platform mode for user-token authentication by @tbille in #1015
- feat(batch): add Anthropic batch support, retrieve_batch_results, Gateway overrides, and graduate from experimental by @tbille in #1041
- fix(providers): handle tools with None parameters by @njbrake in #1047
- feat(provider): Add DeepInfra provider by @damyantilev in #1040
- Feat/gitbook docs by @angpt in #1050
- Merge main to remove openapi spec failure by @angpt in #1051
- chore: add deprecation notices for bundled gateway (removal on May 18, 2026) by @tbille in #1034
- fix(docs): use GitBook hint syntax for gateway deprecation warnings by @angpt in #1057
- feat: add Qiniu provider support by @JackChiang233 in #1058
- chore(deps-dev): bump pre-commit from 4.5.1 to 4.6.0 by @dependabot[bot] in #1065
- chore(deps): bump peter-evans/create-pull-request from 8.0.0 to 8.1.1 by @dependabot[bot] in #1060
- chore(deps): bump actions/github-script from 8 to 9 by @dependabot[bot] in #1064
- chore(deps): bump codecov/codecov-action from 5 to 6 by @dependabot[bot] in #1061
- chore(deps): bump docker/setup-buildx-action from 3 to 4 by @dependabot[bot] in #1063
- chore(deps): bump actions/upload-artifact from 4 to 7 by @dependabot[bot] in #1062
- fix(tests): replace deprecated Nebius and SambaNova integration models by @njbrake in #1066
New Contributors
- @liukidar made their first contribution in #972
- @tmchow made their first contribution in #1002
- @Xibao-Lv made their first contribution in #1026
- @damyantilev made their first contribution in #1040
- @JackChiang233 made their first contribution in #1058
Full Changelog: 1.13.0...1.14.0
1.13.0
Summary
As of 1.13.0, the anthropic sdk now ships as a required dependency, similar to how openai sdk is a required dependency. The two packages share nearly identical dependency trees so this should have minimal impact on your package sizes: the big benefit is that now the messages API of any-llm uses re-exported anthropic types, meaning that you'll now be able to easily leverage anthropic message api capabilities like prompt caching. Enjoy!
What's Changed
- refactor(gateway): extract duplicated patterns into shared helpers by @njbrake in #954
- feat(gateway): add Prometheus metrics endpoint by @njbrake in #955
- chore(deps): bump h3 from 1.15.5 to 1.15.8 in /docs by @dependabot[bot] in #956
- feat(messages): re-export Anthropic SDK types and enable prompt caching by @njbrake in #958
- chore(deps): bump h3 from 1.15.8 to 1.15.9 in /docs by @dependabot[bot] in #957
Full Changelog: 1.12.1...1.13.0
1.12.1
1.12.0
Update Summary
Some fun updates with this one! First off, our docs now are hosted in any-llm.ai: https://any-llm.ai/docs/sdk/providers. We're working on getting that page fully synced up with the docs in this repo (the sync is mostly fixed). Next up, lots of cleanup on the gateway to improve security and add support for models and embeddings endpoints! And last but certainly not least, some good improvements being made to the any-llm-platform integration to give solid options for easy token tracking without needing to ship your actual data through us. Enjoy and as always, let us know in Github or elsewhere with your thoughts. 🙏
What's Changed
- feat(docs): searchable provider card grid with detail modals by @njbrake in #911
- fix(gateway): fix missing exception interpolation in _is_model_free logging by @njbrake in #924
- chore(deps): bump devalue from 5.6.3 to 5.6.4 in /docs by @dependabot[bot] in #912
- refactor(gateway): extract from_model classmethods for response models by @njbrake in #925
- feat(provider): add azureanthropic provider for Claude on Microsoft Foundry by @njbrake in #923
- refactor(gateway): use model_dump(exclude_unset=True) in messages route by @njbrake in #926
- perf(gateway): add compound index on usage_logs(user_id, timestamp) by @njbrake in #927
- fix(gateway): pass consistent timestamp through budget reset by @njbrake in #928
- fix(gateway): use consistent logger in budget.py by @njbrake in #929
- refactor(gateway): extract shared streaming generator utility by @njbrake in #930
- refactor(gateway): extract shared pricing lookup helper by @njbrake in #931
- fix(gateway): support inline env var substitution in YAML config by @njbrake in #932
- fix(gateway): eliminate unnecessary nested transaction in log_usage by @njbrake in #933
- feat(gateway): add GET /v1/models endpoint for OpenAI compatibility by @njbrake in #943
- fix(gateway): improve transaction safety and data integrity by @njbrake in #942
- feat(gateway): add POST /v1/embeddings endpoint by @njbrake in #944
- fix(platform): add OTEL usage tracing to Responses API path by @dpoulopoulos in #949
- fix(gemini): normalize non-object tool responses by @PsiACE in #947
- fix(platform): prevent trace export failures from crashing consumers by @njbrake in #946
New Contributors
Full Changelog: 1.11.0...1.11.1
1.11.0
What's Changed
- chore(docs): add Messages API to provider compatibility matrix by @njbrake in #898
- feat(docs): migrate from MkDocs Material to Astro Starlight by @njbrake in #900
- fix(docs): correct publish_dir for Astro Starlight deploy by @njbrake in #904
- feat(platform): export OTLP traces by @tbille in #870
- fix(platform): stop forwarding client_args to httpx.AsyncClient by @peteski22 in #906
- docs(readme): add any-llm platform links by @tbille in #907
- fix(gemini): route timeout kwarg to HttpOptions for Google providers by @peteski22 in #903
- fix(platform): export OTEL trace on cancelled streaming requests by @dpoulopoulos in #909
Full Changelog: 1.10.0...1.11.0