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};
    case SDKComponent.stt:
      relevantCategories = {ModelCategory.speechRecognition};
    case SDKComponent.tts:
      relevantCategories = {ModelCategory.speechSynthesis};
    case SDKComponent.vad:
      relevantCategories = {ModelCategory.audio};
    case SDKComponent.voice:
      relevantCategories = {
        ModelCategory.language,
        ModelCategory.speechRecognition,
        ModelCategory.speechSynthesis
      };
    case SDKComponent.embedding:
      // Embedding models could be language or multimodal
      relevantCategories = {ModelCategory.language, ModelCategory.multimodal};
  }

  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;
}