Skip to main content

fse-haystack

Prepared, unpublished Haystack integration for fse 2.0. Version 0.1.0 will be published only after fse 2.0.0 and separate maintainer approval. This package lives in integrations/fse-haystack/ in the fse repository.

This package depends on fse and haystack-ai only. Framework dependencies never enter fse core. This package has its own CI environment and release workflow.

Use

After an fse 2.0 build and this package are installed:

from haystack import Document
from haystack_integrations.components.embedders.fse import (
    FseDocumentEmbedder,
    FseTextEmbedder,
)

query_embedder = FseTextEmbedder(model="minishlab/potion-base-8M", workers=1)
query_embedder.warm_up()
query = query_embedder.run(text="hello world")["embedding"]
document_embedder = FseDocumentEmbedder(workers=1, batch_size=128)
document_embedder.warm_up()
documents = document_embedder.run(documents=[Document(content="hello world")])["documents"]

For an existing local model, pass encoder=your_encoder, built for example with fse.Encoder.from_arrays. No download occurs with an injected encoder.

The @component classes expose embedding and documents output sockets. They implement run_async as well. Call warm_up() before standalone execution. Haystack pipelines call warm-up themselves. Document calls use batches of at most batch_size texts, preserving input order. Every document must have text content. The document embedder returns new documents and preserves IDs and metadata. It embeds content only, without metadata concatenation or implicit query prefixes.

Pipeline serialization stores model and loader options, never the loaded encoder. An injected encoder cannot be serialized. Save it first, then use its local path as model. Serialization rejects an explicit Hub token to avoid saving credentials. Follow the community integration guide for a later listing. No listing is submitted in this preparation.

Framework baseline and guides

The supported minimum for version 0.1.0 is haystack-ai==3.4.1, the current stable release checked on 2026-11-01 from PyPI. This is our tested minimum and makes no compatibility claim for older framework releases. The runtime dependency allows later versions. Recheck compatibility before publication.

The implementation follows the official integration guide.

Options and behavior

load_kwargs passes options unchanged to Encoder.from_pretrained. load_kwargs={"normalize": False} returns raw means for every supported model, including fse artifacts, Model2Vec and supported sentence-transformers models. normalize="model" (the default) preserves the model's normalization rule. For example, {"revision": "<commit>", "local_files_only": True} selects a Hub revision and offline loading after the files have been cached. Hub-only options (revision, token, cache_dir, local_files_only) are invalid for local paths. See the fse loader contract. Do not pass load_kwargs with encoder=. Configure that encoder before injection. Use the Hub credential store rather than putting tokens in application configuration.

dtype="float32" (default) or "float16" controls fse output precision. workers=None uses fse's worker policy. workers=1 requests one worker. The adapter passes text and worker validation to fse without replacing its errors. Integer embeddings are unsupported because this interface requires float vectors.

Every result converts a numpy array into Python float lists. This copies values and allocates Python objects, so it takes additional time and memory. It does not retain the array's compact float16 or float32 storage. Empty text and unknown tokens follow the loaded encoder's tokenizer rules. Async methods delegate encoding and list conversion to a thread. Construct models before serving async requests. Haystack also provides warm_up_async() so async pipelines can load outside the event loop.

Development

Use standard Python 3.13. From this package directory in the fse checkout:

uv venv --python 3.13 .venv
SETUPTOOLS_SCM_PRETEND_VERSION_FOR_FSE=2.0.0 \
  uv pip install --python .venv/bin/python -e '../..' -e '.[test]'
.venv/bin/python -m pytest -m 'not network'
.venv/bin/python -m pytest -m network
uv build --out-dir dist
.venv/bin/python examples/retrieval.py

The version override labels the development checkout for dependency resolution. It does not create a tag, release or published package.

The declared requirement is fse>=2.0.0. The version override tests the local unreleased checkout without weakening the published dependency. The network test downloads minishlab/potion-base-8M. Offline tests build a tiny local encoder with Encoder.from_arrays and compare vectors with fse directly. Tests disable Python network sockets by default and enable them for the marked network test. No model upload or paid service is needed.

CI and release

The isolated CI job tests Python 3.11 with the minimum framework and Python 3.13 with the latest framework. Network tests and the real-model retrieval example run only when requested locally. See release setup for the package tag, approval environment and pending PyPI publisher.

AI assistance

These package sources, tests and documentation were prepared with AI assistance using Codex. Validation uses offline vector parity, framework API tests and the real-model retrieval example. The maintainer remains responsible for review and maintenance. Publication and framework listing submissions require a separate maintainer decision.

Metadata

Release files for fse-haystack 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fse-haystack 0.1.0
File Size Uploaded Provenance Actions
fse_haystack-0.1.0.tar.gz 8.6 kB With provenance Details for fse_haystack-0.1.0.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for fse-haystack 0.1.0
File Interpreter ABI Platform Actions
fse_haystack-0.1.0-py3-none-any.whl Python 3 none any Details for fse_haystack-0.1.0-py3-none-any.whl

Total release size: 15.0 kB

Release files / fse_haystack-0.1.0.tar.gz

Download URL fse_haystack-0.1.0.tar.gz
Size 8.6 kB
Tags Source
SHA-256 checksum
How to use checksums
87f53d1de0cef8d5f622cc876a1225a34d55aa7e03c9bfef76b8e9a6d6e93964
BLAKE2b-256 checksum
How to use checksums
ab806f857afd2e03f978853ad7fce036596e256671663ef8f7ec9340f25a1f94
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 2, 2026.

Transparency log

Release files / fse_haystack-0.1.0-py3-none-any.whl

Download URL fse_haystack-0.1.0-py3-none-any.whl
Size 6.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
617e4fae2f89de350f118d8fe7dc119c5c8a8e5dc15ce7f1cb30c552978516e6
BLAKE2b-256 checksum
How to use checksums
7b03af94b9f0d4f6d6a8170b6792d73f34f318677d8002fd703bcd1ea37a0d03
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.16

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 2, 2026.

Transparency log

Security for fse-haystack 0.1.0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

Both files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for fse_haystack-0.1.0.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Nov 2, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files Full provenance

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page