genkitx-milvus
is a community plugin for using Milvus Vector Database with
Firebase Genkit. Built by The Fire Company. 🔥
Install the plugin in your project with your favorite package manager:
npm install genkitx-milvus
yarn add genkitx-milvus
pnpm add genkitx-milvus
To use this plugin, specify it when you initialize Genkit:
import { genkit } from 'genkit';
import { milvus } from 'genkitx-milvus';
export default genkit({
plugins: [
milvus([
{
collectionName: 'collection_01',
embedder: textEmbeddingGecko,
},
]),
],
// ...
});
You must specify a Milvus collection and the embedding model you want to use. In addition, there are three optional parameters:
-
dbName
: Specified database -
clientParams
: If you're not running your Milvus server on the same machine as your Genkit flow, you need to specify auth options, or you're otherwise not running a default Milvus server configuration, you can specify Milvus client connection parameters: address and token.clientParams: { address: "", token: "", }
-
embedderOptions
: Use this parameter to pass options to the embedder:embedderOptions: { taskType: 'RETRIEVAL_DOCUMENT' },
Import retriever and indexer references like so:
import { milvusRetrieverRef, milvusIndexerRef } from 'genkitx-milvus';
Then, use the references with ai.retrieve()
and ai.index()
:
// To use the index you configured when you loaded the plugin:
let docs = await ai.retrieve({ retriever: milvusRetrieverRef, query });
// To specify an index:
export const customRetriever = milvusRetrieverRef({
collectionName: 'collection_01',
});
docs = await ai.retrieve({ retriever: customRetriever, query });
// To use the index you configured when you loaded the plugin:
await ai.index({ indexer: milvusIndexerRef, documents });
// To specify an index:
export const customIndexer = milvusIndexerRef({
collectionName: 'collection_01',
});
await ai.index({ indexer: customIndexer, documents });
Want to contribute to the project? That's awesome! Head over to our Contribution Guidelines.
Note
This repository depends on Google's Firebase Genkit. For issues and questions related to Genkit, please refer to instructions available in Genkit's repository.
Reach out by opening a discussion on Github Discussions.
This plugin is proudly maintained by the team at The Fire Company. 🔥
This project is licensed under the Apache 2.0 License.