genkitx-cloud-sql-pg
Version:
Genkit AI framework plugin for Cloud SQL for PostgreSQL.
142 lines (138 loc) • 5.63 kB
TypeScript
import * as _genkit_ai_ai_retriever from '@genkit-ai/ai/retriever';
import { z, Genkit } from 'genkit';
import { EmbedderArgument } from 'genkit/embedder';
import { GenkitPlugin } from 'genkit/plugin';
import { PostgresEngine } from './engine.js';
export { Column } from './engine.js';
import { DistanceStrategy, QueryOptions } from './indexes.js';
export { ExactNearestNeighbor, HNSWIndex, HNSWQueryOptions, IVFFlatIndex, IVFFlatQueryOptions } from './indexes.js';
import '@google-cloud/cloud-sql-connector';
import 'knex';
/**
* postgresRetrieverRef function creates a retriever for Postgres.
* @param params The params for the new Postgres retriever
* @param params.tableName The table name for the postgres retriever
If not specified, the default label will be `Postgres - <tableName>`
* @returns A reference to a Postgres retriever.
*/
declare const postgresRetrieverRef: (params: {
tableName: string;
}) => _genkit_ai_ai_retriever.RetrieverReference<z.ZodObject<{} & {
k: z.ZodNumber;
filter: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
k: number;
filter?: string | undefined;
}, {
k: number;
filter?: string | undefined;
}>>;
/**
* postgresIndexerRef function creates an indexer for Postgres.
* @param params The params for the new Postgres indexer.
* @param params.tableName The table name for the Postgres indexer.
If not specified, the default label will be `Postgres - <tableName>`
* @returns A reference to a Postgres indexer.
*/
declare const postgresIndexerRef: (params: {
tableName: string;
}) => _genkit_ai_ai_retriever.IndexerReference<z.ZodOptional<z.ZodObject<{
batchSize: z.ZodDefault<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
batchSize: number;
}, {
batchSize?: number | undefined;
}>>>;
/**
* Postgres plugin that provides a Postgres retriever and indexer
* @param params An array of params to set up Postgres retrievers and indexers
* @param params.tableName The name of the table
* @param params.embedder The embedder to use for the indexer and retriever
* @param params.embedderOptions Options to customize the embedder
* @returns The Postgres Genkit plugin
*/
declare function postgres<EmbedderCustomOptions extends z.ZodTypeAny>(params: {
tableName: string;
embedder: EmbedderArgument<EmbedderCustomOptions>;
embedderOptions?: z.infer<EmbedderCustomOptions>;
engine: PostgresEngine;
schemaName?: string;
contentColumn?: string;
embeddingColumn?: string;
metadataColumns?: string[];
ignoreMetadataColumns?: string[];
idColumn?: string;
metadataJsonColumn?: string;
distanceStrategy?: DistanceStrategy;
indexQueryOptions?: QueryOptions;
}[]): GenkitPlugin;
/**
* Configures a Postgres retriever.
* @param ai A Genkit instance
* @param params The params for the retriever
* @param params.tableName The name of the table
* @param params.embedder The embedder to use for the retriever
* @param params.embedderOptions Options to customize the embedder
* @returns A Postgres retriever
*/
declare function configurePostgresRetriever<EmbedderCustomOptions extends z.ZodTypeAny>(ai: Genkit, params: {
tableName: string;
embedder: EmbedderArgument<EmbedderCustomOptions>;
embedderOptions?: z.infer<EmbedderCustomOptions>;
engine: PostgresEngine;
schemaName?: string;
contentColumn?: string;
embeddingColumn?: string;
metadataColumns?: string[];
ignoreMetadataColumns?: string[];
idColumn?: string;
metadataJsonColumn?: string;
distanceStrategy?: DistanceStrategy;
indexQueryOptions?: QueryOptions;
}): Promise<_genkit_ai_ai_retriever.RetrieverAction<z.ZodObject<{} & {
k: z.ZodNumber;
filter: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
k: number;
filter?: string | undefined;
}, {
k: number;
filter?: string | undefined;
}>>>;
/**
* Configures a Postgres indexer.
* @param ai A Genkit instance
* @param params The params for the indexer
* @param params.tableName The name of the indexer
* @param params.engine The engine to use for the indexer
* @param params.embedder The embedder to use for the retriever
* @param params.embedderOptions Options to customize the embedder
* @param params.metadataColumns The metadata columns to use for the indexer
* @param params.idColumn The id column to use for the indexer
* @param params.metadataJsonColumn The metadata json column to use for the indexer
* @param params.contentColumn The content column to use for the indexer
* @param params.embeddingColumn The embedding column to use for the indexer
* @param params.schemaName The schema name to use for the indexer
* @param params.chunkSize The chunk size to use for the indexer
* @returns Add documents to vector store
*/
declare function configurePostgresIndexer<EmbedderCustomOptions extends z.ZodTypeAny>(ai: Genkit, params: {
tableName: string;
engine: PostgresEngine;
schemaName?: string;
contentColumn?: string;
embeddingColumn?: string;
metadataColumns?: string[];
ignoreMetadataColumns?: string[];
idColumn?: string;
metadataJsonColumn?: string;
embedder: EmbedderArgument<EmbedderCustomOptions>;
embedderOptions?: z.infer<EmbedderCustomOptions>;
}): _genkit_ai_ai_retriever.IndexerAction<z.ZodOptional<z.ZodObject<{
batchSize: z.ZodDefault<z.ZodNumber>;
}, "strip", z.ZodTypeAny, {
batchSize: number;
}, {
batchSize?: number | undefined;
}>>>;
export { DistanceStrategy, PostgresEngine, configurePostgresIndexer, configurePostgresRetriever, postgres as default, postgres, postgresIndexerRef, postgresRetrieverRef };