neuml/txtai
AI 工程面向语义搜索、RAG、LLM 工作流与智能体的 Python 一体化框架,核心是嵌入数据库。
项目介绍
txtai 是一个以「嵌入数据库」为核心的 Python 框架,把稀疏/稠密向量索引、图网络和关系数据库组合在一起。在这个索引之上,它提供语义搜索、调用语言模型的 pipeline、把多个 pipeline 串成工作流的 workflow,以及连接嵌入库、pipeline、workflow 的 agent。适合要搭建搜索、RAG 或多模型 NLP 应用、又希望本地运行的开发者,这样数据不必发往多个远程服务 项目介绍。
框架基于 Python 3.11+、Hugging Face Transformers、Sentence Transformers 和 FastAPI,采用 Apache-2.0 许可。另有 JavaScript、Java、Rust 和 Go 绑定,都通过内置 HTTP API 访问同一索引 GitHub 仓库。
快速使用
用 pip 安装后索引一小段文本:
pip install txtai
import txtai
embeddings = txtai.Embeddings()
embeddings.index(["Correct", "Not what we hoped"])
embeddings.search("positive", 1)
# [(0, 0.29862046241760254)]
默认会加载 sentence-transformers/all-MiniLM-L6-v2 嵌入模型,不需要指定模型路径。若要把同一索引暴露成 HTTP 服务,写一个 app.yml 并启动 FastAPI 应用:
embeddings:
path: sentence-transformers/all-MiniLM-L6-v2
CONFIG=app.yml uvicorn "txtai.api:app"
curl -X GET "http://localhost:8000/search?query=positive"
以上两段来自 README 的「Why txtai?」部分。安装指南涵盖可选依赖、conda、最小化安装、从源码安装和容器运行;示例页有 70 多个 notebook,其中包含可直接运行的 agent 快速上手脚本。
主要用法
- 语义搜索:覆盖文本、文档、音频、图片和视频,支持多模态索引,见图片搜索示例。
- LLM 编排:RAG、提示词模板、任务链和知识图谱抽取,见提示词模板与任务链。
- 智能体:基于 smolagents,可接 Hugging Face、llama.cpp,以及经 LiteLLM 接入的 OpenAI/Claude/AWS Bedrock,见 agent 快速上手。
- 语言模型工作流:抽取式问答、摘要、转写、翻译和文本转语音,见工作流示例。
使用约束
- 需要 Python 3.11 及以上,建议使用虚拟环境。
- LLM 后端、音频、图像和翻译等可选组件需要额外依赖,基础
pip install txtai不会全部装上;使用某类 pipeline 前应先核对安装指南。 - 模型从 Hugging Face Hub 或本地目录加载,首次使用需要联网下载并占用磁盘空间。README 给出了推荐模型表,模型路径可选是因为存在默认模型。
- 框架本身是小体积设计,但 LLM 和多模型工作流会消耗多少资源取决于所选模型,而不是 txtai 本身。
HotRepo 点评
在 2026-11-08 的 Python 日榜上,该项目当日新增 57 star,位列该语言榜第 7;总 star 13,126、fork 978,说明它是持续多年的项目而非新面孔。2022 至 2023 年的 Hacker News 帖子介绍过 5.0 到 5.2 版本,并讨论过提示驱动的向量搜索 Prompt-driven vector search with LLMs。该讨论中维护者澄清,示例用的是本地 Hugging Face FLAN-T5 模型加 Faiss 向量库,并非 GPT 嵌入 维护者回复,这与框架本地优先的设计一致。这几个帖子评论数只有 1 到 5 条,讨论不算充分,因此星数和内容丰富的示例文档是更有参考价值的采用信号。
本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。