txtai

💡 All-in-one open-source AI framework for semantic search, LLM orchestration and language model workflows

https://github.com/neuml/txtai

Science Score: 64.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: scholar.google
  • Committers with academic emails
    2 of 19 committers (10.5%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.5%) to scientific vocabulary

Keywords

ai artificial-intelligence embeddings information-retrieval language-model large-language-models llm machine-learning nlp python rag retrieval-augmented-generation search search-engine semantic-search sentence-embeddings transformers txtai vector-database vector-search

Keywords from Contributors

cryptocurrencies optim agents multi-agents vectors distributed trade cryptography jax transformer
Last synced: 6 months ago · JSON representation ·

Repository

💡 All-in-one open-source AI framework for semantic search, LLM orchestration and language model workflows

Basic Info
Statistics
  • Stars: 11,474
  • Watchers: 110
  • Forks: 730
  • Open Issues: 9
  • Releases: 51
Topics
ai artificial-intelligence embeddings information-retrieval language-model large-language-models llm machine-learning nlp python rag retrieval-augmented-generation search search-engine semantic-search sentence-embeddings transformers txtai vector-database vector-search
Created over 5 years ago · Last pushed 6 months ago
Metadata Files
Readme License Citation

README.md

All-in-one AI framework

Version GitHub last commit GitHub issues Join Slack Build Status Coverage Status

txtai is an all-in-one AI framework for semantic search, LLM orchestration and language model workflows.

architecture architecture

The key component of txtai is an embeddings database, which is a union of vector indexes (sparse and dense), graph networks and relational databases.

This foundation enables vector search and/or serves as a powerful knowledge source for large language model (LLM) applications.

Build autonomous agents, retrieval augmented generation (RAG) processes, multi-model workflows and more.

Summary of txtai features:

  • 🔎 Vector search with SQL, object storage, topic modeling, graph analysis and multimodal indexing
  • 📄 Create embeddings for text, documents, audio, images and video
  • 💡 Pipelines powered by language models that run LLM prompts, question-answering, labeling, transcription, translation, summarization and more
  • ↪️️ Workflows to join pipelines together and aggregate business logic. txtai processes can be simple microservices or multi-model workflows.
  • 🤖 Agents that intelligently connect embeddings, pipelines, workflows and other agents together to autonomously solve complex problems
  • ⚙️ Web and Model Context Protocol (MCP) APIs. Bindings available for JavaScript, Java, Rust and Go.
  • 🔋 Batteries included with defaults to get up and running fast
  • ☁️ Run local or scale out with container orchestration

txtai is built with Python 3.10+, Hugging Face Transformers, Sentence Transformers and FastAPI. txtai is open-source under an Apache 2.0 license.

Interested in an easy and secure way to run hosted txtai applications? Then join the txtai.cloud preview to learn more.

Why txtai?

why why

New vector databases, LLM frameworks and everything in between are sprouting up daily. Why build with txtai?

  • Up and running in minutes with pip or Docker ```python # Get started in a couple lines import txtai

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

[(0, 0.29862046241760254)]

- Built-in API makes it easy to develop applications using your programming language of choice yaml

app.yml

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" ``` - Run local - no need to ship data off to disparate remote services - Work with micromodels all the way up to large language models (LLMs) - Low footprint - install additional dependencies and scale up when needed - Learn by example - notebooks cover all available functionality

Use Cases

The following sections introduce common txtai use cases. A comprehensive set of over 60 example notebooks and applications are also available.

Semantic Search

Build semantic/similarity/vector/neural search applications.

demo

Traditional search systems use keywords to find data. Semantic search has an understanding of natural language and identifies results that have the same meaning, not necessarily the same keywords.

search search

Get started with the following examples.

| Notebook | Description | | |:----------|:-------------|------:| | Introducing txtai ▶️ | Overview of the functionality provided by txtai | Open In Colab | | Similarity search with images | Embed images and text into the same space for search | Open In Colab | | Build a QA database | Question matching with semantic search | Open In Colab | | Semantic Graphs | Explore topics, data connectivity and run network analysis| Open In Colab |

LLM Orchestration

Autonomous agents, retrieval augmented generation (RAG), chat with your data, pipelines and workflows that interface with large language models (LLMs).

llm

See below to learn more.

| Notebook | Description | | |:----------|:-------------|------:| | Prompt templates and task chains | Build model prompts and connect tasks together with workflows | Open In Colab | | Integrate LLM frameworks | Integrate llama.cpp, LiteLLM and custom generation frameworks | Open In Colab | | Build knowledge graphs with LLMs | Build knowledge graphs with LLM-driven entity extraction | Open In Colab | | Parsing the stars with txtai | Explore an astronomical knowledge graph of known stars, planets, galaxies | Open In Colab |

