defineBidiModel method

BidiModel defineBidiModel({
  1. required String name,
  2. required BidiActionFn<ModelRequest, ModelResponse, ModelResponseChunk, ModelRequest> fn,
})

Defines a bi-directional (live) AI model interface.

Implementation

BidiModel defineBidiModel({
  required String name,
  required BidiActionFn<
    ModelRequest,
    ModelResponse,
    ModelResponseChunk,
    ModelRequest
  >
  fn,
}) {
  final model = BidiModel(
    name: name,
    fn: (input, context) {
      if (context.inputStream == null) {
        throw GenkitException(
          'Bidi model $name called without an input stream',
          status: StatusCodes.INVALID_ARGUMENT,
        );
      }
      return fn(context.inputStream!, context);
    },
  );
  registry.register(model);
  return model;
}