Dieser Beitrag wurde automatisch übersetzt. Zur Originalversion hier klicken.
langchain-azure-cosmosdb (pip install langchain-azure-cosmosdb) ist ein neues Python-Paket, das LangChain und LangGraph mit Azure Cosmos DB for NoSQL verbindet und die üblichen 5+ separaten Dienste für Vektorspeicher, Caching, Verlauf und Gedächtnis durch eine einzige Datenbank ersetzt.
Sechs Integrationen in einem Paket
Das Paket enthält sechs Integrationsklassen (jeweils mit synchronen und asynchronen Varianten):
- AzureCosmosDBNoSqlVectorSearch — Vektor-, Volltext- (BM25), Hybrid- (Vektor+Text mit RRF) und gewichtete Hybridsuche
- AzureCosmosDBNoSqlSemanticCache — LLM-Antworten cachen, um Latenz und Kosten bei wiederholten Abfragen zu senken
- CosmosDBChatMessageHistory — Gesprächsverlauf mit TTL-Unterstützung persistieren
- CosmosDBSaverSync / CosmosDBSaver — LangGraph-Checkpointer: persistiert den Graphzustand pro thread_id über Aufrufe hinweg
- CosmosDBCacheSync / CosmosDBCache — LangGraph-Knoten-Level-Ergebnis-Caching
- CosmosDBStore / AsyncCosmosDBStore — Langzeitgedächtnis mit Namensraum-Organisation und semantischer Suche
Sowohl Zugriffsschlüssel- als auch Managed Identity (Entra ID)-Authentifizierung werden für alle Integrationen unterstützt.
Vektor- und Hybridsuche
Azure Cosmos DB for NoSQL unterstützt DiskANN- und Quantized Flat-Vektorindizes, die von Tausenden bis zu Milliarden von Vektoren skalieren — dieselbe Datenbank, die ChatGPT-Gesprächsverläufe und -erinnerungen bei OpenAI antreibt. Einrichtung der Hybridsuche:
vectorstore = AzureCosmosDBNoSqlVectorSearch(
cosmos_client=...,
embedding=AzureOpenAIEmbeddings(...),
...
)
results = vectorstore.similarity_search(
"distributed database",
k=5,
search_type="hybrid",
full_text_rank_filter=[{"search_field": "text", "search_text": "distributed"}]
)
LangGraph-Multi-Turn-Agenten mit Cosmos-Checkpointing
Der CosmosDBSaverSync-Checkpointer persistiert den LangGraph-Graphzustand, sodass Agenten den Kontext über separate Aufrufe hinweg behalten — kein In-Memory-Zustand erforderlich:
checkpointer = CosmosDBSaverSync(
database_name="agents-db",
container_name="checkpoints",
endpoint="..."
)
app = graph.compile(checkpointer=checkpointer)
# Turn 1
app.invoke(
{"messages": [("user", "Hi, I'm Alice!")]},
config={"configurable": {"thread_id": "user-123"}}
)
# Turn 2 — Zustand aus Turn 1 persistiert
app.invoke(
{"messages": [("user", "What's my name?")]},
config={"configurable": {"thread_id": "user-123"}}
)
# Gibt zurück: "Your name is Alice!"
Eine Datenbank statt fünf
Alles in Cosmos DB for NoSQL zu konsolidieren bedeutet eine Verbindung, einen Satz Anmeldeinformationen, einen Skalierungsregler und einen Ort zum Nachschauen, wenn etwas schiefläuft. Das Paket ist auf PyPI verfügbar und der Quellcode befindet sich bei langchain-ai/langchain-azure auf GitHub.
Vollständige Details bei devblogs.microsoft.com.
