v0.1.10
The0.1.10 release was primarily focused on expanding async support for QdrantIndex, PostgresIndex, and HybridRouter, alongside many synchronization and testing improvements.
Feature: Expanded Async Support
- QdrantIndex: Async methods have been brought inline with our other indexes, ensuring consistent behavior.
 - PostgresIndex: Async methods have been added to the 
PostgresIndexfor improved performance in async environments. - HybridRouter: Async support for the 
HybridRouteris now aligned with theSemanticRouter, providing a more consistent experience. 
Fixes and Optimizations
- LocalIndex Bug Fix: Added a 
metadataattribute to the local index. This fixes a bug whereLocalIndexembeddings would always be recomputed, as reported in issue #585. - Various other bug fixes and optimizations have been included in this release.
 - The 
urllib3library has been upgraded. - Test compatibility and synchronization have been optimized.
 
v0.1.9
The0.1.9 update focuses on improving support for our local deployment options. We have standardized the PostgresIndex to bring it in line with other index options and prepare it for future feature releases. For local extras (inclusing transformers and llama_cpp support) and postgres extras we have resolved issues making those extras unusable with Python 3.13.
Continue reading below for more detail.
Feature: Improvements to postgres Support
- Upgrade from psycopg2 to v3 (psycopg): We’ve upgraded our PostgreSQL driver from psycopg2 to the newer psycopg v3, which provides better performance and modern Python compatibility.
 - 
Standardization of sync methods: The 
PostgresIndexclass now has standardized synchronous methods that integrate seamlessly into our standard pytest test suite, ensuring better testing coverage and reliability. - 
Addition of IndexType support: We’ve introduced 
IndexTypewhich includesFLAT,IVFFLAT, andHNSWindex types. BothFLATandIVFFLATmap to theIVFFLATindex in pgvector (pgvector does not currently supportFLATand soIVFFLATis the closest approximation - but our other indexes do).FLATis now the default index type. We recommendHNSWfor high-scale use cases with many millions of utterances due to its higher memory requirements and complexity. 
Feature: Configurable Logging
- Environment variable log level control: Logger now supports configurable log levels via environment variables. Set 
SEMANTIC_ROUTER_LOG_LEVELorLOG_LEVELto control logging verbosity (e.g.,DEBUG,INFO,WARNING,ERROR). Defaults toINFOif not specified. 
Fix: Local Installation for Python 3.13 and up
Python 3.13 and up had originally been incompatible with our local installations due to the lack of compatability with PyTorch and the (then) new version of Python. We have now added the following version support forlocal libraries:
Fix: Consistent Index Length Behavior
- Standardized 
__len__method across all index implementations: All index types now consistently return0when uninitialized, preventing potentialAttributeErrorexceptions that could occur inPineconeIndexandQdrantIndexwhen checking the length of uninitialized indexes. 
Chore: Broader and More Useful Tests
We have broken our tests apart into strict unit and integration test directories. Now, when incoming PRs are raised we will no longer trigger integration tests that require API keys to successfully run. To ensure we’re still covering all components of the library we have broadened our testing suite to extensively testLocalIndex, PineconeIndex (via Pinecone Local), PostgresIndex, and QdrantIndex within those unit tests.
