# txtai: An All-in-One AI Framework for Semantic Search and LLM Orchestration

> txtai is a Python library that combines a vector embeddings database, an LLM pipeline system, and an agent framework into a single package built on Hugging Face Transformers and FastAPI. NeuML, the company behind it, positions it as an alternative to assembling separate components from multiple frameworks.

**neuml/txtai** — 💡 All-in-one AI framework for semantic search, LLM orchestration and language model workflows

- Repository: https://github.com/neuml/txtai
- Website: https://neuml.github.io/txtai
- Stars: 12,956 · Forks: 891
- Language: Python
- License: Apache-2.0
- Published: 2026-09-09 · Updated: 2026-09-09 · Language: en
- Canonical page: https://hysenlabs.com/projects/neuml-txtai

## What txtai Solves and Its Target Developer Profile

txtai targets Python developers who need to combine vector search with LLM-based processing but want to avoid managing separate installations for a vector database, a model inference layer, and an API framework. The README describes the key component as an embeddings database, which combines vector indexes (both sparse and dense), graph networks, and a relational database layer in a single abstraction.

The intended workloads are semantic search applications, retrieval augmented generation (RAG) pipelines, autonomous agent systems that call tools, multi-model workflows that chain different task types, and applications that run locally without sending data to remote services. The README specifically calls out local operation as a design goal, which matters for teams with data residency constraints.

NeuML is the company behind txtai. The README notes that NeuML provides AI consulting services and is building a hosted application platform at txtai.cloud. This commercial backing is relevant because it affects the project's maintenance incentives and longevity compared to a purely volunteer-maintained project.

## The Embeddings Database: Vector Indexes, Graphs, and SQL Together

The central abstraction is the embeddings database, which makes txtai different from a plain wrapper around faiss or another single index. The database layers a vector index for similarity search, a graph network for topic and connectivity analysis, and a relational SQL layer on top, all addressable through a unified query interface.

The library can index text, documents, audio, images, and video. The vector search supports SQL queries against metadata stored alongside the embeddings, which allows filtering by field values alongside semantic similarity. Topic modelling and graph analysis operate on the same index without requiring separate extraction steps.

The quickstart in the README shows how little code the default case requires:

```python
import txtai

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

The default configuration uses an in-memory index with no external dependencies beyond the base install. Switching to a specific vector backend such as Milvus, pgvector, or hnswlib requires installing the ann extra (pip install txtai[ann]) and configuring the backend in a YAML application file.

## The API Layer and Deploying as a Web Service

txtai includes a built-in FastAPI-based web service that exposes the embeddings database and pipelines over HTTP. Defining a configuration in a YAML file and starting uvicorn is all that is required:

```yaml
embeddings:
    path: sentence-transformers/all-MiniLM-L6-v2
