Repository navigation
RedisVL 0.31.0 adds Python 3.15 support, makes async paths that wrap a sync Redis client behave like a native async client, and changes how HybridQuery treats zero-valued combination parameters. Read the behaviour change below before upgrading if you set linear_alpha, rrf_constant or rrf_window to 0.
Highlights
Python 3.15 support
RedisVL now supports Python 3.15, and every extra installs on it except where an upstream package's own Python bounds block it: voyageai on 3.15, and sql-redis on 3.14 and later. The mcp extra now requires beartype>=0.23.1. (#768, @vishal-bala)
Sync clients converted to async keep their configuration
SemanticCache, AsyncSearchIndex and the other async paths that accept a sync client now carry over more of that client's setup when they convert it:
- TLS clients (
Redis(ssl=True, ...)), unix-socket clients and customSSLConnectionsubclasses now work. (#792, @Yarmoluk) - The client's retry policy is preserved, so the async client reconnects after a dropped connection. (#817, @Yarmoluk)
Sentinel-managed clients, RedisCluster clients and clients with a sync-only setting such as OCSP validation now raise ValueError at conversion time, pointing you to redis_url. Previously they failed with TypeError on the first command.
Behaviour change: zero-valued hybrid parameters are honoured
HybridQuery previously dropped linear_alpha=0 and rrf_constant=0; it now sends them, so affected queries rank differently. The same applies to the MCP server's search.params.linear_text_weight: 0 and rrf_constant: 0 on native hybrid search. rrf_window=0 now returns a server error instead of being ignored. (#819, @hyeonsang010716)
Other fixes
CohereTextVectorizer.aembedandaembed_manynow make non-blocking calls through Cohere's async client. If you pass your ownhttpx_client, also passasync_httpx_clientto keep async calls non-blocking. (#785, @Yarmoluk)- Normalised COSINE scores from
VectorQuery,VectorRangeQuery,AggregateHybridQueryandMultiVectorQuerystay within[0, 1]when floating-point rounding produces a slightly negative distance. (#823, @limjoobin) - Existing SVS-VAMANA indexes created without compression now load. (#790, @itsrayeedscodespace)
Dependencies
- The
fastmcpfloor is raised to the oldest release that works with the MCP server. (#807, @vishal-bala) - Dependabot alerts in
uv.lockare cleared and dev tooling moves to pytest 9. (#799, #813, @dependabot, @vishal-bala)
Contributors
Thanks to @Yarmoluk, @hyeonsang010716, @limjoobin and @itsrayeedscodespace for their contributions to this release, including first contributions from @hyeonsang010716 and @itsrayeedscodespace.
Full changelog: v0.30.0...v0.31.0