Documentation
¶
Index ¶
- func DefineRetriever(ctx context.Context, g *genkit.Genkit, cfg Config, opts *ai.RetrieverOptions) (ai.Retriever, error)
- func GetBigQueryDocumentIndexer(bqClient *bigquery.Client, datasetID, tableID string) func(ctx context.Context, docs []*ai.Document) ([]string, error)
- func Index(ctx context.Context, g *genkit.Genkit, params IndexParams, ...) error
- type BigQueryDocumentRow
- type Config
- type CrowdingAttribute
- type Datapoint
- type DocumentIndexer
- type DocumentRetriever
- type FindNeighborsParams
- type FindNeighborsResponse
- type IndexDatapoint
- type IndexParams
- type Neighbor
- type NumericRestrict
- type Restrict
- type RetrieveParams
- type UpsertDatapointsParams
- type VertexAIVectorSearch
- func (v *VertexAIVectorSearch) FindNeighbors(params FindNeighborsParams) (*FindNeighborsResponse, error)
- func (v *VertexAIVectorSearch) Init(ctx context.Context) []api.Action
- func (a *VertexAIVectorSearch) Name() string
- func (v *VertexAIVectorSearch) Retrieve(ctx context.Context, req *ai.RetrieverRequest) (*ai.RetrieverResponse, error)
- func (v *VertexAIVectorSearch) UpsertDatapoints(params UpsertDatapointsParams) error
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func DefineRetriever ¶
func DefineRetriever(ctx context.Context, g *genkit.Genkit, cfg Config, opts *ai.RetrieverOptions) (ai.Retriever, error)
DefineRetriever defines a Retriever with the given configuration.
func GetBigQueryDocumentIndexer ¶
func GetBigQueryDocumentIndexer(bqClient *bigquery.Client, datasetID, tableID string) func(ctx context.Context, docs []*ai.Document) ([]string, error)
GetBigQueryDocumentIndexer creates a BigQuery Document Indexer. This function returns a DocumentIndexer function that indexes documents into a BigQuery table. It generates a random ID for each document and stores the content and metadata as JSON strings.
func Index ¶
func Index(ctx context.Context, g *genkit.Genkit, params IndexParams, documentIndexer DocumentIndexer) error
Index indexes documents into a Vertex AI index.
Types ¶
type BigQueryDocumentRow ¶
type BigQueryDocumentRow struct { ID string `bigquery:"id"` Content string `bigquery:"content"` // Stored as JSON string Metadata string `bigquery:"metadata"` // Stored as JSON string }
BigQueryDocumentRow defines the structure of a row in the BigQuery table.
type Config ¶
type Config struct {
IndexID string // The unique ID of the vector search index to use.
}
Config represents the configuration settings for the Vertex AI vector search plugin.
type CrowdingAttribute ¶
type CrowdingAttribute struct {
CrowdingAttribute string `json:"crowdingAttribute,omitempty"` // The value of the crowding tag.
}
CrowdingAttribute represents an optional attribute used for controlling result diversity (crowding).
type Datapoint ¶
type Datapoint struct { DatapointId string `json:"datapointId"` // The unique ID of the data point. FeatureVector []float32 `json:"featureVector"` // The numerical vector embedding of the data point. Restricts []Restrict `json:"restricts,omitempty"` // Categorical restrictions associated with this data point. NumericRestricts []NumericRestrict `json:"numericRestricts,omitempty"` // Numerical restrictions associated with this data point. CrowdingTag CrowdingAttribute `json:"crowdingTag,omitempty"` // Optional crowding attribute for diversity control. }
Datapoint represents the structure of a single data point returned in the FindNeighbors response.
type DocumentIndexer ¶
DocumentIndexer defines the interface (function type) for indexing documents into a vector search index.
func GetFirestoreDocumentIndexer ¶
func GetFirestoreDocumentIndexer(db *firestore.Client, collectionName string) DocumentIndexer
GetFirestoreDocumentIndexer creates a Firestore Document Indexer. This function returns a DocumentIndexer function that indexes documents into a Firestore collection.
type DocumentRetriever ¶
type DocumentRetriever func(ctx context.Context, neighbors []Neighbor, options any) ([]*ai.Document, error)
DocumentRetriever defines the interface (function type) for retrieving original documents given a set of search results (neighbors).
func GetBigQueryDocumentRetriever ¶
func GetBigQueryDocumentRetriever(bqClient *bigquery.Client, datasetID, tableID string) DocumentRetriever
GetBigQueryDocumentRetriever creates a BigQuery Document Retriever. This function returns a DocumentRetriever function that retrieves documents from a BigQuery table based on the provided neighbors' IDs.
func GetFirestoreDocumentRetriever ¶
func GetFirestoreDocumentRetriever(db *firestore.Client, collectionName string) DocumentRetriever
GetFirestoreDocumentRetriever creates a Firestore Document Retriever. This function returns a DocumentRetriever function that retrieves documents from a Firestore collection based on the provided Vertex AI Vector Search neighbors' IDs.
type FindNeighborsParams ¶
type FindNeighborsParams struct { FeatureVector []float32 // The vector embedding of the query content. NeighborCount int // The desired number of nearest neighbors to retrieve. AuthClient *google.Credentials // Authentication credentials for the API call. ProjectNumber string // The numeric ID of the Google Cloud project. Location string // The geographical region of the index endpoint. IndexEndpointID string // The ID of the specific index endpoint to query. PublicDomainName string // The public domain name of the Vertex AI service. DeployedIndexID string // The ID of the deployed index within the endpoint. Restricts []Restrict // Categorical restrictions to apply to the search query. NumericRestricts []NumericRestrict // Numerical restrictions to apply to the search query. }
FindNeighborsParams represents the parameters required to query a public endpoint for finding nearest neighbors in a vector search index.
type FindNeighborsResponse ¶
type FindNeighborsResponse struct { NearestNeighbors []struct { Neighbors []Neighbor `json:"neighbors"` // A list of the nearest neighbors found for each query. } `json:"nearestNeighbors"` }
FindNeighborsResponse represents the structured response from the Vertex AI FindNeighbors API.
type IndexDatapoint ¶
type IndexDatapoint struct { DatapointID string `json:"datapoint_id"` // A unique identifier for this data point. FeatureVector []float32 `json:"feature_vector"` // The numerical vector embedding of the data point. Restricts []Restrict `json:"restricts,omitempty"` // Optional categorical restrictions for the data point. NumericRestricts []NumericRestrict `json:"numeric_restricts,omitempty"` // Optional numerical restrictions for the data point. CrowdingTag string `json:"crowding_tag,omitempty"` // An optional tag for crowding control in search results. }
IndexDatapoint represents a single data point to be indexed in the vector search.
type IndexParams ¶
type IndexParams struct { Docs []*ai.Document // The documents to be indexed. Embedder ai.Embedder // The AI embedder used to convert documents into vector embeddings. EmbedderOptions any // Optional settings specific to the chosen embedder. ProjectID string // The Google Cloud Project ID where the index is located. Location string // The geographical region of the index (e.g., "us-central1"). IndexID string // The unique ID of the vector search index. }
IndexParams represents the parameters required for indexing documents into a vector search index.
type Neighbor ¶
type Neighbor struct { Datapoint Datapoint `json:"datapoint"` // The actual data point found. Distance float64 `json:"distance"` // The calculated distance (similarity score) to the query. }
Neighbor represents a single nearest neighbor result, including the datapoint and its distance.
type NumericRestrict ¶
type NumericRestrict struct { Namespace string `json:"namespace"` // The numerical attribute name for the restriction. ValueFloat float32 `json:"valueFloat,omitempty"` // Floating-point value for comparison. ValueInt int64 `json:"valueInt,omitempty"` // Integer value for comparison. ValueDouble float64 `json:"valueDouble,omitempty"` // Double-precision floating-point value for comparison. Op string `json:"op,omitempty"` // The comparison operator (e.g., "=", ">", "<="). }
NumericRestrict represents a numerical filter for a specific namespace, allowing for range or exact matches.
type Restrict ¶
type Restrict struct { Namespace string `json:"namespace"` // The category or attribute name for the restriction. AllowList []string `json:"allowList,omitempty"` // List of allowed values; if empty, all are allowed unless denied. DenyList []string `json:"denyList,omitempty"` // List of denied values; if empty, none are denied. }
Restrict represents a categorical filter (allow or deny list) for a specific namespace.
type RetrieveParams ¶
type RetrieveParams struct { Content *ai.Document // The query document to find similar documents for. Embedder ai.Embedder // The embedder used to vectorize the query content. EmbedderOptions any // Optional settings for the query embedder. AuthClient *google.Credentials // Authentication credentials for Google Cloud services. ProjectNumber string // The numeric ID of the Google Cloud project. Location string // The geographical region of the index endpoint. IndexEndpointID string // The ID of the specific index endpoint to query. PublicDomainName string // The public domain name of the deployed index within the endpoint. DeployedIndexID string // The ID of the deployed index within the endpoint. NeighborCount int // The number of nearest neighbors to retrieve. Restricts []Restrict // Categorical restrictions to apply to the search. NumericRestricts []NumericRestrict // Numerical restrictions to apply to the search. DocumentRetriever DocumentRetriever `json:"-"` // A function to retrieve original documents; excluded from JSON serialization. }
RetrieveParams represents the parameters required for retrieving documents from a vector search index based on a query document.
type UpsertDatapointsParams ¶
type UpsertDatapointsParams struct { Datapoints []IndexDatapoint // The slice of data points to upsert. ProjectID string // The Google Cloud Project ID. Location string // The geographical region of the index. IndexID string // The unique ID of the vector search index. }
UpsertDatapointsParams represents the parameters required to add or update (upsert) multiple data points in a vector search index.
type VertexAIVectorSearch ¶
type VertexAIVectorSearch struct { ProjectID string Location string // contains filtered or unexported fields }
func (*VertexAIVectorSearch) FindNeighbors ¶
func (v *VertexAIVectorSearch) FindNeighbors(params FindNeighborsParams) (*FindNeighborsResponse, error)
QueryPublicEndpoint queries a public index endpoint to find neighbors for a given feature vector.
func (*VertexAIVectorSearch) Init ¶
func (v *VertexAIVectorSearch) Init(ctx context.Context) []api.Action
Init initializes the VertexAI plugin and all known models and embedders. After calling Init, you may call [DefineModel] and [DefineEmbedder] to create and register any additional generative models and embedders
func (*VertexAIVectorSearch) Name ¶
func (a *VertexAIVectorSearch) Name() string
func (*VertexAIVectorSearch) Retrieve ¶
func (v *VertexAIVectorSearch) Retrieve(ctx context.Context, req *ai.RetrieverRequest) (*ai.RetrieverResponse, error)
Retrieve retrieves documents from a Vertex AI index based on a query.
func (*VertexAIVectorSearch) UpsertDatapoints ¶
func (v *VertexAIVectorSearch) UpsertDatapoints(params UpsertDatapointsParams) error
UpsertDatapoints upserts datapoints into a specified index.