Skip to content

Latest commit

 

History

History
97 lines (80 loc) · 3.54 KB

azure_ai_search.mdx

File metadata and controls

97 lines (80 loc) · 3.54 KB

Azure AI Search

Azure AI Search (formerly known as "Azure Cognitive Search") provides secure information retrieval at scale over user-owned content in traditional and generative AI search applications.

Usage

import os
from mem0 import Memory

os.environ["OPENAI_API_KEY"] = "sk-xx"   # This key is used for embedding purpose

config = {
    "vector_store": {
        "provider": "azure_ai_search",
        "config": {
            "service_name": "ai-search-test",
            "api_key": "*****",
            "collection_name": "mem0", 
            "embedding_model_dims": 1536
        }
    }
}

m = Memory.from_config(config)
messages = [
    {"role": "user", "content": "I'm planning to watch a movie tonight. Any recommendations?"},
    {"role": "assistant", "content": "How about a thriller movies? They can be quite engaging."},
    {"role": "user", "content": "I'm not a big fan of thriller movies but I love sci-fi movies."},
    {"role": "assistant", "content": "Got it! I'll avoid thriller recommendations and suggest sci-fi movies in the future."}
]
m.add(messages, user_id="alice", metadata={"category": "movies"})

Using binary compression for large vector collections

config = {
    "vector_store": {
        "provider": "azure_ai_search",
        "config": {
            "service_name": "ai-search-test",
            "api_key": "*****",
            "collection_name": "mem0", 
            "embedding_model_dims": 1536,
            "compression_type": "binary",
            "use_float16": True  # Use half precision for storage efficiency
        }
    }
}

Using hybrid search

config = {
    "vector_store": {
        "provider": "azure_ai_search",
        "config": {
            "service_name": "ai-search-test",
            "api_key": "*****",
            "collection_name": "mem0", 
            "embedding_model_dims": 1536,
            "hybrid_search": True,
            "vector_filter_mode": "postFilter"
        }
    }
}

Configuration Parameters

Parameter Description Default Value Options
service_name Azure AI Search service name Required -
api_key API key of the Azure AI Search service Required -
collection_name The name of the collection/index to store vectors mem0 Any valid index name
embedding_model_dims Dimensions of the embedding model 1536 Any integer value
compression_type Type of vector compression to use none none, scalar, binary
use_float16 Store vectors in half precision (Edm.Half) False True, False
vector_filter_mode Vector filter mode to use preFilter postFilter, preFilter
hybrid_search Use hybrid search False True, False

Notes on Configuration Options

  • compression_type:

    • none: No compression, uses full vector precision
    • scalar: Scalar quantization with reasonable balance of speed and accuracy
    • binary: Binary quantization for maximum compression with some accuracy trade-off
  • vector_filter_mode:

    • preFilter: Applies filters before vector search (faster)
    • postFilter: Applies filters after vector search (may provide better relevance)
  • use_float16: Using half precision (float16) reduces storage requirements but may slightly impact accuracy. Useful for very large vector collections.

  • Filterable Fields: The implementation automatically extracts user_id, run_id, and agent_id fields from payloads for filtering.