Skip to main content

Convenience Client for Hugging Face Text Embeddings Inference (TEI) with synchronous and asynchronous HTTP/gRPC support

Project description

tei-client

PyPI Version Supported Python Versions example workflow coverage

Convenience Client for Hugging Face Text Embeddings Inference (TEI) with synchronous and asynchronous HTTP/gRPC support.

Implements the API defined in TEI Swagger.

Installation

You can easily install tei-client via pip:

pip install tei-client

Grpc Support

If you want to use grpc, you need to install tei-client with grpc support:

pip install tei-client[grpc]

Usage

Creating a Client

HTTP Example

To create an instance of the client, you can do the following:

from tei_client import HttpClient

url = 'http://localhost:8080'
client = HttpClient(url)
Example docker server
docker run -p 8080:80 -v ./tei_data:/data ghcr.io/huggingface/text-embeddings-inference:cpu-latest --model-id sentence-transformers/all-MiniLM-L6-v2

gRPC Example

Alternatively, you can use gRPC to connect to your server:

import grpc
from tei_client import GrpcClient

channel = grpc.insecure_channel('localhost:8080')
client = GrpcClient(channel)
Example docker server
docker run -p 8080:80 -v ./tei_data:/data ghcr.io/huggingface/text-embeddings-inference:cpu-latest-grpc --model-id sentence-transformers/all-MiniLM-L6-v2

Embedding

To generate embeddings, you can use the following methods:

Single Embedding Generation

You can generate a single embedding using the embed method:

result = client.embed("This is an example sentence")
print(result[0])

Batch Embedding Generation

To generate multiple embeddings in batch mode, use the embed method with a list of sentences:

results = client.embed(["This is an example sentence", "This is another example sentence"])
for result in results:
    print(result)

Asynchronous Embedding Generation

For asynchronous embedding generation, you can use the async_embed method:

result = await client.async_embed("This is an example sentence")

Classification

To generate classification results for a given text, you can use the following methods:

Basic Classification

You can classify a single text using the classify method:

result = client.classify("This is an example sentence")
print(result[0].scores)

NLI Style Classification

For Natural Language Inference (NLI) style classification, you can use the classify method with tuples as input. The first element of the tuple represents the premise and the second element represents the hypothesis.

premise = "This is an example sentence"
hypothesis = "An example was given"

result = client.classify((premise, hypothesis))
print(result[0].scores)

Asynchronous and Batched Classification

The classify method also supports batched requests by passing a list of tuples or strings. For asynchronous classification, you can use the async_classify method.

# Classify multiple texts in batch mode
results = client.classify(["This is an example sentence", "This is another example sentence"])
for result in results:
    print(result.scores)

# Asynchronous classification
result = await client.async_classify("This is an example sentence")

Reranking

Reranking allows you to refine the order of search results based on additional information. This feature is supported by the rerank method.

Basic Reranking

You can use the rerank method to rerank search results with the following syntax:

result = client.rerank(
    query="What is Deep Learning?",  # Search query
    texts=["Lore ipsum", "Deep Learning is ..."]  # List of text snippets
)
print(result)

Asynchronous Reranking

For asynchronous reranking, use the async_rerank method:

result = await client.async_rerank(
    query="What is Deep Learning?",  # Search query
    texts=["Lore ipsum", "Deep Learning is ..."]  # List of text snippets
)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

tei_client-0.2.4.tar.gz (18.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

tei_client-0.2.4-py3-none-any.whl (17.5 kB view details)

Uploaded Python 3

File details

Details for the file tei_client-0.2.4.tar.gz.

File metadata

  • Download URL: tei_client-0.2.4.tar.gz
  • Upload date:
  • Size: 18.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.23

File hashes

Hashes for tei_client-0.2.4.tar.gz
Algorithm Hash digest
SHA256 30c779ad7884b697c8e8b34cf0e10b4f30c1e25b340046a519d8d1211a49b2f6
MD5 8e97f0df7a29659abfc07d9f03f671ea
BLAKE2b-256 69cf7727fbfcc5e3289020304beab08ec1595bfae091b52bad8a1efaa81046ce

See more details on using hashes here.

File details

Details for the file tei_client-0.2.4-py3-none-any.whl.

File metadata

  • Download URL: tei_client-0.2.4-py3-none-any.whl
  • Upload date:
  • Size: 17.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.23

File hashes

Hashes for tei_client-0.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 679c00fe414b0c82ea92c28a3ba5e9bed4361777d94b2d81112ef0aa49c15775
MD5 21417e8e45a3b1a7f69a2593c616f5a5
BLAKE2b-256 9a93d98326422dcc2919e12ce1a48e3e91070b1a63adc8cc2170a708dbf36055

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page