Agents & Multi-Agent

txtai: Semantic Search, RAG and Language Model Workflow Framework

neuml/txtai

txtai is a Python-based AI framework for semantic and vector search, retrieval-augmented generation, LLM orchestration, autonomous agents and multimodal language-model workflows.

★ 12.8KStars
⑂ 851Forks
7Open issues
PythonLanguage
Apache-2.0License
Q@project.QualityScoreEditorial score

Overview

The framework centers on an embeddings database that combines sparse and dense vector indexes, graph networks and relational databases. This foundation can support search applications or provide knowledge context to LLM applications. Higher-level pipelines, workflows and agents add capabilities such as prompting, question answering, labeling, transcription, translation and summarization. Applications can run locally or use container orchestration for scaling.

Key features

  • Sparse and dense vector search with SQL integration
  • Relational, graph and object-storage capabilities around an embeddings database
  • Embedding generation for text, documents, audio, images and video
  • Topic modeling, graph analysis and multimodal indexing
  • Pipelines for LLM prompts, question answering, labeling, transcription, translation and summarization
  • Workflows that connect pipelines and aggregate application logic
  • Agents built on smolagents that can coordinate tools, workflows and other agents
  • Retrieval-augmented generation and knowledge-graph workflows
  • Web and Model Context Protocol APIs
  • Bindings for JavaScript, Java, Rust and Go
  • Local execution and container-orchestrated deployment options

Requirements, installation and quick start

Install from PyPI with `pip install txtai`. Python 3.10+ is required, and a virtual environment is recommended. Detailed guidance for optional dependencies, source installation, conda, minimal installations and containers is available at https://neuml.github.io/txtai/install.

Usage

Minimal Python quick start: `import txtai`; create `embeddings = txtai.Embeddings()`; index records with `embeddings.index(["Correct", "Not what we hoped"])`; then query with `embeddings.search("positive", 1)`. An API can be configured in YAML with an embeddings model path and served through `uvicorn "txtai.api:app"`; the README demonstrates querying its `/search` endpoint. Additional examples are available at https://neuml.github.io/txtai/examples.

Model compatibility and use cases

Models can be loaded from a Hugging Face Hub path or a local directory, with defaults used when paths are omitted. The repository lists support for Hugging Face models, llama.cpp, and OpenAI, Claude and AWS Bedrock through LiteLLM in agent contexts. Recommended task models listed in the README include all-MiniLM-L6-v2 for embeddings, BLIP for image captions, DeBERTa v3 Zeroshot for zero-shot labels, Gemma 4 31B for LLM use, DistilBART for summarization, ESPnet JETS for text-to-speech, Whisper for transcription and the OPUS model series for translation.

License and risk notes

The repository metadata identifies the license as Apache-2.0, and the README describes txtai as open source under the Apache 2.0 license. Review the repository license and the separate licenses or usage terms of any models, datasets and external services selected for an application.

Release and maintenance

The supplied README links to articles covering txtai 9.0, 8.0, 7.0, 6.0, 5.0 and 4.0, as well as the GitHub releases page. The current release version and release date are not stated in the repository metadata. Releases: https://github.com/neuml/txtai/releases

Firecrawl

firecrawl/firecrawl

★ 161.1KTypeScript

LangChain

langchain-ai/langchain

★ 143.6KPython

RAGFlow

infiniflow/ragflow

★ 86.7KGo