https://github.com/qdrant/qdrant-genkit
https://github.com/qdrant/qdrant-genkit
Last synced: about 2 months ago
JSON representation
- Host: GitHub
- URL: https://github.com/qdrant/qdrant-genkit
- Owner: qdrant
- License: apache-2.0
- Created: 2024-06-10T06:25:28.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2024-12-30T05:27:44.000Z (10 months ago)
- Last Synced: 2025-01-03T10:41:09.211Z (10 months ago)
- Language: TypeScript
- Size: 28.3 KB
- Stars: 5
- Watchers: 1
- Forks: 1
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-genkit - `genkitx-qdrant` - Plugin for Qdrant Vector Stores. (Plugins / JavaScript - Community)
- trackawesomelist - `genkitx-qdrant` - Plugin for Qdrant Vector Stores. (Recently Updated / [Sep 15, 2024](/content/2024/09/15/README.md))
README
# Qdrant plugin
The Qdrant plugin provides [Genkit](https://firebase.google.com/docs/genkit) indexer and retriever implementations in JS and Go that use the [Qdrant](https://qdrant.tech/).
## Installation
```bash
npm i genkitx-qdrant
```
## Configuration
To use this plugin, specify it when you call `configureGenkit()`:
```js
import { qdrant } from 'genkitx-qdrant';
const ai = genkit({
plugins: [
qdrant([
{
embedder: googleAI.embedder('text-embedding-004'),
collectionName: 'collectionName',
clientParams: {
url: 'http://localhost:6333',
}
}
]),
],
});
```
You'll need to specify a collection name, the embedding model you want to use and the Qdrant client parameters. In
addition, there are a few optional parameters:
- `embedderOptions`: Additional options to pass options to the embedder:
```js
embedderOptions: { taskType: 'RETRIEVAL_DOCUMENT' },
```
- `contentPayloadKey`: Name of the payload filed with the document content. Defaults to "content".
```js
contentPayloadKey: 'content';
```
- `metadataPayloadKey`: Name of the payload filed with the document metadata. Defaults to "metadata".
```js
metadataPayloadKey: 'metadata';
```
- `dataTypePayloadKey`: Name of the payload filed with the document datatype. Defaults to "_content_type".
```js
dataTypePayloadKey: '_datatype';
```
- `collectionCreateOptions`: [Additional options](<(https://qdrant.tech/documentation/concepts/collections/#create-a-collection)>) when creating the Qdrant collection.
## Usage
Import retriever and indexer references like so:
```js
import { qdrantIndexerRef, qdrantRetrieverRef } from 'genkitx-qdrant';
```
Then, pass their references to `retrieve()` and `index()`:
```js
// To export an indexer reference:
export const qdrantIndexer = qdrantIndexerRef('collectionName', 'displayName');
```
```js
// To export a retriever reference:
export const qdrantRetriever = qdrantRetrieverRef('collectionName', 'displayName');
```
You can refer to [Retrieval-augmented generation](https://firebase.google.com/docs/genkit/rag) for a general
discussion on indexers and retrievers.