文本AI
txtai 是一个集成了语义搜索、大语言模型编排和语言模型工作流的嵌入式数据库。所有功能都可以通过其 API 提供,并且该 API 支持 MCP。 文档:https://neuml.github.io/txtai/api/mcp/
服务介绍
txtai 是一个用于语义搜索、大语言模型编排和语言模型工作流的一体化嵌入式数据库。


嵌入式数据库是向量索引(稀疏和密集)、图网络和关系数据库的结合。
这一基础能够实现向量搜索,或作为大型语言模型(LLM)应用的强大知识来源。
构建自主代理、检索增强生成(RAG)流程、多模型工作流等。
txtai 功能概要:
- 🔎 向量搜索与 SQL、对象存储、主题建模、图分析和多模态索引
- 📄 为文本、文档、音频、图像和视频创建嵌入
- 💡 由语言模型驱动的管道,运行 LLM 提示、问答、标注、转录、翻译、摘要等
- ↪️ 将管道连接在一起并聚合业务逻辑的工作流程。txtai 进程可以是简单的微服务或多模型工作流程。
- 🤖 智能地将嵌入、管道、工作流和其他代理连接起来以自主解决复杂问题的代理
- ⚙️ Web 和模型上下文协议 (MCP) API。提供 JavaScript、Java、Rust 和 Go 的绑定。
- 🔋 包含默认设置,可快速启动并运行
- ☁️ 本地运行或通过容器编排进行扩展
txtai 是使用 Python 3.10+、Hugging Face Transformers、Sentence Transformers 和 FastAPI 构建的。txtai 在 Apache 2.0 许可下开源。
对运行托管的 txtai 应用程序有一种简单且安全的方法感兴趣?那么加入 txtai.cloud 预览以了解更多信息。
为什么选择 txtai?


新的向量数据库、LLM 框架以及介于两者之间的一切每天都层出不穷。为什么要用 txtai 构建?
# 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)]
- 内置 API 使使用您选择的编程语言开发应用程序变得容易
# app.yml
embeddings:
path: sentence-transformers/all-MiniLM-L6-v2
CONFIG=app.yml uvicorn "txtai.api:app"
curl -X GET "http://localhost:8000/search?query=positive"
- 本地运行 - 无需将数据发送到不同的远程服务
- 从小型模型到大型语言模型 (LLMs) 都可以处理
- 占用空间小 - 根据需要安装额外的依赖项并进行扩展
- 通过示例学习 - 笔记本涵盖所有可用功能
用例
以下部分介绍了常见的 txtai 用例。还提供了超过 60 个 示例笔记本和应用程序 的全面集合。
语义搜索
构建语义/相似性/向量/神经搜索应用程序。

传统的搜索系统使用关键词来查找数据。语义搜索理解自然语言,并识别具有相同含义但不一定具有相同关键词的结果。


开始使用以下示例。
| 笔记本 | 描述 | |
|---|---|---|
| 介绍 txtai ▶️ | 概述了txtai提供的功能 | |
| 基于图像的相似性搜索 | 将图像和文本嵌入到同一空间以进行搜索 | |
| 构建问答数据库 | 通过语义搜索匹配问题 | |
| 语义图 | 探索主题、数据连接性并运行网络分析 |
LLM 编排
自主代理、检索增强生成(RAG)、与您的数据聊天、与大型语言模型(LLMs)交互的管道和工作流。

请参阅下方了解更多内容。
| Notebook | 描述 | |
|---|---|---|
| Prompt 模板和任务链 | 构建模型提示并将任务通过工作流连接在一起 | |
| 集成 LLM 框架 | 集成 llama.cpp、LiteLLM 和自定义生成框架 | |
| 使用 LLM 构建知识图谱 | 使用 LLM 驱动的实体提取构建知识图谱 | |
| 用 txtai 解析星辰 | 探索已知恒星、行星、星系的天文知识图谱 |
代理
代理将嵌入、管道、工作流和其他代理连接在一起,以自主解决复杂问题。