Agents

Agents connect embeddings, pipelines, workflows and other agents together to autonomously solve complex problems.

agent

txtai agents are built on top of the smolagents framework. This supports all LLMs txtai supports (Hugging Face, llama.cpp, OpenAI / Claude / AWS Bedrock via LiteLLM).

See the link below to learn more.

| Notebook | Description | | |:----------|:-------------|------:| | Analyzing Hugging Face Posts with Graphs and Agents | Explore a rich dataset with Graph Analysis and Agents | Open In Colab | | Granting autonomy to agents | Agents that iteratively solve problems as they see fit | Open In Colab | | Analyzing LinkedIn Company Posts with Graphs and Agents | Exploring how to improve social media engagement with AI | Open In Colab |

Retrieval augmented generation

Retrieval augmented generation (RAG) reduces the risk of LLM hallucinations by constraining the output with a knowledge base as context. RAG is commonly used to "chat with your data".

rag rag

A novel feature of txtai is that it can provide both an answer and source citation.

| Notebook | Description | | |:----------|:-------------|------:| | Build RAG pipelines with txtai | Guide on retrieval augmented generation including how to create citations | Open In Colab | | Chunking your data for RAG | Extract, chunk and index content for effective retrieval | Open In Colab | | Advanced RAG with graph path traversal | Graph path traversal to collect complex sets of data for advanced RAG | Open In Colab | | Speech to Speech RAG ▶️ | Full cycle speech to speech workflow with RAG | Open In Colab |

Language Model Workflows

Language model workflows, also known as semantic workflows, connect language models together to build intelligent applications.

flows flows

While LLMs are powerful, there are plenty of smaller, more specialized models that work better and faster for specific tasks. This includes models for extractive question-answering, automatic summarization, text-to-speech, transcription and translation.

| Notebook | Description | | |:----------|:-------------|------:| | Run pipeline workflows ▶️ | Simple yet powerful constructs to efficiently process data | Open In Colab | | Building abstractive text summaries | Run abstractive text summarization | Open In Colab | | Transcribe audio to text | Convert audio files to text | Open In Colab | | Translate text between languages | Streamline machine translation and language detection | Open In Colab |

Installation

install install

The easiest way to install is via pip and PyPI

pip install txtai

Python 3.10+ is supported. Using a Python virtual environment is recommended.

See the detailed install instructions for more information covering optional dependencies, environment specific prerequisites, installing from source, conda support and how to run with containers.

Model guide

models

See the table below for the current recommended models. These models all allow commercial use and offer a blend of speed and performance.

| Component | Model(s) | | ----------------------------------------------------------------------------- | ------------------------------------------------------------------------ | | Embeddings | all-MiniLM-L6-v2 | | Image Captions | BLIP | | Labels - Zero Shot | BART-Large-MNLI | | Labels - Fixed | Fine-tune with training pipeline | | Large Language Model (LLM) | Llama 3.1 Instruct | | Summarization | DistilBART | | Text-to-Speech | ESPnet JETS | | Transcription | Whisper | | Translation | OPUS Model Series |

Models can be loaded as either a path from the Hugging Face Hub or a local directory. Model paths are optional, defaults are loaded when not specified. For tasks with no recommended model, txtai uses the default models as shown in the Hugging Face Tasks guide.

See the following links to learn more.

Powered by txtai

The following applications are powered by txtai.

apps

| Application | Description | |:------------ |:-------------| | rag | Retrieval Augmented Generation (RAG) application | | ragdata | Build knowledge bases for RAG | | paperai | AI for medical and scientific papers | | annotateai | Automatically annotate papers with LLMs |

In addition to this list, there are also many other open-source projects, published research and closed proprietary/commercial projects that have built on txtai in production.

Further Reading

further further

Documentation

Full documentation on txtai including configuration settings for embeddings, pipelines, workflows, API and a FAQ with common questions/issues is available.

Contributing

For those who would like to contribute to txtai, please see this guide.

Owner

  • Name: NeuML
  • Login: neuml
  • Kind: organization
  • Location: Washington, DC Metro

Applying machine learning to solve everyday problems

Citation (CITATION.cff)

cff-version: 1.2.0
date-released: 2020-08-11
message: "If you use this software, please cite it as below."
title: "txtai: the all-in-one AI framework"
abstract: "txtai is an all-in-one open-source AI framework for semantic search, LLM orchestration and language model workflows"
url: "https://github.com/neuml/txtai"
authors:
- family-names: "Mezzetti"
  given-names: "David"
  affiliation: NeuML
license: Apache-2.0

