create static method

OrtSessionWrapper create(
  1. String modelPath, {
  2. OnnxRuntime? runtime,
  3. Map<OrtProvider, Map<String, String>> providerOptions = const {},
  4. SessionConfig sessionConfig = const SessionConfig(),
})

Creates a session with automatic provider selection based on the current platform. Providers are chosen via OrtProviders.getDefaultProvidersForPlatform.

Use providerOptions to pass per-provider configuration, e.g.:

OrtSessionWrapper.create(
  modelPath,
  providerOptions: {
    OrtProvider.coreML: {'MLComputeUnits': 'ALL'},
  },
);

Implementation

static OrtSessionWrapper create(
  String modelPath, {
  OnnxRuntime? runtime,
  Map<OrtProvider, Map<String, String>> providerOptions = const {},
  SessionConfig sessionConfig = const SessionConfig(),
}) {
  final rt = runtime ?? OnnxRuntime.instance;
  rt.ensureInitialized();

  final wrapper = OrtSessionWrapper._(rt);
  wrapper._sessionOptions = rt.createSessionOptions();
  _applySessionConfig(rt, wrapper._sessionOptions, sessionConfig);

  final providers = OrtProviders(rt);
  providers.appendDefaultProviders(
    wrapper._sessionOptions,
    providerOptions: providerOptions,
  );

  wrapper._session = rt.createSession(modelPath, wrapper._sessionOptions);
  wrapper._inputNames = rt.getSessionInputNames(wrapper._session);
  wrapper._outputNames = rt.getSessionOutputNames(wrapper._session);

  return wrapper;
}