```

```bash
CONFIG=app.yml uvicorn "txtai.api:app"
curl -X GET "http://localhost:8000/search?query=positive"
```

The API extra (pip install txtai[api]) installs FastAPI, uvicorn, and fastapi-mcp. The MCP endpoint is included through fastapi-mcp, which means the running API can also respond to MCP clients.

Language bindings for JavaScript, Java, Rust, and Go are maintained as separate repositories: txtai.js, txtai.java, txtai.rs, and txtai.go. These bindings communicate with the HTTP API, so a Python service running txtai can serve clients written in any of these languages. The base Python install starts at around 100 MB due to PyTorch and the transformer models; the actual model download happens at first use and depends on the model selected.

## Pipelines, Workflows, and the Agent Framework

Beyond vector search, txtai includes a pipeline layer for LLM-based tasks. Individual pipelines handle specific tasks: running LLM prompts, question-answering, zero-shot labelling, speech transcription, text translation, and summarisation. Each pipeline wraps a Hugging Face model or an external LLM API call into a consistent interface.

Workflows chain pipelines together to form multi-step data processing applications. A simple workflow might transcribe audio, translate the result, then index the translated text for search. Workflows can be defined in YAML or Python and run as microservices.

The agent framework, available through pip install txtai[agent], connects the embeddings database, pipelines, and external tools into autonomous agents. The agent extra depends on smolagents and includes MCP support through the mcp package. This means an agent can call MCP tools from other servers alongside txtai's own tools.

The README references over 70 example notebooks organised by topic area: semantic search, LLM orchestration, pipelines, and applied natural language processing. The Makefile in the repository drives test discovery across test suites for each component, including testann, testapi, testembeddings, testgraph, testpipeline, and others.

## How txtai Compares to LlamaIndex

LlamaIndex is the most frequently compared alternative in the search data for this project. Both provide RAG infrastructure in Python and both sit on top of Hugging Face Transformers and similar model loading paths. The design philosophies differ. LlamaIndex organises its architecture around data loaders, indexes, and query engines, with an extensive catalogue of connectors for external data sources and vector stores. txtai organises its architecture around the embeddings database as a unified object that combines vector, graph, and relational access patterns.

LlamaIndex's connector catalogue is broader: it ships integrations for Pinecone, Weaviate, Chroma, Qdrant, and many other vector stores as first-party packages. txtai's ann extra includes Milvus, pgvector, sqlite-vec, and several in-process libraries, but not the cloud-hosted vector databases that LlamaIndex supports. Teams already using a specific hosted vector database will find LlamaIndex has the connector ready, whereas txtai may require a custom integration.

The advantage txtai claims is the bundled API layer, the unified embeddings database model, and multimodal indexing of audio and images alongside text. LlamaIndex's built-in multimodal support exists but requires different index types than the main text pipeline.

## Maintenance Pace, Version History, and Apache 2.0 Licensing

The last push to the master branch was on 2026-09-15, and the most recent release is v9.13.0 from 2026-08-27. The version numbering at v9.13.x signals a mature project with many release cycles behind it. Recent releases show a monthly cadence: v9.11.0, v9.12.0, and v9.13.0 shipped over an eight-week period in mid-2026.

The setup.py shows the base install requires PyTorch 2.4 or higher, Hugging Face Transformers 5.9.0 or higher, huggingface-hub 0.34.0 or higher, safetensors 0.4.5 or higher, and faiss-cpu 1.7.1 or higher. These are significant minimum versions, meaning the library tracks recent releases of its core dependencies. A project that pins old versions for stability will need to verify compatibility.

The project is licensed under Apache License 2.0. This is a permissive licence that allows commercial use, modification, and redistribution without copyleft obligations. The CITATION.cff file in the repository provides a formal citation format for academic use.

## Conclusion

Python developers who want to build semantic search, RAG, or multi-model agent workflows without integrating LangChain and a separate vector database will find txtai reduces the component count significantly. The embeddings database, pipeline system, and FastAPI layer are all in one install, and over 70 example notebooks cover most common use cases. Teams who need a specific vector database such as Pinecone or Weaviate as their production store, or who are already invested in LangChain's ecosystem of integrations, will find txtai's built-in options may not match their existing infrastructure. Verify that the ann extras for your preferred vector backend are available before committing to the architecture.

## FAQ

### How does txtai compare to LlamaIndex?

Both provide RAG and semantic search infrastructure in Python on top of Hugging Face Transformers. txtai centres on its embeddings database that combines vector, graph, and relational access in one object, plus a built-in FastAPI layer. LlamaIndex has a broader catalogue of connectors for cloud-hosted vector databases like Pinecone and Weaviate, which txtai does not natively support.

### What are the main alternatives to txtai?

LlamaIndex and LangChain are the closest alternatives, both providing Python frameworks for LLM-based applications with vector search. They offer larger integration ecosystems for cloud vector databases. For pure semantic search without the LLM orchestration layer, Sentence Transformers with a standalone vector store is a simpler option.

### How do I install txtai and start a semantic search index?

Run pip install txtai to get the base package including PyTorch, Hugging Face Transformers, and faiss-cpu. Then import txtai, create an Embeddings() instance, call index() with a list of documents, and call search() to run a query. The default configuration stores the index in memory with no external database required.

## Sources

- [License: Apache-2.0](https://github.com/neuml/txtai/blob/master/LICENSE)
- [neuml/txtai on GitHub](https://github.com/neuml/txtai)
- [Project website](https://neuml.github.io/txtai)
- [README](https://github.com/neuml/txtai/blob/master/README.md)
- [Releases](https://github.com/neuml/txtai/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/neuml-txtai
