README.md•2.44 kB
# Cloud SQL for PostgreSQL plugin for Genkit
## Installing the plugin
```bash
npm i --save genkitx-cloud-sql-pg
```
## Using the plugin
### Initialize the Postgres engine
```ts
import { PostgresEngine } from '@genkit-ai/cloud-sql-pg';
// Initialize the engine
const engine = await PostgresEngine.fromInstance(
'your-project-id',
'your-region',
'your-instance-name',
'your-database-name',
{
user: 'your-username',
password: 'your-password',
}
);
```
### Indexer usage
```ts
import { genkit } from 'genkit';
import {
postgres,
postgresRetrieverRef,
postgresIndexerRef,
} from '@genkit-ai/cloud-sql-pg';
import { Document } from 'genkit/retriever';
const ai = genkit({
plugins: [
postgres([
{
tableName: 'my-documents',
engine: engine,
embedder: textEmbedding004,
schemaName: 'public',
contentColumn: 'content',
embeddingColumn: 'embedding',
idColumn: 'custom_id',
metadataColumns: ['source', 'category'],
ignoreMetadataColumns: ['created_at', 'updated_at'],
metadataJsonColumn: 'metadata',
},
]),
],
});
// To index documents:
export const myDocumentsIndexer = postgresIndexerRef({
tableName: 'my-documents',
});
// Example of indexing documents with different options
const documents = [
new Document({
content: [{ text: 'This is a test document' }],
metadata: { source: 'test', category: 'example' },
}),
new Document({
content: [{ text: 'Another test document' }],
metadata: { source: 'test', category: 'example' },
}),
];
// Index with default options
await ai.index({
indexer: myDocumentsIndexer,
documents,
});
// Index with custom batch size
await ai.index({
indexer: myDocumentsIndexer,
documents,
options: { batchSize: 10 },
});
// Index with custom ID from metadata
const docWithCustomId = new Document({
content: [{ text: 'Document with custom ID' }],
metadata: {
source: 'test',
customId: 'custom-123', // This will be used as the document ID
},
});
await ai.index({
indexer: myDocumentsIndexer,
documents: [docWithCustomId],
});
```
The sources for this package are in the main [Genkit](https://github.com/firebase/genkit) repo. Please file issues and pull requests against that repo.
Usage information and reference details can be found in [Genkit documentation](https://genkit.dev/docs/plugins/cloud-sql-pg/).
License: Apache 2.0