Class BaseGenerationMiddleware

java.lang.Object
com.google.genkit.ai.middleware.BaseGenerationMiddleware
All Implemented Interfaces:
GenerationMiddleware

public abstract class BaseGenerationMiddleware extends Object implements GenerationMiddleware
BaseGenerationMiddleware provides default pass-through implementations for all three hooks. Extend this class and override only the hooks you need.

Example:


 public class TimingMiddleware extends BaseGenerationMiddleware {
   @Override
   public String name() { return "timing"; }

   @Override
   public GenerationMiddleware newInstance() { return new TimingMiddleware(); }

   @Override
   public ModelResponse wrapModel(ActionContext ctx, ModelParams params, ModelNext next)
       throws GenkitException {
     long start = System.currentTimeMillis();
     ModelResponse resp = next.apply(ctx, params);
     System.out.println("Model call took " + (System.currentTimeMillis() - start) + "ms");
     return resp;
   }
 }