mirror of
https://github.com/hwchase17/langchain
synced 2024-11-11 19:11:02 +00:00
6e9a8b188f
## Description This pull-request extends the existing vector search strategies of MongoDBAtlasVectorSearch to include Hybrid (Reciprocal Rank Fusion) and Full-text via new Retrievers. There is a small breaking change in the form of the `prefilter` kwarg to search. For this, and because we have now added a great deal of features, including programmatic Index creation/deletion since 0.1.0, we plan to bump the version to 0.2.0. ### Checklist * Unit tests have been extended * formatting has been applied * One mypy error remains which will either go away in CI or be simplified. --------- Signed-off-by: Casey Clements <casey.clements@mongodb.com> Co-authored-by: Erick Friis <erick@langchain.dev>
40 lines
1.3 KiB
Markdown
40 lines
1.3 KiB
Markdown
# langchain-mongodb
|
|
|
|
# Installation
|
|
```
|
|
pip install -U langchain-mongodb
|
|
```
|
|
|
|
# Usage
|
|
- See [Getting Started with the LangChain Integration](https://www.mongodb.com/docs/atlas/atlas-vector-search/ai-integrations/langchain/#get-started-with-the-langchain-integration) for a walkthrough on using your first LangChain implementation with MongoDB Atlas.
|
|
|
|
## Using MongoDBAtlasVectorSearch
|
|
```python
|
|
from langchain_mongodb import MongoDBAtlasVectorSearch
|
|
|
|
# Pull MongoDB Atlas URI from environment variables
|
|
MONGODB_ATLAS_CLUSTER_URI = os.environ.get("MONGODB_ATLAS_CLUSTER_URI")
|
|
|
|
DB_NAME = "langchain_db"
|
|
COLLECTION_NAME = "test"
|
|
ATLAS_VECTOR_SEARCH_INDEX_NAME = "index_name"
|
|
MONGODB_COLLECTION = client[DB_NAME][COLLECTION_NAME]
|
|
|
|
# Create the vector search via `from_connection_string`
|
|
vector_search = MongoDBAtlasVectorSearch.from_connection_string(
|
|
MONGODB_ATLAS_CLUSTER_URI,
|
|
DB_NAME + "." + COLLECTION_NAME,
|
|
OpenAIEmbeddings(disallowed_special=()),
|
|
index_name=ATLAS_VECTOR_SEARCH_INDEX_NAME,
|
|
)
|
|
|
|
# Initialize MongoDB python client
|
|
client = MongoClient(MONGODB_ATLAS_CLUSTER_URI)
|
|
# Create the vector search via instantiation
|
|
vector_search_2 = MongoDBAtlasVectorSearch(
|
|
collection=MONGODB_COLLECTION,
|
|
embeddings=OpenAIEmbeddings(disallowed_special=()),
|
|
index_name=ATLAS_VECTOR_SEARCH_INDEX_NAME,
|
|
)
|
|
```
|