⚡️ What is FastEmbed?
FastEmbed is a lightweight, fast, Python library built for embedding generation. We support popular text models. Please open a Github issue if you want us to add a new model.
-
Light & Fast
- Quantized model weights
- ONNX Runtime for inference
-
Accuracy/Recall
- Better than OpenAI Ada-002
- Default is Flag Embedding, which has shown good results on the MTEB leaderboard
- List of supported models - including multilingual models
Here is an example for Retrieval Embedding Generation and how to use FastEmbed with Qdrant.
🚀 Installation
To install the FastEmbed library, pip works:
pip install fastembed
📖 Usage
from fastembed import TextEmbedding
documents: list[str] = [
"passage: Hello, World!",
"query: Hello, World!",
"passage: This is an example passage.",
"fastembed is supported by and maintained by Qdrant."
]
embedding_model = TextEmbedding()
embeddings: list[np.ndarray] = embedding_model.embed(documents)
Usage with Qdrant
Installation with Qdrant Client in Python:
pip install qdrant-client[fastembed]
Might have to use pip install 'qdrant-client[fastembed]'
on zsh.
from qdrant_client import QdrantClient
# Initialize the client
client = QdrantClient(":memory:") # Using an in-process Qdrant
# Prepare your documents, metadata, and IDs
docs = ["Qdrant has Langchain integrations", "Qdrant also has Llama Index integrations"]
metadata = [
{"source": "Langchain-docs"},
{"source": "Llama-index-docs"},
]
ids = [42, 2]
client.add(
collection_name="demo_collection",
documents=docs,
metadata=metadata,
ids=ids
)
search_result = client.query(
collection_name="demo_collection",
query_text="This is a query document"
)
print(search_result)