Documentation
¶
Index ¶
- func ContextProvider(ctx context.Context, g *genkit.Genkit, policy AuthPolicy) (core.ContextProvider, error)
- func DefineRetriever(ctx context.Context, g *genkit.Genkit, cfg RetrieverOptions) (ai.Retriever, error)
- func EnableFirebaseTelemetry(options *FirebaseTelemetryOptions)
- type AuthClient
- type AuthContext
- type AuthPolicy
- type Firebase
- type FirebaseTelemetryOptions
- type RetrieverOptions
- type VectorType
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ContextProvider ¶ added in v0.3.0
func ContextProvider(ctx context.Context, g *genkit.Genkit, policy AuthPolicy) (core.ContextProvider, error)
ContextProvider creates a Firebase context provider for Genkit actions.
func DefineRetriever ¶ added in v0.5.2
func DefineRetriever(ctx context.Context, g *genkit.Genkit, cfg RetrieverOptions) (ai.Retriever, error)
DefineRetriever defines a Retriever with the given configuration.
func EnableFirebaseTelemetry ¶ added in v1.0.0
func EnableFirebaseTelemetry(options *FirebaseTelemetryOptions)
EnableFirebaseTelemetry enables comprehensive telemetry export to Genkit Monitoring, backed by Google Cloud Observability (Cloud Logging, Metrics, and Trace).
Example usage:
// Basic usage - uses environment variables for project ID
firebase.EnableFirebaseTelemetry(nil)
g, err := genkit.Init(ctx, genkit.WithPlugins(&googlegenai.GoogleAI{}))
// With full configuration
firebase.EnableFirebaseTelemetry(&firebase.FirebaseTelemetryOptions{
ProjectID: "my-firebase-project",
ForceDevExport: true,
DisableLoggingInputAndOutput: false,
DisableMetrics: false,
DisableTraces: false,
MetricExportIntervalMillis: &[]int{10000}[0], // 10 seconds
})
g, err := genkit.Init(ctx, genkit.WithPlugins(&googlegenai.GoogleAI{}))
Types ¶
type AuthClient ¶
AuthClient is a client for the Firebase Auth service.
type AuthContext ¶ added in v0.3.0
AuthContext is the context of an authenticated request.
type AuthPolicy ¶ added in v0.3.0
type AuthPolicy = func(context.Context, AuthContext, json.RawMessage) error
AuthPolicy is a function that validates an incoming request.
type Firebase ¶ added in v0.5.2
type Firebase struct {
ProjectId string // Firebase project ID.
App *firebasev4.App // Firebase app instance.
// contains filtered or unexported fields
}
Firebase FireStore passes configuration options to the plugin.
type FirebaseTelemetryOptions ¶ added in v1.0.0
type FirebaseTelemetryOptions struct {
// ProjectID is the Firebase/Google Cloud project ID.
// If empty, will be auto-detected from environment variables in priority order:
// 1. FIREBASE_PROJECT_ID, 2. GOOGLE_CLOUD_PROJECT, 3. GCLOUD_PROJECT
ProjectID string
// Credentials for authenticating with Google Cloud.
// If nil, uses Application Default Credentials (ADC).
// Primarily intended for use in environments outside of GCP.
// On GCP, credentials will typically be inferred from the environment via ADC.
Credentials *google.Credentials
// Sampler controls trace sampling. If nil, uses AlwaysOnSampler.
// Examples: AlwaysOnSampler, AlwaysOffSampler, TraceIdRatioBasedSampler
Sampler sdktrace.Sampler
// MetricExportIntervalMillis controls metrics export frequency.
// Google Cloud requires minimum 5000ms. Defaults to 5000 (dev) or 300000 (prod).
MetricExportIntervalMillis *int
// MetricExportTimeoutMillis controls metrics export timeout.
// Defaults to match MetricExportIntervalMillis.
MetricExportTimeoutMillis *int
// DisableMetrics disables metric export to Google Cloud.
// Traces and logs may still be exported. Defaults to false.
DisableMetrics bool
// DisableTraces disables trace export to Google Cloud.
// Metrics and logs may still be exported. Defaults to false.
DisableTraces bool
// DisableLoggingInputAndOutput disables input/output logging.
// Defaults to false (input/output logging enabled).
DisableLoggingInputAndOutput bool
// ForceDevExport forces telemetry export even in development environment.
// Defaults to false (only exports in production unless forced).
ForceDevExport bool
}
FirebaseTelemetryOptions provides comprehensive configuration for Firebase telemetry. This matches the Google Cloud plugin options for full compatibility, with Firebase-specific project ID resolution that checks FIREBASE_PROJECT_ID first.
Environment Variables: - GENKIT_ENV: Set to "dev" to disable export unless ForceDevExport is true - FIREBASE_PROJECT_ID: Project ID for telemetry if not provided inline - GOOGLE_CLOUD_PROJECT: Project ID for telemetry if not provided inline - GCLOUD_PROJECT: Project ID for telemetry if not provided inline
type RetrieverOptions ¶ added in v0.3.0
type RetrieverOptions struct {
Name string // Name of the retriever
Label string // Label for the retriever
Collection string // Firestore collection name
Embedder ai.Embedder // Embedder instance for generating embeddings
VectorField string // Field name for storing vectors
MetadataFields []string // List of metadata fields to retrieve
ContentField string // Field name for storing content
Limit int // Limit on the number of results
DistanceMeasure firestore.DistanceMeasure // Distance measure for vector similarity
}
RetrieverOptions struct for retriever configuration
type VectorType ¶ added in v0.3.0
type VectorType int