Documentation ¶
Overview ¶
Package vectorstores contains the implementation of VectorStore, an interface for saving and querying documents as vector embeddings.
The main components of this package are:
- VectorStore interface: a common interface for saving and querying vector embeddings of documents. - Options: a set of options for similarity search and document addition. - Retriever: a retriever for vector stores that implements the schema.Retriever interface.
The package provides a flexible way to handle different types of vector stores by using the VectorStore interface as an abstraction. It supports customization of the search and storage operation via the Options mechanism.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Option ¶
type Option func(*Options)
Option is a function that configures an Options.
func WithDeduplicater ¶ added in v0.1.4
WithDeduplicater returns an Option for setting the deduplicater that could be used when adding documents. This is useful to prevent wasting time on creating an embedding when one already exists.
func WithEmbedder ¶
func WithEmbedder(embedder embeddings.Embedder) Option
WithEmbedder returns an Option for setting the embedder that could be used when adding documents or doing similarity search (instead the embedder from the Store context) this is useful when we are using multiple LLMs with single vectorstore.
func WithFilters ¶
WithFilters searches can be limited based on metadata filters. Searches with metadata filters retrieve exactly the number of nearest-neighbors results that match the filters. In most cases the search latency will be lower than unfiltered searches See https://docs.pinecone.io/docs/metadata-filtering
func WithNameSpace ¶
WithNameSpace returns an Option for setting the name space.
func WithScoreThreshold ¶
type Options ¶
type Options struct { NameSpace string ScoreThreshold float32 Filters any Embedder embeddings.Embedder Deduplicater func(context.Context, schema.Document) bool }
Options is a set of options for similarity search and add documents.
type Retriever ¶
type Retriever struct { CallbacksHandler callbacks.Handler // contains filtered or unexported fields }
Retriever is a retriever for vector stores.
func ToRetriever ¶
func ToRetriever(vectorStore VectorStore, numDocuments int, options ...Option) Retriever
ToRetriever takes a vector store and returns a retriever using the vector store to retrieve documents.
type VectorStore ¶
type VectorStore interface { AddDocuments(ctx context.Context, docs []schema.Document, options ...Option) ([]string, error) SimilaritySearch(ctx context.Context, query string, numDocuments int, options ...Option) ([]schema.Document, error) //nolint:lll }
VectorStore is the interface for saving and querying documents in the form of vector embeddings.
Directories ¶
Path | Synopsis |
---|---|
Package azureaisearch contains an implementation of the VectorStore interface that connects to Azure AI search.
|
Package azureaisearch contains an implementation of the VectorStore interface that connects to Azure AI search. |
Package chroma contains an implementation of the VectorStore interface that connects to an external Chroma database.
|
Package chroma contains an implementation of the VectorStore interface that connects to an external Chroma database. |
Package opensearch contains an implementation of the VectorStore interface that connects to Opensearch.
|
Package opensearch contains an implementation of the VectorStore interface that connects to Opensearch. |
Package pgvector contains an implementation of the VectorStore interface using pgvector.
|
Package pgvector contains an implementation of the VectorStore interface using pgvector. |
Package pinecone contains an implementation of the VectorStore interface using pinecone.
|
Package pinecone contains an implementation of the VectorStore interface using pinecone. |
Package qdrant contains an implementation of the VectorStore interface using Qdrant.
|
Package qdrant contains an implementation of the VectorStore interface using Qdrant. |
Package redisvector contains an implementation of the VectorStore interface using redisvector.
|
Package redisvector contains an implementation of the VectorStore interface using redisvector. |
Package weaviate contains an implementation of the VectorStore interface using weaviate.
|
Package weaviate contains an implementation of the VectorStore interface using weaviate. |