Committers

Last synced: 9 months ago

All Time
  • Total Commits: 1,603
  • Total Committers: 19
  • Avg Commits per committer: 84.368
  • Development Distribution Score (DDS): 0.019
Past Year
  • Commits: 316
  • Committers: 5
  • Avg Commits per committer: 63.2
  • Development Distribution Score (DDS): 0.016
Top Committers
Name Email Commits
davidmezzetti 5****i 1,573
Yash Datta y****0@c****u 4
Yash Datta y****0@c****u 4
0206pdh 7****h 2
0xflotus 0****s@g****m 2
Azam Din 4****6 2
Ikko Eltociear Ashimine e****r@g****m 2
csheargm c****m@g****m 2
hsm207 h****7 2
hi019 6****9 1
Grant Sherrick a****k@g****m 1
Ian Wilson i****n@a****i 1
Igor Ribeiro Lima l****o@g****m 1
Jeff j****r@s****m 1
Jerome j****e@p****t 1
Nelson Chu c****u@g****m 1
Tibor Lipusz t****z@l****m 1
a0346f102085fe9f 7****f 1
cstech-carl-camilleri 6****i 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 536
  • Total pull requests: 39
  • Average time to close issues: 24 days
  • Average time to close pull requests: 6 days
  • Total issue authors: 153
  • Total pull request authors: 19
  • Average comments per issue: 1.52
  • Average comments per pull request: 3.72
  • Merged pull requests: 21
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 165
  • Pull requests: 11
  • Average time to close issues: 6 days
  • Average time to close pull requests: 2 days
  • Issue authors: 38
  • Pull request authors: 6
  • Average comments per issue: 0.65
  • Average comments per pull request: 3.0
  • Merged pull requests: 6
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • davidmezzetti (319)
  • Vincent-liuwingsang (7)
  • nickchomey (6)
  • vnguye65 (6)
  • DenuwanClouda (6)
  • ccdv-ai (5)
  • akset2X (5)
  • obonyojimmy (4)
  • nicolas-geysse (4)
  • jridevapp (3)
  • ferpuyol (3)
  • dustyatx (3)
  • 4l1fe (3)
  • dcferreira (2)
  • rickknowles-cognitant (2)
Pull Request Authors
  • babinux (4)
  • thealmightygrant (4)
  • eltociear (4)
  • saucam (3)
  • a0346f102085fe9f (2)
  • ianawilson (2)
  • Anush008 (2)
  • igorlima (2)
  • yukiman76 (2)
  • lwsinclair (2)
  • ivanmilevtues (2)
  • denis-gordeev (2)
  • hsm207 (2)
  • kursataktas (1)
  • kaushalpowar (1)
Top Labels
Issue Labels
bug (68) good first issue (1)
Pull Request Labels
bug (4)

Packages

  • Total packages: 2
  • Total downloads:
    • pypi 19,716 last-month
  • Total docker downloads: 114
  • Total dependent packages: 13
    (may contain duplicates)
  • Total dependent repositories: 14
    (may contain duplicates)
  • Total versions: 102
  • Total maintainers: 1
pypi.org: txtai

All-in-one open-source AI framework for semantic search, LLM orchestration and language model workflows

  • Versions: 51
  • Dependent Packages: 13
  • Dependent Repositories: 14
  • Downloads: 19,716 Last month
  • Docker Downloads: 114
Rankings
Stargazers count: 0.4%
Dependent packages count: 0.8%
Average: 2.3%
Forks count: 2.7%
Downloads: 2.8%
Docker downloads count: 3.5%
Dependent repos count: 3.9%
Maintainers (1)
Last synced: 6 months ago
proxy.golang.org: github.com/neuml/txtai
  • Versions: 51
  • Dependent Packages: 0
  • Dependent Repositories: 0
Rankings
Dependent packages count: 7.0%
Average: 8.2%
Dependent repos count: 9.3%
Last synced: 6 months ago

Dependencies

.github/workflows/build.yml actions
  • actions/checkout v3 composite
  • actions/setup-java v3 composite
  • actions/setup-python v4 composite
  • pre-commit/action v3.0.0 composite
.github/workflows/docs.yml actions
  • actions/checkout v3 composite
  • actions/setup-python v4 composite
docker/api/Dockerfile docker
  • $BASE_IMAGE latest build
docker/aws/Dockerfile docker
  • $BASE_IMAGE latest build
docker/base/Dockerfile docker
  • $BASE_IMAGE latest build
docker/schedule/Dockerfile docker
  • $BASE_IMAGE latest build
docker/workflow/Dockerfile docker
  • $BASE_IMAGE latest build
pyproject.toml pypi
setup.py pypi