Skip to content

[Platform] Embedding models missing Capability::EMBEDDINGS in ModelCatalog #1529

@RamyHakam

Description

@RamyHakam

Description

Embedding models in multiple bridge ModelCatalog classes are missing the Capability::EMBEDDINGS capability in their capabilities array.
This causes $model->supports(Capability::EMBEDDINGS) to incorrectly return false for embedding models.


Expected Behavior

When checking if an embedding model supports the EMBEDDINGS capability:

use Symfony\AI\Platform\Bridge\OpenAi\ModelCatalog;
use Symfony\AI\Platform\Capability;

$catalog = new ModelCatalog();
$model = $catalog->getModel('text-embedding-3-large');

$model->supports(Capability::EMBEDDINGS); // Expected: true

Actual Behavior

$model->supports(Capability::EMBEDDINGS); // Actual: false

Root Cause

The Capability::EMBEDDINGS enum exists in src/platform/src/Capability.php but is not included in the capabilities array for embedding models in multiple ModelCatalog implementations.

Example from src/platform/src/Bridge/OpenAi/ModelCatalog.php:

'text-embedding-3-large' => [
    'class' => Embeddings::class,
    'capabilities' => [Capability::INPUT_TEXT], // Missing Capability::EMBEDDINGS
],

Affected Bridges

Bridge Models Affected
OpenAI text-embedding-ada-002, text-embedding-3-large, text-embedding-3-small
Gemini gemini-embedding-exp-03-07, text-embedding-004, embedding-001
Mistral mistral-embed
VertexAI gemini-embedding-001, text-embedding-005, text-multilingual-embedding-002
Albert openweight-embeddings
DockerModelRunner ai/nomic-embed-text-v1.5, ai/mxbai-embed-large, ai/embeddinggemma, ai/granite-embedding-multilingual
Scaleway bge-multilingual-gemma2
AiMlApi 16 embedding models
Voyage 11 models (entire catalog)

Note: OpenRouter and LmStudio bridges already correctly include Capability::EMBEDDINGS.

Proposed Fix

Add Capability::EMBEDDINGS to the capabilities array for all embedding models.

Example:

'text-embedding-3-large' => [
    'class' => Embeddings::class,
-   'capabilities' => [Capability::INPUT_TEXT],
+   'capabilities' => [Capability::INPUT_TEXT, Capability::EMBEDDINGS],
],

Metadata

Metadata

Assignees

No one assigned

    Labels

    BugSomething isn't workingPlatformIssues & PRs about the AI Platform componentStatus: Needs Review

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions