A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from https://python.langchain.com/docs/integrations/vectorstores/mariadb below:

MariaDB | 🦜️🔗 LangChain

MariaDB

LangChain's MariaDB integration (langchain-mariadb) provides vector capabilities for working with MariaDB version 11.7.1 and above, distributed under the MIT license. Users can use the provided implementations as-is or customize them for specific needs. Key features include:

Setup

Launch a MariaDB Docker container with:

!docker run --name mariadb-container -e MARIADB_ROOT_PASSWORD=langchain -e MARIADB_DATABASE=langchain -p 3306:3306 -d mariadb:11.7
Installing the Package

The package uses SQLAlchemy but works best with the MariaDB connector, which requires C/C++ components:


!sudo apt install libmariadb3 libmariadb-dev


!sudo yum install MariaDB-shared MariaDB-devel


!pip install -U mariadb

Then install langchain-mariadb package

pip install -U langchain-mariadb

VectorStore works along with an LLM model, here using langchain-openai as example.

pip install langchain-openai
export OPENAI_API_KEY=...

Initialization
from langchain_core.documents import Document
from langchain_mariadb import MariaDBStore
from langchain_openai import OpenAIEmbeddings


url = f"mariadb+mariadbconnector://myuser:mypassword@localhost/langchain"


vectorstore = MariaDBStore(
embeddings=OpenAIEmbeddings(),
embedding_length=1536,
datasource=url,
collection_name="my_docs",
)
Manage vector store Adding Data

You can add data as documents with metadata:

docs = [
Document(
page_content="there are cats in the pond",
metadata={"id": 1, "location": "pond", "topic": "animals"},
),
Document(
page_content="ducks are also found in the pond",
metadata={"id": 2, "location": "pond", "topic": "animals"},
),

]
vectorstore.add_documents(docs)

Or as plain text with optional metadata:

texts = [
"a sculpture exhibit is also at the museum",
"a new coffee shop opened on Main Street",
]
metadatas = [
{"id": 6, "location": "museum", "topic": "art"},
{"id": 7, "location": "Main Street", "topic": "food"},
]

vectorstore.add_texts(texts=texts, metadatas=metadatas)
Query vector store

results = vectorstore.similarity_search("Hello", k=2)


results = vectorstore.similarity_search("Hello", filter={"category": "greeting"})
Filter Options

The system supports various filtering operations on metadata:

Example:


results = vectorstore.similarity_search(
"kitty", k=10, filter={"id": {"$in": [1, 5, 2, 9]}}
)


results = vectorstore.similarity_search(
"ducks",
k=10,
filter={"id": {"$in": [1, 5, 2, 9]}, "location": {"$in": ["pond", "market"]}},
)
Usage for retrieval-augmented generation

TODO: document example

API reference

See the repo here for more detail.


RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4