跳过内容

API

api 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 Open In Colab
分布式嵌入集群 将嵌入索引分布到多个数据节点上 Open In Colab
云端嵌入 从 Hugging Face Hub 加载和使用嵌入索引 Open In Colab
自定义 API 端点 使用自定义端点扩展 API Open In Colab
API 授权与认证 向 API 添加授权、认证和中间件依赖项 Open In Colab
OpenAI 兼容 API 使用标准的 OpenAI 客户端库连接到 txtai Open In Colab