n8n-nodes-google-gemini-embeddings-extended
Version:
n8n community sub-node for Google Gemini Embeddings with extended features like output dimensions support
207 lines (146 loc) • 6.63 kB
Markdown
# n8n-nodes-google-gemini-embeddings-extended
This is an n8n community sub-node that provides Google Gemini Embeddings with extended features, including support for output dimensions, task types, and special handling for models like `gemini-embedding-001`.
## Features
- Support for any Google Gemini embedding model (specify by name)
- **Output dimensions configuration** (for supported models)
- **Task type specification** for optimized embeddings
- **Title support** for retrieval documents
- **Batch size control** for rate limit management
- **Special handling for gemini-embedding-001** (single input per request)
- Uses standard Google API credentials (same as other Google AI nodes)
- Works as a sub-node with vector stores and other AI nodes
## Installation
### Community Node (Recommended)
1. In n8n, go to **Settings** > **Community Nodes**
2. Search for `n8n-nodes-google-gemini-embeddings-extended`
3. Click **Install**
### Manual Installation
```bash
npm install n8n-nodes-google-gemini-embeddings-extended
```
## Setup
### Prerequisites
1. A Google AI Studio account
2. A Gemini API key
### Authentication
This node uses the standard Google PaLM/Gemini API credentials:
1. Get your API key from [Google AI Studio](https://aistudio.google.com/app/apikey)
2. In n8n, create **Google PaLM API** credentials
3. Enter your API key
## Usage
This is a **sub-node** that provides embeddings functionality to other n8n AI nodes.
### Using with Vector Stores
1. Add a vector store node to your workflow (e.g., Pinecone, Qdrant, Supabase Vector Store)
2. Connect the **Embeddings Google Gemini Extended** node to the embeddings input of the vector store
3. Configure your Google PaLM API credentials
4. Enter your model name (e.g., `text-embedding-004`, `gemini-embedding-001`)
5. Configure additional options as needed
6. The vector store will use these embeddings to process your documents
### Example Workflow
```
[Document Loader] → [Vector Store] ← [Embeddings Google Gemini Extended]
↓
[AI Agent/Chain]
```
### Configuration Options
#### Model Name
Enter any valid Google Gemini embedding model name. Examples:
- `text-embedding-004` (Latest, supports output dimensions)
- `gemini-embedding-001` (Supports output dimensions, processes one input at a time)
- `embedding-001` (Legacy model)
#### Output Dimensions
For models that support it, you can specify the number of output dimensions:
- Set to `0` to use the model's default dimensions
- Set to a specific number (e.g., `256`, `768`, `3072`) to get embeddings of that size
#### Task Types
Optimize your embeddings by specifying the task type:
- **Retrieval Document**: For document storage in retrieval systems
- **Retrieval Query**: For search queries
- **Semantic Similarity**: For comparing text similarity
- **Classification**: For text classification tasks
- **Clustering**: For grouping similar texts
- **Question Answering**: For Q&A systems
- **Fact Verification**: For fact-checking applications
- **Code Retrieval Query**: For code search
#### Additional Options
- **Title**: Add a title to documents (only for RETRIEVAL_DOCUMENT task type)
- **Strip New Lines**: Remove line breaks from input text (enabled by default)
- **Batch Size**: Control how many texts are processed at once (default: 100)
## Use Cases
- **Semantic Search**: Generate embeddings for documents and queries in vector stores
- **RAG Applications**: Build retrieval-augmented generation systems
- **Document Similarity**: Find similar documents in your vector database
- **Multi-language Support**: Use models that support multiple languages
- **Code Search**: Use CODE_RETRIEVAL_QUERY for searching code repositories
## Model-Specific Notes
### gemini-embedding-001
This model has special requirements:
- Only accepts **one text input per request**
- The node automatically handles this limitation
- Processing may be slower for large datasets
- Supports output dimensions up to 3072
### text-embedding-004
- Supports batch processing
- Default dimensions: 768
- Good balance of performance and quality
## Differences from Official n8n Node
This community node extends the official Google Gemini Embeddings node with:
1. **Output Dimensions Support**: Configure the size of embedding vectors
2. **Extended Task Types**: More task type options for optimization
3. **Title Support**: Add titles to documents for better retrieval
4. **Batch Size Control**: Manage rate limits effectively
5. **Better Error Messages**: More detailed error information
## Compatible Nodes
This embeddings node can be used with:
- Simple Vector Store
- Pinecone Vector Store
- Qdrant Vector Store
- Supabase Vector Store
- PGVector Vector Store
- Milvus Vector Store
- MongoDB Atlas Vector Store
- Zep Vector Store
- Question and Answer Chain
- AI Agent nodes
## Troubleshooting
### Common Issues
1. **Authentication Errors**
- Ensure your Google PaLM API key is valid
- Check that the API is enabled in your Google Cloud project
- Verify you have sufficient quota
2. **Model Errors**
- Verify the model name is spelled correctly
- Check [Google's documentation](https://ai.google.dev/gemini-api/docs/models/gemini#text-embedding) for valid model names
3. **Rate Limit Errors**
- Reduce the batch size in options
- Add delays between requests if processing large datasets
4. **Dimension Errors**
- Not all models support custom dimensions
- Check model documentation for supported dimension values
5. **Bad Request Errors**
- `gemini-embedding-001` only accepts one input at a time (handled automatically)
- Ensure text inputs are within token limits
## Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
## License
MIT
## Support
For issues and feature requests, please use the [GitHub issue tracker](https://github.com/danblah/n8n-nodes-google-gemini-embeddings-extended/issues).
## Changelog
### 0.1.2
- Version bump for republishing to ensure package visibility
### 0.1.1
- Updated all dependencies to latest versions
- Fixed TypeScript compatibility issues
- Updated ESLint configuration for ESLint 9.x
- Updated `@langchain/google-genai` from 0.0.23 to 0.2.10
- Updated `n8n-workflow` peer dependency to match current version (1.82.0)
- Improved build stability and security
### 0.1.0
- Initial release
- Support for Google Gemini embeddings via API
- Output dimensions configuration
- Task type selection with extended options
- Title support for documents
- Batch size control
- Special handling for gemini-embedding-001