Genkit AI framework plugin for Cloud SQL for PostgreSQL.
npm install genkitx-cloud-sql-pg``bash`
npm i --save genkitx-cloud-sql-pg
`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',
}
);
`
`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 repo. Please file issues and pull requests against that repo.
Usage information and reference details can be found in Genkit documentation.
License: Apache 2.0