Python compatibility
This release requires Python 3.11 or later. Python 3.10 support has been removed. Supported and tested Python versions are 3.11 through 3.14.
Includes consolidated Python dependency updates and the bug fixes listed below.
What's Changed
- .Net: Remove migrated .NET Milvus connector by @adamsitnik in #14682
- .Net: Bump Aspire.Azure.Search.Documents from 13.4.6 to 13.5.4 by @dependabot[bot] in #14499
- .Net: Bump Aspire.Hosting.Azure.CognitiveServices from 13.4.6 to 13.5.4 by @dependabot[bot] in #14501
- .Net: [BREAKING] Consolidate file access by @westey-m in #14679
- Python: preserve path case in OpenAPI allowed URLs by @eavanvalkenburg in #14693
- Python: normalize OpenAPI allowlist paths before prefix match by @mangeshraut712 in #14668
- Python: Batch Google AI embedding requests to the 100-input limit by @pcbeingused333 in #14700
- Python: fix Mistral AI chat completion crash on unknown finish reasons (model_length) by @pcbeingused333 in #14696
- Python: fix(sql_server): validate collection field types before table creation by @BlueX888 in #14697
- Python: Fix Mistral AI seed setting being rejected by the SDK by @pcbeingused333 in #14677
- Python: keep empty tool results through the prompt round trip by @iamthehimansh in #14686
- Python: fix(sqlserver): handle None and boolean expressions in SqlServerCollection lambda parser by @wasim-builds in #14687
- Python: Respect optional MCP prompt arguments by @jaeminbird in #14676
- Python: count Gemini thinking tokens in the usage of Google AI completions by @pcbeingused333 in #14671
- Python: fix(python): preserve non-adjacent tool pairs during history truncation by @linhongyu510 in #14658
- Python: fix(python): wire ChatHistoryReducer into ChatCompletionAgent invocation (#12303) by @sparkysolutions10-pixel in #14607
- Python: Fix Handlebars messages helper ignoring its argument by @VANDRANKI in #14537
- Python: fix(python/redis): restore vector search broken by redisvl>=0.5 API change and KeyError on include_vectors=False by @PatrickRibbsaeter in #14278
- Python: Handle empty chat message function results by @lprnmns in #14375
- Python: Exclude ClassVar annotations from generated JSON schemas by @Pushpak731 in #14528
- Python: Propagate MCP initialization failures by @lxingy3 in #14095
- Python: Fix VolatileMemoryStore.get_nearest_matches on an empty collection by @VANDRANKI in #14536
- .Net: docs: fix 20 broken sample links in GettingStartedWithAgents README by @leom1919 in #14699
- .Net: docs: fix dead links after planner removal and MEVD code migration by @leom1919 in #14715
- Python: Drop 3.10 support and expand CI coverage through 3.14 by @eavanvalkenburg in #14708
- Python: Build an array schema for variadic tuple parameters by @anishmehta24 in #14692
- Python: docs(python): fix broken sample links in agents READMEs by @pratikgx in #14703
- Python: Send the NVIDIA nvext setting in extra_body by @codewithfourtix in #14698
- Python: Use storage_name for hybrid search fields and vector queries (#14684) by @Fire162 in #14688
- Python: close native generators when stream invocations end by @DiadkoShmek in #14701
- Python: Fix OracleCollection search with multiple filters by @VANDRANKI in #14541
- .Net: Bind validated HTTP addresses to connections by @rogerbarreto in #14719
- .Net: Harden structured data mutation boundaries by @rogerbarreto in #14718
- Python: Prepare 1.47.0 release and consolidate dependency updates by @eavanvalkenburg in #14720
New Contributors
- @mangeshraut712 made their first contribution in #14668
- @BlueX888 made their first contribution in #14697
- @iamthehimansh made their first contribution in #14686
- @jaeminbird made their first contribution in #14676
- @linhongyu510 made their first contribution in #14658
- @sparkysolutions10-pixel made their first contribution in #14607
- @PatrickRibbsaeter made their first contribution in #14278
- @lprnmns made their first contribution in #14375
- @Pushpak731 made their first contribution in #14528
- @lxingy3 made their first contribution in #14095
- @leom1919 made their first contribution in #14699
- @anishmehta24 made their first contribution in #14692
- @pratikgx made their first contribution in #14703
- @codewithfourtix made their first contribution in #14698
- @DiadkoShmek made their first contribution in #14701
Full Changelog: python-1.46.0...python-1.47.0