Skip to content

Conversation

mikadamczyk
Copy link
Contributor

@mikadamczyk mikadamczyk commented May 15, 2025

🎫 Issue IBX-9846

Description:

Introduces foundational embedding support at the Ibexa Core level:

  • New query abstractions under Repository/Values/Content:

    • EmbeddingQuery: a value object representing a “semantic similarity” search request, encapsulating the text or vector to match against content embeddings.
    • EmbeddingQueryBuilder: a fluent builder for constructing EmbeddingQuery instances, enforcing required parameters (model, text/vector, threshold, etc.) and integrating with the Core query pipeline.
    • QueryValidatorInterface: validates that an EmbeddingQuery is well-formed (e.g., model exists, vector dimensions match configuration) before it reaches the search engine layer.
  • Embedding contracts (in Contracts/Embedding):

    • EmbeddingConfigurationInterface
      Defines how embedding models are configured in the system (model name, dimensionality, provider reference, field suffix).
    • EmbeddingProviderInterface
      The runtime contract for any embedding engine—exposes a getEmbeddings(array $inputs): array method to generate vectors from text or other inputs.
    • EmbeddingProviderRegistryInterface
      A registry service that lists all available EmbeddingProviderInterface implementations, keyed by provider name.
    • EmbeddingProviderResolverInterface
      Resolves which EmbeddingProviderInterface should be used for a given EmbeddingConfigurationInterface (e.g., by model or provider alias).
  • Search field type:

    • EmbeddingField and EmbeddingFieldFactory to define and instantiate custom search fields for embedding vectors.

This PR lays the groundwork for embedding-driven search across all supported engines.

For QA:

Documentation:

@mikadamczyk mikadamczyk self-assigned this May 15, 2025
@mnocon mnocon added the Doc needed The changes require some documentation label May 15, 2025
@mikadamczyk mikadamczyk force-pushed the taxonomy-suggestions branch 4 times, most recently from 2972efe to 9d17bd9 Compare May 21, 2025 10:00
Copy link

@mikadamczyk mikadamczyk marked this pull request as ready for review June 24, 2025 06:29
@mikadamczyk mikadamczyk force-pushed the taxonomy-suggestions branch from a1fcea3 to 48072bf Compare June 26, 2025 09:12
Copy link
Member

@adamwojs adamwojs left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

declare(strict_types=1); is missing in multiple places as well as final modifier.

Copy link

sonarqubecloud bot commented Jul 3, 2025

@mikadamczyk mikadamczyk requested review from adamwojs and a team August 21, 2025 08:45
@ezrobot ezrobot requested review from Steveb-p, alongosz, ciastektk, ViniTou, barw4, wiewiurdp, konradoboza and tbialcz and removed request for a team August 21, 2025 08:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Doc needed The changes require some documentation
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants