LangChain Milvus Integration

0.3.3 · active · verified Tue Apr 14

langchain-milvus is an integration package that connects Milvus, a powerful open-source vector database, with LangChain, a framework for building applications with large language models (LLMs). It enables efficient vector storage and retrieval for AI applications like semantic search and RAG. The library is actively maintained with frequent updates, typically releasing minor versions with new features and potentially breaking changes, and patch versions for bug fixes and improvements.

Warnings

Install

Imports

Quickstart

This quickstart demonstrates how to initialize the Milvus vector store, add documents with an embedding function (OpenAI Embeddings), and perform a similarity search. It uses Milvus Lite for local file-based storage.

import os
from langchain_milvus import Milvus
from langchain_openai import OpenAIEmbeddings
from langchain_core.documents import Document

# Ensure OPENAI_API_KEY is set in your environment
# Replace 'YOUR_OPENAI_API_KEY' with your actual key if not using env vars.
os.environ["OPENAI_API_KEY"] = os.environ.get("OPENAI_API_KEY", "sk-...")

# Initialize embeddings
embeddings = OpenAIEmbeddings()

# Connect to Milvus Lite (local file) or a Milvus server.
# For Milvus Lite, use a local file path as the URI. E.g., "./milvus_example.db"
# For a Milvus server, use its URI, e.g., "http://localhost:19530"
MILVUS_URI = "./milvus_example.db"

# Create a Milvus vector store
vector_store = Milvus(
    embedding_function=embeddings,
    collection_name="my_langchain_documents",
    connection_args={"uri": MILVUS_URI},
    auto_id=True # Milvus 2.2.0 or later supports auto-generated IDs
)

# Add documents
documents = [
    Document(page_content="The quick brown fox jumps over the lazy dog.", metadata={"source": "lorem"}),
    Document(page_content="Milvus is an open-source vector database designed for AI applications.", metadata={"source": "milvus_docs"}),
    Document(page_content="LangChain is a framework for developing applications with LLMs.", metadata={"source": "langchain_docs"}),
]
vector_store.add_documents(documents)

# Perform a similarity search
query = "What is LangChain used for?"
results = vector_store.similarity_search(query, k=1)

print("Similarity search results:")
for doc in results:
    print(f"- Content: {doc.page_content[:60]}... Metadata: {doc.metadata}")

view raw JSON →