{ "cells": [ { "cell_type": "markdown", "id": "900fbd04-f6aa-4813-868f-1c54e3265385", "metadata": {}, "source": [ "# FastEmbed by Qdrant\n", "\n", ">[FastEmbed](https://qdrant.github.io/fastembed/) from [Qdrant](https://qdrant.tech) is a lightweight, fast, Python library built for embedding generation. \n", ">\n", ">- Quantized model weights\n", ">- ONNX Runtime, no PyTorch dependency\n", ">- CPU-first design\n", ">- Data-parallelism for encoding of large datasets." ] }, { "attachments": {}, "cell_type": "markdown", "id": "2a773d8d", "metadata": {}, "source": [ "## Dependencies\n", "\n", "To use FastEmbed with LangChain, install the `fastembed` Python package." ] }, { "cell_type": "code", "execution_count": null, "id": "91ea14ce-831d-409a-a88f-30353acdabd1", "metadata": { "tags": [] }, "outputs": [], "source": [ "%pip install --upgrade --quiet fastembed" ] }, { "attachments": {}, "cell_type": "markdown", "id": "426f1156", "metadata": {}, "source": [ "## Imports" ] }, { "cell_type": "code", "execution_count": 2, "id": "3f5dc9d7-65e3-4b5b-9086-3327d016cfe0", "metadata": { "tags": [] }, "outputs": [], "source": [ "from langchain_community.embeddings.fastembed import FastEmbedEmbeddings" ] }, { "cell_type": "markdown", "id": "8c77b0bb-2613-4167-a204-14d424b59105", "metadata": {}, "source": [ "## Instantiating FastEmbed\n", " \n", "### Parameters\n", "- `model_name: str` (default: \"BAAI/bge-small-en-v1.5\")\n", " > Name of the FastEmbedding model to use. You can find the list of supported models [here](https://qdrant.github.io/fastembed/examples/Supported_Models/).\n", "\n", "- `max_length: int` (default: 512)\n", " > The maximum number of tokens. Unknown behavior for values > 512.\n", "\n", "- `cache_dir: Optional[str]`\n", " > The path to the cache directory. Defaults to `local_cache` in the parent directory.\n", "\n", "- `threads: Optional[int]`\n", " > The number of threads a single onnxruntime session can use. Defaults to None.\n", "\n", "- `doc_embed_type: Literal[\"default\", \"passage\"]` (default: \"default\")\n", " > \"default\": Uses FastEmbed's default embedding method.\n", " \n", " > \"passage\": Prefixes the text with \"passage\" before embedding." ] }, { "cell_type": "code", "execution_count": null, "id": "6fb585dd", "metadata": { "tags": [] }, "outputs": [], "source": [ "embeddings = FastEmbedEmbeddings()" ] }, { "cell_type": "markdown", "id": "119fbaad-9442-4fff-8214-c5f597bc8e77", "metadata": {}, "source": [ "## Usage\n", "\n", "### Generating document embeddings" ] }, { "cell_type": "code", "execution_count": null, "id": "62920051-cbd2-460d-ba24-0424c1ed395d", "metadata": {}, "outputs": [], "source": [ "document_embeddings = embeddings.embed_documents(\n", " [\"This is a document\", \"This is some other document\"]\n", ")" ] }, { "cell_type": "markdown", "id": "7fd10d96-baee-468f-a532-b70b16b78d1f", "metadata": {}, "source": [ "### Generating query embeddings" ] }, { "cell_type": "code", "execution_count": null, "id": "9f793bb6-609a-4a4a-a5c7-8e8597228915", "metadata": {}, "outputs": [], "source": [ "query_embeddings = embeddings.embed_query(\"This is a query\")" ] } ], "metadata": { "kernelspec": { "display_name": "Python 3 (ipykernel)", "language": "python", "name": "python3" }, "language_info": { "codemirror_mode": { "name": "ipython", "version": 3 }, "file_extension": ".py", "mimetype": "text/x-python", "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", "version": "3.10.12" } }, "nbformat": 4, "nbformat_minor": 5 }