supportsToolCalling property

bool get supportsToolCalling

Check if this model supports tool calling

Implementation

bool get supportsToolCalling {
  // Based on Groq documentation, these models support tool calling:
  // - meta-llama/llama-4-scout-17b-16e-instruct
  // - meta-llama/llama-4-maverick-17b-128e-instruct
  // - qwen-qwq-32b
  // - deepseek-r1-distill-qwen-32b
  // - deepseek-r1-distill-llama-70b
  // - llama-3.3-70b-versatile
  // - llama-3.1-8b-instant
  // - gemma2-9b-it

  // Base models don't support tool calling
  if (model.contains('-base')) {
    return false;
  }

  // Models that support tool calling
  final supportedModels = [
    'llama-4-scout',
    'llama-4-maverick',
    'qwen-qwq',
    'deepseek-r1-distill',
    'llama-3.3',
    'llama-3.1',
    'gemma2-9b-it',
  ];

  return supportedModels
      .any((supportedModel) => model.contains(supportedModel));
}