v 1.3.0
New features
Boost preview premium
In the boost contribution page, you can now have a preview of the effect of the boost you are creating. You will be able to see how the boost affect your product score and how the position of the product evolves after the application of this boost.
Explain premium
A new menu has been added to the gally backoffice. It allows user to visualize the results of a given context (a product search or a category product listing). This will help merchants to understand why some products are at a certain position by displaying their document score and highlight the product that are manually positioned.
Vector Search premium
A new endpoint has been added to the graphQl schema in order use the OpenSearch ability to do semantic search. In short, a vector that represent your document will be computed by a LLM (Large Language Model) during the indexation of your data based on you configuration. When a user will search data on your website, it's search query will be also computed as a vector and the search engine will return all the document that are semantically close to the search query instead of the results that match the words of the search query (like a classical search engine will do).
Configuration
A default model have been configured in the gally_vector_search.yaml
, you can update this configuration to change this model by any PyToch or ONNX embedding model.
gally_vector_search:
llm_model:
name: 'huggingface/sentence-transformers/all-MiniLM-L12-v2'
version: 1.0.1
format: ONNX
...
The screen in the screenshot aboveallow you to compute a dynamic field on each product which will be used by the LLM to calculate the vector for this product.
The field "Vectorisable" indicate which field we want to include in vector computation.
The field "Position" indicate in which order we want to include these fields.
And the field "prompt" allow you to create a short sentence where the field value will be inserted at the position of the @%s@ placeholder.
For exemple if you have a product with these data :
name: My Product
sku: AAA
description: An incredible product
price: 75€
With the above configuration, the vector will be calculated from a dynamic field with the value : The product's name is: My Product and this is its description : An incredible product
.
Usage
A new GraphQl endpoint has been added in the api : vectorSearchDocuments
.
It needs the same parameter as the documents
endpoint, but it will run a semantic search instead a fulltext search.
A new screen has been added to the example app in order to be able to compare results from these two search approaches.
📦 Features
- [Explain] Add explain page in Gally by @botisSmile in #586
- [Search engine] Switch to OpenSearch 2 by @PierreGauthier in #578
- [VectorSearch] Add compaison page between vector search and fulltext search in example app @PierreGauthier in #589 #591
🔨 Quality
- [CI] Update cs-fixer command to avoid running docker compose from a sub directory @PierreGauthier in #588
- [Symfony] Update composer version of symfony/flex to 1.21.5 by @botisSmile in #590
Full Changelog: 1.2.0...1.3.0