Changelog
Toutes les modifications notables apportées à Search Toolkit sont documentées ici.
0.0.13
Modifications incompatibles
Modèle d’embedding du schéma
create_schema()etcreate_default_schema()acceptent désormaisembedding_model(EmbeddingModelouMistralEmbeddingPreset) à la place deembedding_dimensions: int.embedding_dimensionsest déprécié. Fournir les deux paramètres lève une erreurValueError.VespaSchemaDefinition.embedding_dimensionsest remplacé parembedding_model: EmbeddingModel, qui transmet le nom, les dimensions, le type de données et la métrique de distance à la couche de schéma.VespaSearchIndexexpose désormais une propriétéembedding_model.
Améliorations
- Ajout d’un backend de recherche Postgres (
mistralai-search-toolkit-plugins-postgres) en complément de Vespa. Il prend en charge la recherche dense et hybride, la navigation et les mises à jour partielles. Les extensionsvectoretpg_textsearchdoivent être provisionnées dans la base de données cible. - Ajout de l’abstraction
EmbeddingModelcomme source de vérité pour la configuration vectorielle. Elle comprendMistralEmbeddingModel,CustomEmbeddingModel, les presetsMistralEmbeddingPreset,VectorDType,DistanceMetricet le protocoleVectorConfig. SmartPDFExtractoretLegacyOfficeExtractoracceptent toutDocumentExtractorcomme délégué OCR. Un déploiement sans accès à l’API Mistral peut ainsi fournir son propre moteur.- Ajout d’une extraction PDF orientée texte, activée avec
pdf_min_chars_per_page. Elle est désactivée par défaut. - Propagation de
exclude_idsdans la couche de récupération.CachedQueryEngine.searchtransmet ce paramètre et ignore le cache lorsque des exclusions sont définies. - SharePoint : ajout des URL de documents externes aux résultats de recherche et du filtrage par chemin ou identifiant externe avec
document_url,document_pathetdocument_external_id.
Corrections de bugs
- Mise à jour de
markdownifyvers>=1.0.0,<2et adaptation du convertisseur personnalisé à l’API 1.x.
0.0.12
Modifications incompatibles
Sérialisation des checkpoints
- Un nouveau module
document/serialization.pyintroduit unDocumentTypeRegistryet des identifiants de type stables, afin que les classes de documents puissent faire un aller-retour via un service externe en toute sécurité.
Autres
- Mise à jour de
mistralaivers>=2.9.1,<2.10.
Améliorations
- Ajout de
MistralClientConfiget debuild_mistral_client()pour centraliser la création des clients du SDK Mistral pour des pipelines complets. - Ajout de
SmartPDFExtractor, qui choisit automatiquement entre PyMuPDF et Mistral OCR pour les PDF qui disposent déjà d’une couche de texte. - Ajout de
EmailWithAttachmentsExtractor, qui intègre le texte des pièces jointes dans le Markdown de l’e-mail parent sous une section## Attachments. - Amélioration du signalement des erreurs liées aux problèmes d’ingestion.
Corrections de bugs
- Les échecs d’ingestion déterministes sont désormais détectés plus rapidement.
Maintenance
- Mise à jour de
dynaconf, de>=3.2.11à>=3.3.4. - Renommage du module
mistralai.search.toolkit.embeddersenmistralai.search.toolkit.embedding. Une couche de compatibilitéembedders, rétrocompatible, réexporte les symboles publics et émet unDeprecationWarning.
0.0.11
Améliorations
- Pour l’ingestion, les checkpoints d’extraction (enregistrement d’instantanés entre les étapes pour accélérer les nouvelles tentatives) sont désormais une capacité indépendante du backend.
Pipeline(checkpoint_store=...)accepte n’importe quel backendObjectStorageet enregistre des checkpoints entre les étapes d’ingestion. - Introduction d’un protocole
DocumentProcessorpour l’ingestion, qui unifieTextSplitter,EmbedderetChunkEnricher. - Ajout de la synthèse map-reduce pour les documents longs :
SummarizeRequestConfigavecoverflow_strategy: OverflowStrategy.MAP_REDUCEpeut découper un document, synthétiser ses différentes parties et les fusionner dans une synthèse finale. - Ajout de fonctionnalités OCR v4 : intégration directe des tableaux Markdown dans les fragments de page, scores de confiance par fragment et prise en charge de base des bounding boxes.
Corrections de bugs
- Nettoyage des points de code Unicode non valides (substituts isolés) dans le contenu extrait
Maintenance
- Mise à jour de la contrainte
mistralai, de<2.7à<2.9. - Mise à jour de
pypdf, de 6.13.3 à 6.14.2.
0.0.10
Améliorations
- Ajout de la prise en charge de l’API batch d’embeddings pour l’ingestion :
MistralEmbedder.run_batch_embedding_job()peut être utilisé pour réduire les coûts d’embedding sur les tâches d’ingestion volumineuses. - Ajout du découpage en fragments tenant compte des en-têtes pour l’ingestion : nouveaux splitters
ParagraphTokenTextSplitteretMarkdownTokenTextSplitter.
Corrections de bugs
- Correction de
TokenTextSplitter, qui signalait des offsets incorrects pour le contenu répété.
Maintenance
- Assouplissement de la contrainte
mistralaidu toolkit à>=2.5.0,<2.7.
0.0.9
Modifications incompatibles
modèle de document
Search Toolkit utilise désormais un modèle de document unifié construit autour de Document et DocumentChunk, avec une identité déterministe dérivée d’un source_id et d’un locator. Consultez la page Modèle de document pour plus de détails.
- Les extracteurs produisent désormais des objets
DocumentChunkdirectement ; la représentation séparée de page a été supprimée. - Les identifiants
Document.idetDocumentChunk.idsont désormais calculés de manière déterministe à partir desource_id(et delocatorpour les fragments), ce qui rend l’indexation idempotente. Le champidexplicite surFileetdocument_idsurDocumentChunkont été supprimés. - Ajout de
source_id,locator,parent_refetchunk_typeen tant que champs de première classe, ainsi que des modèles de métadonnées typés et extensibles. Le même contrat d’identité est reproduit surSearchResultChunk.
modèle d’indexation Vespa
Vespa indexe désormais un fragment par document via le nouveau mode d’indexation DOCUMENT_PER_CHUNK, qui devient le modèle recommandé. L’ancien modèle à document unique est obsolète.
- Ajout du mode d’indexation
DOCUMENT_PER_CHUNK, y compris les champs par défaut, les profils de classement et les chemins complets d’écriture, de suppression et de recherche. - Ajout d’un
IndexingModeà la définition du schéma, avec des mécanismes d’obsolescence pour migrer les schémas existants. - L’API d’indexation est divisée en une base
VespaSearchIndexet unSingleDocumentSearchIndexdédié ; le modèle à document unique est obsolète au profit deDOCUMENT_PER_CHUNK. - Le champ
id_fielddu schéma est obsolète et n’est plus autorisé pour les indexDOCUMENT_PER_CHUNK.
Autre
- Le module
indicesa été renommé ensearch. Mettez à jour les imports en conséquence.
Améliorations
- Ajout des implémentations
FileLoaderde stockage blob pour S3, Azure et GCS, ainsi qu’un extrastorage-s3. - Ajout d’un plugin
language-detection-fasttext. - Ajout des littéraux et constantes de modèle OCR.
- Vespa : extraction d’un
VespaClientdédié avec une meilleure gestion des erreurs. - Vespa : ajout d’une définition de services indépendante du backend, de la topologie v2 et d’un traducteur, avec génération automatique de topologie v2 pour les déploiements Docker à nœud unique.
- Vespa : ajout des workflows de copie Vespa-à-Vespa et de migration index-vers-streaming.
- Vespa : émission d’un consommateur de métriques dans
services.xml. - Vespa : avertissement lorsqu’un classement de type rank2 est configuré sans rank1, et lorsque les poids de classement sont par défaut à 0.
Sécurité
- Mise à jour de
langchain-corevers~=1.4.
Corrections de bugs
- Vespa : classement par similarité cosinus au lieu de distance euclidienne.
- Vespa : correction de la récupération du compte de documents.
- Vespa : propagation de
distribute_across_groupsdansload_topology_file. - CLI Vespa : importation différée des modèles SDK d’enregistrement d’index.
- Traitement des réponses LLM tronquées comme réessayables et enrichissement de
LLMExceptionetSummaryGenerationErrorpour le journalisation structurée. - Extracteur OCR : utilisation des métadonnées de type MIME pour la détection du type de fichier.
- Ajout des types MIME
text/x-fileettext/x-script.pythonau registre.
0.0.8
Première version de Search Toolkit en tant qu’aperçu technique.