-
-
Notifications
You must be signed in to change notification settings - Fork 206
Closed
Labels
BugSomething isn't workingSomething isn't workingPlatformIssues & PRs about the AI Platform componentIssues & PRs about the AI Platform componentStatus: Needs Review
Description
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: trueActual Behavior
$model->supports(Capability::EMBEDDINGS); // Actual: falseRoot 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],
],Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
BugSomething isn't workingSomething isn't workingPlatformIssues & PRs about the AI Platform componentIssues & PRs about the AI Platform componentStatus: Needs Review