API
txtai 拥有一个功能齐全的 API,由 FastAPI 支持,可以为任何 txtai 进程选择性地启用。txtai 中的所有功能都可以通过 API 访问。
以下是 API 的示例配置和启动脚本。
注意:此配置文件启用了所有功能。对于内存受限的系统,将管道拆分为多个实例是最佳实践。
# 索引文件路径
path: /tmp/index
# 允许索引文档
writable: True
# 嵌入索引
embeddings:
path: sentence-transformers/nli-mpnet-base-v2
# 提取式问答
extractor:
path: distilbert-base-cased-distilled-squad
# 零样本标签
labels:
# 相似度
similarity:
# 文本分段
segmentation:
sentences: true
# 文本摘要
summary:
# 文本提取
textractor:
paragraphs: true
minlength: 100
join: true
# 将音频转录为文本
transcription:
# 在语言之间翻译文本
translation:
# 工作流定义
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
# 加载并运行工作流
app = Application(config.yml)
app.workflow("sumfrench", ["https://github.com/neuml/txtai"])
请参阅此 链接以获取完整的方法列表。
使用容器运行
API 可以容器化并运行。这将启动一个 API 实例,而无需在您的机器上安装 Python、txtai 或任何依赖项!
支持的语言绑定
以下编程语言与 txtai API 有绑定:
请参阅下面的链接以获取详细示例,了解如何使用 API。
Notebook | 描述 | |
---|---|---|
API Gallery | 在 JavaScript、Java、Rust 和 Go 中使用 txtai |