txtai 代理基于 Transformers Agent 框架构建。这支持所有 txtai 支持的 LLM(Hugging Face、llama.cpp、通过 LiteLLM 的 OpenAI / Claude / AWS Bedrock)。
请参阅下面的链接以了解更多信息。
| 笔记本 | 描述 | |
|---|---|---|
| 使用图和代理分析Hugging Face帖子 | 使用图分析和代理探索一个丰富的数据集 | |
| 授予代理自主权 | 代理根据需要迭代解决问题 | |
| 使用图和代理分析LinkedIn公司帖子 | 探索如何利用AI提高社交媒体互动 |
检索增强生成
检索增强生成(RAG)通过将知识库作为上下文来限制输出,从而减少了大语言模型产生幻觉的风险。RAG通常用于“与您的数据聊天”。


txtai的一个新颖功能是它可以同时提供答案和来源引用。
| 笔记本 | 描述 | |
|---|---|---|
| 使用 txtai 构建 RAG 管道 | 关于检索增强生成的指南,包括如何创建引用 | |
| 为 RAG 分块你的数据 | 提取、分块和索引内容以实现有效检索 | |
| 通过图路径遍历实现高级 RAG | 通过图路径遍历收集复杂的数据集以实现高级 RAG | |
| 语音到语音 RAG ▶️ | 完整的语音到语音工作流程,结合 RAG |
语言模型工作流
语言模型工作流,也称为语义工作流,将语言模型连接在一起以构建智能应用程序。


尽管大型语言模型非常强大,但仍然有许多更小、更专业的模型在特定任务上表现得更好且更快。这包括用于抽取式问答、自动摘要、文本转语音、转录和翻译的模型。
| 笔记本 | 描述 | |
|---|---|---|
| 运行管道工作流 ▶️ | 简单但强大的结构,用于高效处理数据 | |
| 构建抽象文本摘要 | 运行抽象文本摘要 | |
| 将音频转录为文本 | 将音频文件转换为文本 | |
| 在不同语言之间翻译文本 | 简化机器翻译和语言检测 |
安装


最简单的安装方式是通过 pip 和 PyPI。
pip install txtai
支持 Python 3.10+。建议使用 Python 虚拟环境。
请参阅详细的安装说明,以获取更多关于可选依赖项、特定环境的先决条件、从源代码安装、conda 支持以及如何使用容器运行的信息。
模型指南

请参见下表中当前推荐的模型。这些模型都允许商业使用,并且在速度和性能上都有良好的平衡。
| 组件 | 模型(s) |
|---|---|
| 嵌入 | all-MiniLM-L6-v2 |
| 图像描述 | BLIP |
| 标签 - 零样本 | BART-Large-MNLI |
| 标签 - 固定 | 通过训练管道进行微调 |
| 大型语言模型 (LLM) | Llama 3.1 Instruct |
| 摘要 | DistilBART |
| 文本转语音 | ESPnet JETS |
| 转录 | Whisper |
| 翻译 | OPUS 模型系列 |
模型可以作为 Hugging Face Hub 的路径或本地目录加载。模型路径是可选的,未指定时将加载默认值。对于没有推荐模型的任务,txtai 使用 Hugging Face 任务指南中显示的默认模型。
请参阅以下链接以了解更多信息。
由 txtai 提供支持
以下应用程序由 txtai 支持。

| 应用程序 | 描述 |
|---|---|
| rag | 检索增强生成 (RAG) 应用程序 |
| ragdata | 构建 RAG 知识库 |
| paperai | 医学/科学论文的语义搜索和工作流程 |
| annotateai | 使用 LLM 自动标注论文 |
除了这个列表之外,还有许多其他的开源项目、已发表的研究以及闭源专有/商业项目在生产环境中基于txtai构建。
进一步阅读


- 介绍txtai:一站式嵌入数据库
- Hashnode上的教程系列 | dev.to
- txtai 8.0 新功能 | 7.0 | 6.0 | 5.0 | 4.0
- 开始使用语义搜索 | 工作流 | RAG
- 大规模运行txtai
- 向量搜索与RAG景观:通过txtai的回顾
文档
完整的txtai文档提供了包括嵌入配置、管道、工作流、API及常见问题解答等信息。
贡献
对于希望为txtai做贡献的人,请参阅此指南。