Skip to content

API

api 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 Open In Colab