Skip to content

Releases: neuml/txtai

v6.2.0

08 Nov 14:55
Compare
Choose a tag to compare

This release adds binary quantization, bind parameters for multimedia SQL queries and performance improvements

⚡ Scalar quantization. Supports 1 bit (binary) through 8 bit quantization. Can dramatically reduce vector storage requirements.

🚀 SQL bind parameters. Enables searching binary content with SQL statements, along with being a standard best practice.

See below for full details on the new features, improvements and bug fixes.

New Features

  • Add scalar quantization support to vectors (#583)
  • Feature request: Bind variable support when searching with SQL using Content=True mode (#564)
  • Add cls pooling option (#565)
  • Add prefix parameter for object storage (#568)
  • Add parameter to RetrieveTask to disable directory flattening (#569)
  • Add support for binary indexes to Faiss ANN (#585)
  • Add support for scalar data to torch and numpy ANN backends (#587)
  • Add quantization notebook (#588)
  • Add API extensions notebook (#591)
  • Add env variable to disable macOS MPS devices (#592)

Improvements

  • Allow searching for images (#404)
  • Update LLM pipeline to support template parameter (#566)
  • Update recommended models (#573)
  • Is it possible to add chat history to extractor workflow? (#575)
  • Extractor pipeline improvements (#577)
  • Update documentation (#582)
  • Move vector normalization to vectors module (#584)
  • Update benchmarks to read configuration (#586)
  • Update torch version in Dockerfile (#589)
  • Update Faiss ANN to support IVF strings without number of cells (#594)
  • Update documentation to note SQL bind parameters (#596)

Bug Fixes

  • Inconsistency in Embeddings behavior in Applications (#571)

v6.1.0

26 Sep 19:49
Compare
Choose a tag to compare

This release adds metadata support for client-server databases and custom scoring implementations

🗃️ Client-server database integration. Store index metadata in Postgres, MariaDB/MySQL, MSSQL and more.

🖹 Custom scoring implementations. Store keyword index data in systems such as Elasticsearch. Similar to functionality already available in vector index component.

See below for full details on the new features, improvements and bug fixes.

New Features

  • Add metadata support for client-server databases (#532)
  • Add support for custom scoring instances (#544)
  • Add benchmark script (#522)
  • Add sparse keyword benchmark notebook (#523)
  • Add hybrid search notebook (#526)
  • Add way to load database connection URL via environment variable (#548)
  • Add external database integration notebook (#549)
  • Add weights and index to Application methods (#561)

Improvements

  • Refresh introducing txtai notebook (#520)
  • Calling .reindex() on Application instance (#547)
  • Document how to run API via HTTPS (#553)
  • Update reindex action to support new 6.x configuration (#557)

Bug Fixes

  • ValueError: dictionary update sequence element #0 has length X; 2 is required (#529)
  • Add build script workaround for DuckDB and Pandas 2.1.0 incompatibility (#542)
  • Align API parameter data type to translation pipeline (#550)
  • Summary pipeline error when gpu enabled on mps device (#551)
  • Remove deprecated option from quantize_dynamic (#562)
  • Dates fail in example (#563)

v6.0.0

10 Aug 09:14
Compare
Choose a tag to compare

🥳 We're excited to announce the release of txtai 6.0 🥳

This significant milestone release marks txtai's 3 year birthday🎉 If you like txtai, please remember to give it a ⭐!

6.0 adds sparse, hybrid and subindexes to the embeddings interface. It also makes significant improvements to the LLM pipeline workflow. See below for more.

Breaking changes

The vast majority of changes are fully backwards compatible. New features are only enabled when specified. The only breaking change is with the Scoring terms interface, where the index format changed. The main Scoring interface used for word vectors weighting is unchanged.

New Features

  • Better BM25 (#508)
  • Hybrid Search (#509)
  • Add additional indexes for embeddings (#515)
  • Refactor Sequences and Generator pipeline into single LLM pipeline (#494)
  • Support passing model parameters in pipelines (#500)
  • Add "auto-id" capability to Embeddings (#502)
  • Add UUID auto-id (#505)
  • Add keyword arguments to Embeddings constructor (#503)
  • Add top level imports (#514)

Improvements

  • Add NumPy ANN Backend (#468)
  • Add PyTorch ANN Backend (#469)
  • Add notebook covering embeddings configuration options (#470)
  • make data - No such file or directory (#473)
  • Improve derivation of default embeddings model path (#476)
  • Add accelerate dependency (#477)
  • Add baseball example application (#484)
  • Update minimum Python version to 3.8 (#485)
  • Add WAL option for SQLite (#488)
  • Add support for alternative acceleration devices (#489)
  • Add support for passing torch devices to embeddings and pipelines (#492)
  • Documentation updates (#495)
  • Improve Pooling tokenizer load method (#499)
  • Add ability for extractor to reference another pipeline in applications (#501)
  • Reorganize embeddings configuration documentation (#504)
  • Support Unicode Text Segmentation in Tokenizer (#507)
  • ANN improvements (#510)
  • Add multilingual graph topic modeling (#511)
  • Add support for configurable text/object fields (#512)
  • Update documentation for 6.0 (#513)
  • Add count method to database (#517)
  • Improvements when indexing through Applications (#518)
  • Add what's new in txtai 6.0 notebook (#519)

Bug Fixes

  • OpenMP issues with torch 1.13+ on macOS (#377)
  • Unique constrant violation issue with DuckDB (#475)
  • Incorrect results can be returned by embedding search when Content storage enabled (#496)
  • Fix issues with graph.infertopics (#516)

v5.5.1

27 Apr 19:40
Compare
Choose a tag to compare

This release adds the following new features, improvements and bug fixes.

Bug Fixes

  • Wrap DuckDB as conditional import (#464)

v5.5.0

20 Apr 14:36
Compare
Choose a tag to compare

This release adds workflow streams and DuckDB as a database backend

↪️️ Workflow streams enable server-side processing of large datasets. Streams iteratively pass content to workflows, no need to pass bulk data through the API.

🦆 DuckDB is a new database backend. Certain larger non-vector driven queries and aggregations will now run significantly faster than with SQLite.

See below for full details on the new features, improvements and bug fixes.

New Features

  • Add workflow streams (#461)
  • Add DuckDB support (#462)

Improvements

  • Modify translation pipeline langdetect parameter to accept language detection function good first issue - Thank you @saucam! (#423, #444)
  • Pass generation keyword arguments to underlying text generation pipeline (#457)
  • Replace original prompt in text generation pipeline (#459)

Bug Fixes

  • Issue with upsert and graph (#421)
  • Upsert API fails with graph config while performing after /delete (#435)
  • Build errors with latest onnxmltools package (#449)
  • Fix issue with embeddings reindex and stale function references (#453)
  • Problem with the workflow builder (#454)
  • Check for empty queue before attempting to convert inputs to dictionaries (#456)
  • Fix issue with latest version of Transformers and TokenDetection.save_pretrained (#458)

v5.4.0

06 Mar 15:05
Compare
Choose a tag to compare

This release adds prompt templates, conversational task chaining and Hugging Face Hub integration

📃 Prompt templates dynamically generate text using workflow task inputs. This enables chaining multiple prompts and models together.

🤗 Embeddings now integrate with the Hugging Face Hub! Easily share and load embeddings indexes. There is a full embeddings index available for English Wikipedia.

See below for full details on the new features, improvements and bug fixes.

New Features

  • Add translation pipeline parameter to return selected models and detected language - Thank you @saucam! (#383, #424)
  • Add sample parameter to Faiss ANN (#427)
  • Add support for instruction-based embeddings (#428)
  • Add Hugging Face Hub integration (#430)
  • Add cloud object storage support for uncompressed embeddings indexes (#431)
  • Add support for custom cloud providers (#432)
  • Add support for storing embeddings config as JSON (#433)
  • Add notebook for syncing embeddings with the cloud (#434)
  • Add terms method to embeddings (#445)
  • Add extractor reference output format (#446)
  • Add template task (#448)
  • Add prompt template and task chaining example notebook (#451)

Improvements

  • Mention the default storage engine - Thank you @hsm207! (#422)
  • Refactor archive module into separate package (#429)
  • Resolve application references in pipelines (#441)
  • Extractor pipeline improvements (#443)
  • Allow task action arguments to be dictionaries in addition to tuples (#447)
  • Automatically mark embeddings index files for lfs tracking with Hugging Face Hub (#450)

Bug Fixes

  • Pin onnxruntime for macOS in build script (#425)

v5.3.0

06 Feb 21:21
Compare
Choose a tag to compare

This release adds embeddings-guided and prompt-driven search along with a number of methods to train language models

🔎 Prompt-driven search is a big step forward towards conversational search in txtai. With this release, complex prompts can now be passed to txtai to customize how search results are returned. Lots of exciting possibilities on this front, stay tuned.

💡 The trainer pipeline now has support for training language models from scratch. It supports masked language modeling (MLM), causal language modeling (CLM) and replaced token detection (ELECTRA-style). This is part of the micromodels effort.

See below for full details on the new features, improvements and bug fixes.

New Features

  • Add language modeling task to HFTrainer (#403)
  • Add language modeling example notebook (#408)
  • Add FAQ section to documentation (#413)
  • Add language generation task to HFTrainer (#414)
  • Add replaced token detection task to HFTrainer (#415)
  • Add generator pipeline for text generation (#416)
  • Add notebook for embeddings-guided and prompt-driven search with LLMs (#418)

Improvements

  • Normalize BM25 and TF-IDF scores (#401)
  • Add note to restart kernel if running in Google Colab - Thank you @hsm207! (#410)
  • Add clear error when starting API and config file not found (#412)
  • Extractor pipeline 2.0 (#417)
  • Make texts parameter optional for extractor pipeline in applications (#420)

Bug Fixes

  • Fix issue with ORDER BY case sensitivity (#405)

v5.2.0

20 Dec 15:12
Compare
Choose a tag to compare

This release adds TextToSpeech and Cross-Encoder pipelines. The performance of the embeddings.batchtransform method was significantly improved, enabling a speed up in building semantic graphs. Default configuration is now available for Embeddings, allowing an Embeddings instance to be created with no arguments like Pipelines.

See below for full details on the new features, improvements and bug fixes.

New Features

  • Add Cross-Encoder support to Similarity pipeline (#372)
  • Create compression package (#376)
  • Add TextToSpeech pipeline (#389)
  • Add TextToSpeech Notebook (#391)
  • Add default configuration for Embeddings (#393)

Improvements

  • Filter HF API list models request (#381)
  • Split pipeline extras by function area (#387)
  • Update data package to handle label arrays (#388)
  • Modify transcription pipeline to accept raw waveform data (#390)
  • Transcription pipeline improvements (#392)
  • Allow searching by embedding (#396)
  • Modified logger configuration in init.py (libraries shouldn't modify root logger) - Thank you @adin786! (#397)
  • Pass evaluation metrics to underlying Trainer (#398)
  • Improve batchtransform performance (#399)

Bug Fixes

  • Example 31 - Duplicate image detection not working (#357)
  • All sorts of issues with Example 18 - Export and run models with ONNX (#369)
  • Fix issue with select distinct bug (#379)
  • Update build script and tests to address issues with latest version of FastAPI (#380)
  • Fix issue with similar and bracket SQL expressions embedded in functions (#382)
  • Fix bug with embeddings functions and application config bug (#400)

v5.1.0

18 Oct 14:13
Compare
Choose a tag to compare

This release adds new model support for the translation pipeline, OpenAI Whisper support in the transcription pipeline and ARM Docker images. Topic modeling was also updated with improvements, including how to use BM25/TF-IDF indexes to drive topic models.

See below for full details on the new features, improvements and bug fixes.

New Features

  • Multiarch docker image (#324)
  • Add notebook covering classic topic modeling with BM25 (#360)

Improvements

  • Read authentication parameters from storage task (#332)
  • Update scoring algorithms (#351)
  • Add config option for list of stopwords to ignore with topic generation (#352)
  • Allow for setting custom translation model path (#355)
  • Update caption pipeline to call image-to-text pipeline (#361)
  • Update transcription pipeline to call automatic-speech-recognition pipeline (#362)
  • Only pass tokenizer to pipeline when necessary (#363)
  • Improve default max length logic for text generation (#364)
  • Update transcription notebook (#365)
  • Update translation notebook (#366)
  • Move mkdocs dependencies from docs.yml to setup.py (#368)

Bug Fixes

  • GitHub Actions build error with torch 1.12 on macOS (#300)
  • SQLite JSON support not built into Python Windows builds < 3.9 (#356)
  • Use tags field in application.add (#359)
  • Fix issue with Application autosequencing (#367)

v5.0.0

27 Sep 15:11
Compare
Choose a tag to compare

🎈🎉🥳 We're excited to announce the release of txtai 5.0! 🥳🎉🎈

Thank you to the txtai community! Please remember to ⭐ txtai!

txtai 5.0 is a major new release. This release adds the semantic graph along with enabling external integrations. It also adds a number of improvements and bug fixes.

New Features

  • Add scoring-based search (#327)
  • Add notebook demonstrating functionality of individual embeddings components (#328)
  • Add SQL expression columns (#338)
  • Add semantic graph component (#339)
  • Add notebook covering Semantic Graphs (#341)
  • Add graph documentation (#343)
  • Allow custom ann, database and graph instances (#344)

Improvements

  • Clarify embeddings.save documentation (#325)
  • Modify embeddings search candidate default logic (#326)
  • Update console to conditionally import library (#333)
  • Update ANN package to make terminology more consistent (#334)
  • Support non-text document elements in Applications (#335)
  • Update workflow documentation to note generator execution (#336)
  • Update audio transcription notebook to include example with OpenAI Whisper (#345)

Bug Fixes

  • Calling scoring.index with no tokens parsed results in error (#337)
  • Fix cached_path error with transformers v4.22 (#340)
  • Fix docker command "--it". Thank you to @lipusz! (#346)
  • Error loading compressed indexes in console bug (#347)