Skip to content

incompatibility with faiss-cpu 1.13 #987

@datanizing

Description

@datanizing

The simple demo program

import txtai

embeddings = txtai.Embeddings()
embeddings.index(["Correct", "Not what we hoped"])
embeddings.search("positive", 1)

does not work with the latest version of txtai with faiss-cpu in version 1.13:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "$HOME/.venv/lib/python3.12/site-packages/txtai/embeddings/base.py", line 375, in search
    results = self.batchsearch([query], limit, weights, index, [parameters], graph)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "$HOME/.venv/lib/python3.12/site-packages/txtai/embeddings/base.py", line 401, in batchsearch
    results = Search(self, indexids=graph)(queries, limit, weights, index, parameters)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "$HOME/.venv/lib/python3.12/site-packages/txtai/embeddings/search/base.py", line 82, in __call__
    return self.search(queries, limit, weights, index)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "$HOME/.venv/lib/python3.12/site-packages/txtai/embeddings/search/base.py", line 107, in search
    dense = self.dense(queries, limit * 10 if hybrid else limit) if self.ann else None
            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "$HOME/.venv/lib/python3.12/site-packages/txtai/embeddings/search/base.py", line 183, in dense
    results = self.ann.search(embeddings, limit)
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "$HOME/.venv/lib/python3.12/site-packages/txtai/ann/dense/faiss.py", line 81, in search
    self.backend.nprobe = self.nprobe()
    ^^^^^^^^^^^^^^^^^^^
  File "$HOME/.venv/lib/python3.12/site-packages/faiss/class_wrappers.py", line 253, in replacement_setattr
    raise AttributeError(
AttributeError: 'IndexIDMap' object has no attribute 'nprobe'.

List of all installed packages:

$ uv pip list
Package                  Version
------------------------ ----------
certifi                  2025.11.12
charset-normalizer       3.4.4
faiss-cpu                1.13.0
filelock                 3.20.0
fsspec                   2025.10.0
hf-xet                   1.2.0
huggingface-hub          0.36.0
idna                     3.11
jinja2                   3.1.6
markupsafe               3.0.3
mpmath                   1.3.0
msgpack                  1.1.2
networkx                 3.5
numpy                    2.3.5
nvidia-cublas-cu12       12.8.4.1
nvidia-cuda-cupti-cu12   12.8.90
nvidia-cuda-nvrtc-cu12   12.8.93
nvidia-cuda-runtime-cu12 12.8.90
nvidia-cudnn-cu12        9.10.2.21
nvidia-cufft-cu12        11.3.3.83
nvidia-cufile-cu12       1.13.1.3
nvidia-curand-cu12       10.3.9.90
nvidia-cusolver-cu12     11.7.3.90
nvidia-cusparse-cu12     12.5.8.93
nvidia-cusparselt-cu12   0.7.1
nvidia-nccl-cu12         2.27.5
nvidia-nvjitlink-cu12    12.8.93
nvidia-nvshmem-cu12      3.3.20
nvidia-nvtx-cu12         12.8.90
packaging                25.0
pyyaml                   6.0.3
regex                    2025.11.3
requests                 2.32.5
safetensors              0.6.2
setuptools               80.9.0
sympy                    1.14.0
tokenizers               0.22.1
torch                    2.9.1
tqdm                     4.67.1
transformers             4.57.1
triton                   3.5.1
txtai                    9.1.0
typing-extensions        4.15.0
urllib3                  2.5.0

With faiss-cpu in version 1.12 it works fine.

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions