getFrameworks static method

Future<List<InferenceFramework>> getFrameworks(
  1. SDKComponent capability
)

Get all registered frameworks for a specific capability

  • Parameter capability: The capability/component type to filter by
  • Returns: List of frameworks that provide the specified capability

Implementation

static Future<List<InferenceFramework>> getFrameworks(
  SDKComponent capability) async {
final frameworks = <InferenceFramework>{};

// Map capability to model categories
final Set<ModelCategory> relevantCategories;

switch (capability) {
  case SDKComponent.llm:
    relevantCategories = {
      ModelCategory.language,
      ModelCategory.multimodal
    };
    break;

  case SDKComponent.stt:
    relevantCategories = {ModelCategory.speechRecognition};
    break;

  case SDKComponent.tts:
    relevantCategories = {ModelCategory.speechSynthesis};
    break;

  case SDKComponent.vad:
    relevantCategories = {ModelCategory.audio};
    break;

  case SDKComponent.voice:
    relevantCategories = {
      ModelCategory.language,
      ModelCategory.speechRecognition,
      ModelCategory.speechSynthesis
    };
    break;

  case SDKComponent.embedding:
    relevantCategories = {ModelCategory.embedding};
    break;

  case SDKComponent.vlm:
    relevantCategories = {ModelCategory.multimodal};
    break;
}



  final allModels = await RunAnywhere.availableModels();
  for (final model in allModels) {
    if (relevantCategories.contains(model.category)) {
      // Add the model's framework (1:1 mapping)
      frameworks.add(model.framework);
    }
  }

  final result = frameworks.toList();
  result.sort((a, b) => a.displayName.compareTo(b.displayName));
  return result;
}