Skip to main content

Azure Cosmos DB

Globally distributed, multi-model database with vector search capabilities.

Setup

# For MongoDB API
pip install pymongo

# For SQL API
pip install azure-cosmos

Quick Start (Agent with Knowledge)

Use Azure Cosmos DB as a knowledge store with an agent:
from praisonaiagents import Agent
import os

agent = Agent(
    name="Assistant",
    instructions="You are a helpful assistant with access to documents.",
    knowledge=["./docs/guide.pdf"],
    knowledge_config={
        "vector_store": "cosmosdb",
        "connection_string": os.getenv("COSMOS_CONNECTION_STRING"),
        "database": "praisonai",
        "collection": "vectors",
        "api_mode": "mongodb"
    }
)

agent.chat("What does the guide say?")

Advanced Usage (Direct Store)

from praisonai.persistence.factory import create_knowledge_store

store = create_knowledge_store(
    "cosmosdb",
    connection_string="mongodb+srv://...",
    database="praisonai",
    collection="vectors",
    api_mode="mongodb"
)

SQL API

store = create_knowledge_store(
    "cosmosdb",
    connection_string="AccountEndpoint=...",
    database="praisonai",
    collection="vectors",
    api_mode="sql"
)

Environment Variables

export COSMOS_CONNECTION_STRING="mongodb+srv://..."

Configuration

OptionDescription
connection_stringAzure Cosmos DB connection string
databaseDatabase name
collectionCollection/container name
api_modemongodb or sql
index_nameVector index name
embedding_dimEmbedding dimension (default: 1536)

Vector Search Setup

For MongoDB API, create a vector search index:
db.runCommand({
  createIndexes: "vectors",
  indexes: [{
    name: "vector_index",
    key: { embedding: "cosmosSearch" },
    cosmosSearchOptions: {
      kind: "vector-ivf",
      numLists: 100,
      similarity: "cosine",
      dimensions: 1536
    }
  }]
})

Best For

  • Global distribution requirements
  • Multi-region deployments
  • Azure ecosystem integration