TileDB는 밀집 및 희소 다차원 배열을 인덱싱하고 쿼리하기 위한 강력한 엔진입니다.
TileDB는 TileDB-Vector-Search 모듈을 사용하여 ANN 검색 기능을 제공합니다. 로컬 디스크와 클라우드 객체 스토리지(예: AWS S3) 모두에서 ANN 쿼리의 서버리스 실행과 벡터 인덱스 저장을 제공합니다.
자세한 내용은 다음을 참조하세요: 이 노트북은 TileDB 벡터 데이터베이스를 사용하는 방법을 보여줍니다.
pip install -qU  tiledb-vector-search langchain-community

기본 예제

from langchain_community.document_loaders import TextLoader
from langchain_community.vectorstores import TileDB
from langchain_huggingface import HuggingFaceEmbeddings
from langchain_text_splitters import CharacterTextSplitter

raw_documents = TextLoader("../../how_to/state_of_the_union.txt").load()
text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=0)
documents = text_splitter.split_documents(raw_documents)
model_name = "sentence-transformers/all-mpnet-base-v2"
embeddings = HuggingFaceEmbeddings(model_name=model_name)
db = TileDB.from_documents(
    documents, embeddings, index_uri="/tmp/tiledb_index", index_type="FLAT"
)
query = "What did the president say about Ketanji Brown Jackson"
docs = db.similarity_search(query)
docs[0].page_content

벡터로 유사도 검색

embedding_vector = embeddings.embed_query(query)
docs = db.similarity_search_by_vector(embedding_vector)
docs[0].page_content

점수와 함께 유사도 검색

docs_and_scores = db.similarity_search_with_score(query)
docs_and_scores[0]

Maximal Marginal Relevance Search (MMR)

retriever 객체에서 유사도 검색을 사용하는 것 외에도 retriever로 mmr을 사용할 수 있습니다.
retriever = db.as_retriever(search_type="mmr")
retriever.invoke(query)
또는 max_marginal_relevance_search를 직접 사용할 수 있습니다:
db.max_marginal_relevance_search(query, k=2, fetch_k=10)

Connect these docs programmatically to Claude, VSCode, and more via MCP for real-time answers.
I