Package com.google.genkit.ai.middleware
Class GenerationMiddlewares
java.lang.Object
com.google.genkit.ai.middleware.GenerationMiddlewares
Factory helpers for building
GenerationMiddlewareDesc descriptors.
These mirror the JS SDK's generateMiddleware(...) helper and the Go SDK's
NewMiddleware(description, prototype): a descriptor pairs discovery metadata (name, description)
and a configSchema with a factory that binds config to a fresh GenerationMiddleware hooks bundle.
-
Method Summary
Modifier and TypeMethodDescriptionstatic <C> GenerationMiddlewareDescdefine(String name, String description, Class<C> configClass, Function<C, GenerationMiddleware> factory) Defines a parameterized middleware.static GenerationMiddlewareDescdefine(String name, String description, Supplier<GenerationMiddleware> factory) Defines a parameterless middleware (noconfigSchema).static GenerationMiddlewareDescWraps an already-instantiatedGenerationMiddlewarein a parameterless descriptor.
-
Method Details
-
define
public static <C> GenerationMiddlewareDesc define(String name, String description, Class<C> configClass, Function<C, GenerationMiddleware> factory) Defines a parameterized middleware. The config JSON Schema is inferred fromconfigClass(viaSchemaUtils.inferSchema(java.lang.Class<?>)), so the Dev UI can render a parameters form. At resolve time the incoming config JSON is deserialized onto a freshconfigClassinstance (missing fields keep the class's field defaults, mirroring JS/Go where defaults live in the middleware), then handed tofactory.- Type Parameters:
C- the configuration type- Parameters:
name- the unique middleware namedescription- a human-readable descriptionconfigClass- the configuration POJO type (its fields are the parameters)factory- builds a fresh middleware from a bound config instance- Returns:
- the descriptor
-
define
public static GenerationMiddlewareDesc define(String name, String description, Supplier<GenerationMiddleware> factory) Defines a parameterless middleware (noconfigSchema).- Parameters:
name- the unique middleware namedescription- a human-readable descriptionfactory- builds a fresh middleware instance- Returns:
- the descriptor
-
of
Wraps an already-instantiatedGenerationMiddlewarein a parameterless descriptor. Used for backward compatibility so live middleware passed toGenkit.Builder.middleware(...)orGenerateOptions.use(...)still shows up in the Dev UI (without a parameters form).- Parameters:
mw- the live middleware to wrap- Returns:
- the descriptor
-