API
txtai 提供了一个功能齐全的 API,由 FastAPI 提供支持,可以为任何 txtai 进程选择性地启用。txtai 中的所有功能都可以通过 API 访问。
以下是 API 的一个配置和启动脚本示例。
注意:此配置文件启用所有功能。对于内存受限的系统,最佳实践是将流水线拆分为多个实例。
# Index file path
path: /tmp/index
# Allow indexing of documents
writable: True
# Enbeddings index
embeddings:
path: sentence-transformers/nli-mpnet-base-v2
# Extractive QA
extractor:
path: distilbert-base-cased-distilled-squad
# Zero-shot labeling
labels:
# Similarity
similarity:
# Text segmentation
segmentation:
sentences: true
# Text summarization
summary:
# Text extraction
textractor:
paragraphs: true
minlength: 100
join: true
# Transcribe audio to text
transcription:
# Translate text between languages
translation:
# Workflow definitions
workflow:
sumfrench:
tasks:
- action: textractor
task: url
- action: summary
- action: translation
args: ["fr"]
sumspanish:
tasks:
- action: textractor
task: url
- action: summary
- action: translation
args: ["es"]
假设此 YAML 内容存储在一个名为 config.yml 的文件中,则以下命令启动 API 进程。
CONFIG=config.yml uvicorn "txtai.api:app"
Uvicorn 是一个功能齐全且生产就绪的服务器。有关更多配置选项,请参阅 Uvicorn 部署指南。
连接到 API
API 的默认端口是 8000。请参阅上面的 uvicorn 链接以更改此设置。
txtai 有许多抽象了 API 的语言绑定(见下文链接)。另外,也可以编写代码直接连接到 API。运行中实例的文档可在 /docs
URL 找到(即 http://localhost:8000/docs)。以下示例使用 cURL 运行工作流。
curl \
-X POST "http://localhost:8000/workflow" \
-H "Content-Type: application/json" \
-d '{"name":"sumfrench", "elements": ["https://github.com/neuml/txtai"]}'
本地实例
可以实例化本地实例。在这种情况下,txtai 应用程序在内部运行,无需任何网络连接,提供相同的功能集合。这使得可以在 Python 中使用配置运行 txtai。
上面的配置可以在 Python 中运行,使用
from txtai import Application
# Load and run workflow
app = Application(config.yml)
app.workflow("sumfrench", ["https://github.com/neuml/txtai"])
有关完整的方法列表,请参阅此链接。
使用容器运行
API 可以容器化并运行。这样就可以启动一个 API 实例,而无需在您的机器上安装 Python、txtai 或任何依赖项!
支持的语言绑定
以下编程语言具有与 txtai API 的绑定
API 还支持托管OpenAI 兼容和模型上下文协议(MCP)端点。
请参阅以下链接,获取涵盖 API 的详细示例。
Notebook | 描述 | |
---|---|---|
API 示例集 | 在 JavaScript、Java、Rust 和 Go 中使用 txtai | |
分布式嵌入集群 | 将嵌入索引分布到多个数据节点上 | |
云端嵌入 | 从 Hugging Face Hub 加载和使用嵌入索引 | |
自定义 API 端点 | 使用自定义端点扩展 API | |
API 授权与认证 | 向 API 添加授权、认证和中间件依赖项 | |
OpenAI 兼容 API | 使用标准的 OpenAI 客户端库连接到 txtai |