tritonclient.grpc#

class tritonclient.grpc.InferInput(name, shape, datatype)#

InferInput 类的对象用于描述推理请求的输入张量。

参数:
  • name (str) – 将由此对象描述其数据的输入的名称

  • shape (list) – 相关输入的形状。

  • datatype (str) – 相关输入的数据类型。

_get_content()#

以原始字节形式检索此张量的内容。 :returns: 此张量的相关内容,以原始字节形式。 :rtype: bytes

_get_tensor()#

检索底层的 InferInputTensor 消息。 :returns: 底层的 InferInputTensor protobuf 消息。 :rtype: protobuf message

datatype()#

获取与此对象关联的输入的数据类型。

返回值:

输入的数据类型

返回类型:

str

name()#

获取与此对象关联的输入的名称。

返回值:

输入的名称

返回类型:

str

set_data_from_numpy(input_tensor)#

从此对象关联的输入的指定 numpy 数组设置张量数据。

参数:

input_tensor (numpy array) – numpy 数组格式的张量数据

返回值:

更新后的输入

返回类型:

InferInput

Raises:

InferenceServerException – 如果设置张量数据失败。

set_shape(shape)#

设置输入的形状。

参数:

shape (list) – 相关输入的形状。

返回值:

更新后的输入

返回类型:

InferInput

set_shared_memory(region_name, byte_size, offset=0)#

从指定的共享内存区域设置张量数据。

参数:
  • region_name (str) – 保存张量数据的共享内存区域的名称。

  • byte_size (int) – 保存张量数据的共享内存区域的大小。

  • offset (int) – 数据张量在区域中开始的偏移量(以字节为单位)。默认值为 0。

返回值:

更新后的输入

返回类型:

InferInput

shape()#

获取与此对象关联的输入的形状。

返回值:

输入的形状

返回类型:

list

class tritonclient.grpc.InferRequestedOutput(name, class_count=0)#

InferRequestedOutput 类的对象用于描述推理请求的请求输出张量。

参数:
  • name (str) – 要与此对象关联的输出张量的名称

  • class_count (int) – 要请求的分类数。默认值为 0,这意味着不请求分类结果。

_get_tensor()#

检索底层的 InferRequestedOutputTensor 消息。 :returns: 底层的 InferRequestedOutputTensor protobuf 消息。 :rtype: protobuf message

name()#

获取与此对象关联的输出的名称。

返回值:

输出的名称

返回类型:

str

set_shared_memory(
region_name,
byte_size,
offset=0,
)#

标记输出以在指定的共享内存区域中返回推理结果。

参数:
  • region_name (str) – 用于保存张量数据的共享内存区域的名称。

  • byte_size (int) – 用于保存张量数据的共享内存区域的大小。

  • offset (int) – 数据张量在区域中开始的偏移量(以字节为单位)。默认值为 0。

Raises:

InferenceServerException – 如果设置张量的共享内存失败。

unset_shared_memory()#

清除上次调用 InferRequestedOutput.set_shared_memory() 设置的共享内存选项。调用此函数后,请求的输出将不再在共享内存区域中返回。

class tritonclient.grpc.InferResult(result)#

InferResult 类的对象保存推理请求的响应,并提供检索推理结果的方法。

参数:

result (protobuf message) – 服务器返回的 ModelInferResponse

as_numpy(name)#

以 numpy 格式获取与此对象关联的输出的张量数据

参数:

name (str) – 要检索其结果的输出张量的名称。

返回值:

包含张量的响应数据的 numpy 数组;如果未找到指定张量名称的数据,则为 None。

返回类型:

numpy array

get_output(name, as_json=False)#

检索与命名输出对应的 InferOutputTensor。

参数:
  • name (str) – 要检索其输出的张量的名称。

  • as_json (bool) – 如果为 True,则将响应作为 json 字典返回,否则作为 protobuf 消息返回。默认值为 False。返回的 json 是使用 MessageToJson 从 protobuf 消息生成的,因此 int64 值表示为字符串。调用者有责任根据需要将这些字符串转换回 int64 值。

返回值:

如果 ModelInferResponse 中存在具有指定名称的 InferOutputTensor,则将其作为 protobuf 消息或字典返回,否则返回 None。

返回类型:

protobuf message or dict

get_response(as_json=False)#

将完整的 ModelInferResponse 检索为 json 字典对象或 protobuf 消息

参数:

as_json (bool) – 如果为 True,则将响应作为 json 字典返回,否则作为 protobuf 消息返回。默认值为 False。返回的 json 是使用 MessageToJson 从 protobuf 消息生成的,因此 int64 值表示为字符串。调用者有责任根据需要将这些字符串转换回 int64 值。

返回值:

底层的 ModelInferResponse,作为 protobuf 消息或字典。

返回类型:

protobuf message or dict

class tritonclient.grpc.InferenceServerClient(
url,
verbose=False,
ssl=False,
root_certificates=None,
private_key=None,
certificate_chain=None,
creds=None,
keepalive_options=None,
channel_args=None,
)#

InferenceServerClient 对象用于使用 gRPC 协议与 InferenceServer 执行任何类型的通信。大多数方法是线程安全的,除了 start_stream、stop_stream 和 async_stream_infer。使用不同的线程访问客户端流将导致未定义的行为。

参数:
  • url (str) – 推理服务器 URL,例如 ‘localhost:8001’。

  • verbose (bool) – 如果为 True,则生成详细输出。默认值为 False。

  • ssl (bool) – 如果为 True,则使用 SSL 加密安全通道。默认为 False。

  • root_certificates (str) – 包含 PEM 编码的根证书的文件,作为字节字符串;如果为 None,则从 gRPC 运行时选择的默认位置检索它们。如果 ssl 为 False,则忽略此选项。默认为 None。

  • private_key (str) – 包含 PEM 编码的私钥的文件,作为字节字符串;如果不需要私钥,则为 None。如果 ssl 为 False,则忽略此选项。默认为 None。

  • certificate_chain (str) – 包含 PEM 编码的证书链的文件,作为要使用的字节字符串;如果不需要证书链,则为 None。如果 ssl 为 False,则忽略此选项。默认为 None。

  • creds (grpc.ChannelCredentials) – 用于连接的 grpc.ChannelCredentials 对象。使用此选项时,将忽略 ssl、root_certificates、private_key 和 certificate_chain 选项。默认为 None。

  • keepalive_options (KeepAliveOptions) – 封装各种 GRPC KeepAlive 选项的对象。有关更多信息,请参阅类定义。默认为 None。

  • channel_args (List[Tuple]) – 要作为 channel_arguments 直接传递到 GRPC 通道的 Tuple 对(“key”,value)的列表。如果提供此参数,则应通道参数是正确且完整的,并且将忽略 keepalive_options 参数,因为可以在此参数中直接设置相应的 keepalive 通道参数。有关更多详细信息,请参阅 https://grpc.github.io/grpc/python/glossary.html#term-channel_arguments。默认为 None。

Raises:

Exception – 如果无法创建客户端。

_get_metadata(headers)#
async_infer(
model_name,
inputs,
callback,
model_version='',
outputs=None,
request_id='',
sequence_id=0,
sequence_start=False,
sequence_end=False,
priority=0,
timeout=None,
client_timeout=None,
headers=None,
compression_algorithm=None,
parameters=None,
)#

使用提供的 ‘inputs’ 运行异步推理,请求 ‘outputs’ 指定的输出。

参数:
  • model_name (str) – 要运行推理的模型的名称。

  • inputs (list) – InferInput 对象的列表,每个对象描述模型所需的输入张量的数据。

  • callback (function) – Python 函数,在请求完成后调用。该函数必须保留最后两个参数(result,error)以分别保存 InferResultInferenceServerException 对象,这些对象将在执行回调时提供给该函数。这些对象的所有权将交给用户。“error” 对于成功的推理应为 None。

  • model_version (str) – 要运行推理的模型的版本。默认值为空字符串,这意味着服务器将根据模型和内部策略选择一个版本。

  • outputs (list) – InferRequestedOutput 对象的列表,每个对象描述必须如何返回输出数据。如果未指定,则将使用默认设置返回模型生成的所有输出。

  • request_id (str) – 请求的可选标识符。如果指定,将在响应中返回。默认值为空字符串,这意味着不使用 request_id。

  • sequence_id (int) – 对象表示的序列的唯一标识符。默认值为 0,这意味着请求不属于序列。

  • sequence_start (bool) – 指示正在添加的请求是否标记序列的开始。默认值为 False。如果 ‘sequence_id’ 为 0,则忽略此参数。

  • sequence_end (bool) – 指示正在添加的请求是否标记序列的结束。默认值为 False。如果 ‘sequence_id’ 为 0,则忽略此参数。

  • priority (int) – 指示请求的优先级。优先级值零表示应使用默认优先级级别(即,与不指定 priority 参数的行为相同)。较低的值优先级指示较高的优先级级别。因此,最高优先级级别通过将参数设置为 1 来指示,下一个最高优先级级别为 2,依此类推。如果未提供,服务器将使用模型的默认设置来处理请求。

  • timeout (int) – 请求的超时值,以微秒为单位。如果请求无法在时间内完成,则服务器可以采取特定于模型的操作,例如终止请求。如果未提供,服务器将使用模型的默认设置来处理请求。此选项仅受配置了动态批处理的模型尊重。有关更多详细信息,请参阅此处:triton-inference-server/server 允许请求花费的最大端到端时间(以秒为单位)。当指定的时间过去时,客户端将中止请求并在回调中提供消息 “Deadline Exceeded” 的错误。默认值为 None,这意味着客户端将等待来自服务器的响应。

  • client_timeout (float) – 允许请求花费的最大端到端时间(以秒为单位)。当指定的时间过去时,客户端将中止请求并引发消息为 “Deadline Exceeded” 的 InferenceServerExeption。默认值为 None,这意味着客户端将等待来自服务器的响应。

  • headers (dict) – 可选字典,指定要包含在请求中的其他 HTTP 标头。

  • compression_algorithm (str) – 客户端可选的 grpc 压缩算法。当前支持 “deflate”、“gzip” 和 None。默认情况下,不使用压缩。

  • parameters (dict) – 要包含在推理请求中的可选自定义参数。

返回值:

另一个控制流中计算的表示形式。Future 表示的计算可能尚未开始、正在进行中或已完成。

注意

此对象可用于取消推理请求,如下所示

>>> future = async_infer(...)
>>> ret = future.cancel()

返回类型:

CallContext

Raises:

InferenceServerException – 如果服务器无法发出推理。

async_stream_infer(
model_name,
inputs,
model_version='',
outputs=None,
request_id='',
sequence_id=0,
sequence_start=False,
sequence_end=False,
enable_empty_final_response=False,
priority=0,
timeout=None,
parameters=None,
)#

通过 gRPC 双向流式 API 运行异步推理。必须在调用此函数之前通过调用 start_stream() 建立流。所有结果将提供给与流关联的回调函数。

参数:
  • model_name (str) – 要运行推理的模型的名称。

  • inputs (list) – InferInput 对象的列表,每个对象描述模型所需的输入张量的数据。

  • model_version (str) – 要运行推理的模型的版本。默认值为空字符串,这意味着服务器将根据模型和内部策略选择一个版本。

  • outputs (list) – InferRequestedOutput 对象的列表,每个对象描述必须如何返回输出数据。如果未指定,则将使用默认设置返回模型生成的所有输出。

  • request_id (str) – 请求的可选标识符。如果指定,将在响应中返回。默认值为空字符串,这意味着不使用 request_id。

  • sequence_id (int or str) – 对象表示的序列的唯一标识符。值 0 或 “” 表示请求不属于序列。默认为 0。

  • sequence_start (bool) – 指示正在添加的请求是否标记序列的开始。默认值为 False。如果 ‘sequence_id’ 为 0 或 “”,则忽略此参数。

  • sequence_end (bool) – 指示正在添加的请求是否标记序列的结束。默认值为 False。如果 ‘sequence_id’ 为 0 或 “”,则忽略此参数。

  • enable_empty_final_response (bool) – 指示是否应在流式推理期间从服务器生成 “空” 响应并将其发送回客户端,当它们包含 TRITONSERVER_RESPONSE_COMPLETE_FINAL 标志时。这严格关系到模型/后端发送仅标志响应的情况(使用 TRITONBACKEND_ResponseFactorySendFlags(TRITONSERVER_RESPONSE_COMPLETE_FINAL) 或 InferenceResponseSender.send(flags=TRITONSERVER_RESPONSE_COMPLETE_FINAL))。目前,这仅发生在解耦模型中,并且可用于向客户端传达请求何时已收到来自模型的最终响应。如果后端发送最终标志以及非空响应,则不需要此参数。默认值为 False。

  • priority (int) – 指示请求的优先级。优先级值零表示应使用默认优先级级别(即,与不指定 priority 参数的行为相同)。较低的值优先级指示较高的优先级级别。因此,最高优先级级别通过将参数设置为 1 来指示,下一个最高优先级级别为 2,依此类推。如果未提供,服务器将使用模型的默认设置来处理请求。

  • timeout (int) – 请求的超时值,以微秒为单位。如果请求无法在时间内完成,则服务器可以采取特定于模型的操作,例如终止请求。如果未提供,服务器将使用模型的默认设置来处理请求。这不会停止 grpc 流本身,并且仅受配置了动态批处理的模型尊重。有关更多详细信息,请参阅此处:triton-inference-server/server

  • parameters (dict) – 要包含在推理请求中的可选自定义参数。

Raises:

InferenceServerException – 如果服务器无法发出推理。

close()#

关闭客户端。将来对服务器的任何调用都将导致错误。

get_cuda_shared_memory_status(
region_name='',
headers=None,
as_json=False,
client_timeout=None,
)#

从服务器请求 cuda 共享内存状态。

参数:
  • region_name (str) – 要查询状态的区域的名称。默认值为空字符串,这意味着将返回所有活动 cuda 共享内存的状态。

  • headers (dict) – 可选字典,指定要包含在请求中的其他 HTTP 标头。

  • as_json (bool) – 如果为 True,则将 cuda 共享内存状态作为 json 字典返回,否则作为 protobuf 消息返回。默认值为 False。返回的 json 是使用 MessageToJson 从 protobuf 消息生成的,因此 int64 值表示为字符串。调用者有责任根据需要将这些字符串转换回 int64 值。

  • client_timeout (float) – 允许请求花费的最大端到端时间(以秒为单位)。当指定的时间过去时,客户端将中止请求并引发消息为 “Deadline Exceeded” 的 InferenceServerExeption。默认值为 None,这意味着客户端将等待来自服务器的响应。

返回值:

JSON 字典或 CudaSharedMemoryStatusResponse 消息,其中包含 cuda 共享内存状态。

返回类型:

dict or protobuf message

Raises:

InferenceServerException – 如果无法获取指定共享内存的状态或已超时。

get_inference_statistics(
model_name='',
model_version='',
headers=None,
as_json=False,
client_timeout=None,
)#

获取指定模型名称和版本的推理统计信息。

参数:
  • model_name (str) – 要获取统计信息的模型的名称。默认值为空字符串,这意味着将返回所有模型的统计信息。

  • model_version (str) – 要获取推理统计信息的模型的版本。默认值为空字符串,这意味着服务器将返回所有可用模型版本的统计信息。

  • headers (dict) – 可选字典,指定要包含在请求中的其他 HTTP 标头。

  • as_json (bool) – 如果为 True,则将推理统计信息作为 json 字典返回,否则作为 protobuf 消息返回。默认值为 False。返回的 json 是使用 MessageToJson 从 protobuf 消息生成的,因此 int64 值表示为字符串。调用者有责任根据需要将这些字符串转换回 int64 值。

  • client_timeout (float) – 允许请求花费的最大端到端时间(以秒为单位)。当指定的时间过去时,客户端将中止请求并引发消息为 “Deadline Exceeded” 的 InferenceServerExeption。默认值为 None,这意味着客户端将等待来自服务器的响应。

Raises:

InferenceServerException – 如果无法获取模型推理统计信息或已超时。

get_log_settings(
headers=None,
as_json=False,
client_timeout=None,
)#

获取全局日志设置。

参数:
  • headers (dict) – 可选字典,指定要包含在请求中的其他 HTTP 标头。

  • as_json (bool) – 如果为 True,则将日志设置作为 json 字典返回,否则作为 protobuf 消息返回。默认值为 False。返回的 json 是使用 MessageToJson 从 protobuf 消息生成的,因此 int64 值表示为字符串。调用者有责任根据需要将这些字符串转换回 int64 值。

  • client_timeout (float) – 允许请求花费的最大端到端时间(以秒为单位)。当指定的时间过去时,客户端将中止请求并引发消息为 “Deadline Exceeded” 的 InferenceServerExeption。默认值为 None,这意味着客户端将等待来自服务器的响应。

返回值:

JSON 字典或 LogSettingsResponse 消息,其中包含日志设置。

返回类型:

dict or protobuf message

Raises:

InferenceServerException – 如果无法获取日志设置或已超时。

get_model_config(
model_name,
model_version='',
headers=None,
as_json=False,
client_timeout=None,
)#

联系推理服务器并获取指定模型的配置。

参数:
  • model_name (str) – 模型的名称

  • model_version (str) – 要获取配置的模型的版本。默认值为空字符串,这意味着服务器将根据模型和内部策略选择一个版本。

  • headers (dict) – 可选字典,指定要包含在请求中的其他 HTTP 标头。

  • as_json (bool) – 如果为 True,则将配置作为 json 字典返回,否则作为 protobuf 消息返回。默认值为 False。返回的 json 是使用 MessageToJson 从 protobuf 消息生成的,因此 int64 值表示为字符串。调用者有责任根据需要将这些字符串转换回 int64 值。

  • client_timeout (float) – 允许请求花费的最大端到端时间(以秒为单位)。当指定的时间过去时,客户端将中止请求并引发消息为 “Deadline Exceeded” 的 InferenceServerExeption。默认值为 None,这意味着客户端将等待来自服务器的响应。

返回值:

JSON 字典或 ModelConfigResponse 消息,其中包含元数据。

返回类型:

dict or protobuf message

Raises:

InferenceServerException – 如果无法获取模型配置或已超时。

get_model_metadata(
model_name,
model_version='',
headers=None,
as_json=False,
client_timeout=None,
)#

联系推理服务器并获取指定模型的元数据。

参数:
  • model_name (str) – 模型的名称

  • model_version (str) – 要获取元数据的模型的版本。默认值为空字符串,这意味着服务器将根据模型和内部策略选择一个版本。

  • headers (dict) – 可选字典,指定要包含在请求中的其他 HTTP 标头。

  • as_json (bool) – 如果为 True,则将模型元数据作为 JSON 字典返回,否则作为 protobuf 消息返回。默认值为 False。返回的 JSON 是使用 MessageToJson 从 protobuf 消息生成的,因此 int64 值表示为字符串。将这些字符串转换回 int64 值是调用者的责任(如有必要)。

  • client_timeout (float) – 允许请求花费的最大端到端时间(以秒为单位)。当指定的时间过去时,客户端将中止请求并引发消息为 “Deadline Exceeded” 的 InferenceServerExeption。默认值为 None,这意味着客户端将等待来自服务器的响应。

返回值:

包含元数据的 JSON 字典或 ModelMetadataResponse 消息。

返回类型:

dict or protobuf message

Raises:

InferenceServerException – 如果无法获取模型元数据或已超时。

get_model_repository_index(
headers=None,
as_json=False,
client_timeout=None,
)#

获取模型仓库内容的索引

参数:
  • headers (dict) – 可选字典,指定要包含在请求中的其他 HTTP 标头。

  • as_json (bool) – 如果为 True,则将模型仓库索引作为 JSON 字典返回,否则作为 protobuf 消息返回。默认值为 False。返回的 JSON 是使用 MessageToJson 从 protobuf 消息生成的,因此 int64 值表示为字符串。将这些字符串转换回 int64 值是调用者的责任(如有必要)。

  • client_timeout (float) – 允许请求花费的最大端到端时间(以秒为单位)。当指定的时间过去时,客户端将中止请求并引发消息为 “Deadline Exceeded” 的 InferenceServerExeption。默认值为 None,这意味着客户端将等待来自服务器的响应。

返回值:

包含模型仓库索引的 JSON 字典或 RepositoryIndexResponse 消息。

返回类型:

dict or protobuf message

get_server_metadata(
headers=None,
as_json=False,
client_timeout=None,
)#

联系推理服务器并获取其元数据。

参数:
  • headers (dict) – 可选字典,指定要包含在请求中的其他 HTTP 标头。

  • as_json (bool) – 如果为 True,则将服务器元数据作为 JSON 字典返回,否则作为 protobuf 消息返回。默认值为 False。返回的 JSON 是使用 MessageToJson 从 protobuf 消息生成的,因此 int64 值表示为字符串。将这些字符串转换回 int64 值是调用者的责任(如有必要)。

  • client_timeout (float) – 允许请求花费的最大端到端时间(以秒为单位)。当指定的时间过去时,客户端将中止请求并引发消息为 “Deadline Exceeded” 的 InferenceServerExeption。默认值为 None,这意味着客户端将等待来自服务器的响应。

返回值:

包含元数据的 JSON 字典或 ServerMetadataResponse 消息。

返回类型:

dict or protobuf message

Raises:

InferenceServerException – 如果无法获取服务器元数据或已超时。

get_system_shared_memory_status(
region_name='',
headers=None,
as_json=False,
client_timeout=None,
)#

从服务器请求系统共享内存状态。

参数:
  • region_name (str) – 要查询状态的区域名称。默认值为空字符串,表示将返回所有活动系统共享内存的状态。

  • headers (dict) – 可选字典,指定要包含在请求中的其他 HTTP 标头。

  • as_json (bool) – 如果为 True,则将系统共享内存状态作为 JSON 字典返回,否则作为 protobuf 消息返回。默认值为 False。返回的 JSON 是使用 MessageToJson 从 protobuf 消息生成的,因此 int64 值表示为字符串。将这些字符串转换回 int64 值是调用者的责任(如有必要)。

  • client_timeout (float) – 允许请求花费的最大端到端时间(以秒为单位)。当指定的时间过去时,客户端将中止请求并引发消息为 “Deadline Exceeded” 的 InferenceServerExeption。默认值为 None,这意味着客户端将等待来自服务器的响应。

返回值:

包含系统共享内存状态的 JSON 字典或 SystemSharedMemoryStatusResponse 消息。

返回类型:

dict or protobuf message

Raises:

InferenceServerException – 如果无法获取指定共享内存的状态或已超时。

get_trace_settings(
model_name=None,
headers=None,
as_json=False,
client_timeout=None,
)#

获取指定模型名称的跟踪设置,如果未提供模型名称,则获取全局跟踪设置

参数:
  • model_name (str) – 要获取跟踪设置的模型名称。指定 None 或空字符串将返回全局跟踪设置。默认值为 None。

  • headers (dict) – 可选字典,指定要包含在请求中的其他 HTTP 标头。

  • as_json (bool) – 如果为 True,则将跟踪设置作为 JSON 字典返回,否则作为 protobuf 消息返回。默认值为 False。返回的 JSON 是使用 MessageToJson 从 protobuf 消息生成的,因此 int64 值表示为字符串。将这些字符串转换回 int64 值是调用者的责任(如有必要)。

  • client_timeout (float) – 允许请求花费的最大端到端时间(以秒为单位)。当指定的时间过去时,客户端将中止请求并引发消息为 “Deadline Exceeded” 的 InferenceServerExeption。默认值为 None,这意味着客户端将等待来自服务器的响应。

返回值:

包含跟踪设置的 JSON 字典或 TraceSettingResponse 消息。

返回类型:

dict or protobuf message

Raises:

InferenceServerException – 如果无法获取跟踪设置或已超时。

infer(
model_name,
inputs,
model_version='',
outputs=None,
request_id='',
sequence_id=0,
sequence_start=False,
sequence_end=False,
priority=0,
timeout=None,
client_timeout=None,
headers=None,
compression_algorithm=None,
parameters=None,
)#

使用提供的 ‘inputs’ 运行同步推理,并请求 ‘outputs’ 指定的输出。

参数:
  • model_name (str) – 要运行推理的模型的名称。

  • inputs (list) – InferInput 对象的列表,每个对象描述模型所需的输入张量的数据。

  • model_version (str) – 要运行推理的模型的版本。默认值为空字符串,这意味着服务器将根据模型和内部策略选择一个版本。

  • outputs (list) – InferRequestedOutput 对象的列表,每个对象描述必须如何返回输出数据。如果未指定,则将使用默认设置返回模型生成的所有输出。

  • request_id (str) – 请求的可选标识符。如果指定,将在响应中返回。默认值为空字符串,这意味着不使用 request_id。

  • sequence_id (int) – 对象表示的序列的唯一标识符。默认值为 0,这意味着请求不属于序列。

  • sequence_start (bool) – 指示正在添加的请求是否标记序列的开始。默认值为 False。如果 ‘sequence_id’ 为 0,则忽略此参数。

  • sequence_end (bool) – 指示正在添加的请求是否标记序列的结束。默认值为 False。如果 ‘sequence_id’ 为 0,则忽略此参数。

  • priority (int) – 指示请求的优先级。优先级值零表示应使用默认优先级级别(即,与不指定 priority 参数的行为相同)。较低的值优先级指示较高的优先级级别。因此,最高优先级级别通过将参数设置为 1 来指示,下一个最高优先级级别为 2,依此类推。如果未提供,服务器将使用模型的默认设置来处理请求。

  • timeout (int) – 请求的超时值,以微秒为单位。如果请求无法在时间内完成,服务器可以采取特定于模型的操作,例如终止请求。如果未提供,服务器将使用模型的默认设置处理请求。此选项仅受配置了动态批处理的模型支持。有关更多详细信息,请参阅此处:triton-inference-server/server

  • client_timeout (float) – 允许请求花费的最大端到端时间(以秒为单位)。当指定的时间过去时,客户端将中止请求并引发消息为 “Deadline Exceeded” 的 InferenceServerExeption。默认值为 None,这意味着客户端将等待来自服务器的响应。

  • headers (dict) – 可选字典,指定要包含在请求中的其他 HTTP 标头。

  • compression_algorithm (str) – 客户端可选的 grpc 压缩算法。当前支持 “deflate”、“gzip” 和 None。默认情况下,不使用压缩。

  • parameters (dict) – 要包含在推理请求中的可选自定义参数。

返回值:

包含推理结果的对象。

返回类型:

InferResult

Raises:

InferenceServerException – 如果服务器无法执行推理。

is_model_ready(
model_name,
model_version='',
headers=None,
client_timeout=None,
)#

联系推理服务器并获取指定模型的就绪状态。

参数:
  • model_name (str) – 要检查就绪状态的模型名称。

  • model_version (str) – 要检查就绪状态的模型版本。默认值为空字符串,表示服务器将根据模型和内部策略选择版本。

  • headers (dict) – 可选字典,指定要包含在请求中的其他 HTTP 标头。

  • client_timeout (float) – 允许请求花费的最大端到端时间(以秒为单位)。当指定的时间过去时,客户端将中止请求并引发消息为 “Deadline Exceeded” 的 InferenceServerExeption。默认值为 None,这意味着客户端将等待来自服务器的响应。

返回值:

如果模型已就绪,则为 True;如果未就绪,则为 False。

返回类型:

bool

Raises:

InferenceServerException – 如果无法获取模型就绪状态或已超时。

is_server_live(
headers=None,
client_timeout=None,
)#

联系推理服务器并获取活跃度。

参数:
  • headers (dict) – 可选字典,指定要包含在请求中的其他 HTTP 标头。

  • client_timeout (float) – 允许请求花费的最大端到端时间(以秒为单位)。当指定的时间过去时,客户端将中止请求并引发消息为 “Deadline Exceeded” 的 InferenceServerExeption。默认值为 None,这意味着客户端将等待来自服务器的响应。

返回值:

如果服务器处于活跃状态,则为 True;如果服务器不活跃,则为 False。

返回类型:

bool

Raises:

InferenceServerException – 如果无法获取活跃度或已超时。

is_server_ready(
headers=None,
client_timeout=None,
)#

联系推理服务器并获取就绪状态。

参数:
  • headers (dict) – 可选字典,指定要包含在请求中的其他 HTTP 标头。

  • client_timeout (float) – 允许请求花费的最大端到端时间(以秒为单位)。当指定的时间过去时,客户端将中止请求并引发消息为 “Deadline Exceeded” 的 InferenceServerExeption。默认值为 None,这意味着客户端将等待来自服务器的响应。

返回值:

如果服务器已就绪,则为 True;如果服务器未就绪,则为 False。

返回类型:

bool

Raises:

InferenceServerException – 如果无法获取就绪状态或已超时。

load_model(
model_name,
headers=None,
config=None,
files=None,
client_timeout=None,
)#

请求推理服务器加载或重新加载指定的模型。

参数:
  • model_name (str) – 要加载的模型的名称。

  • headers (dict) – 可选字典,指定要包含在请求中的其他 HTTP 标头。

  • config (str) – 可选的 JSON 格式的模型配置表示,用于加载请求。如果提供,此配置将用于加载模型。

  • files (dict) – 可选字典,指定覆盖模型目录中的文件路径(带有 “file:” 前缀)到文件内容的字节。这些文件将构成模型将从中加载的模型目录。如果指定了 ‘files’,则必须提供 ‘config’ 作为覆盖模型目录的模型配置。

  • client_timeout (float) – 允许请求花费的最大端到端时间(以秒为单位)。当指定的时间过去时,客户端将中止请求并引发消息为 “Deadline Exceeded” 的 InferenceServerExeption。默认值为 None,这意味着客户端将等待来自服务器的响应。

Raises:

InferenceServerException – 如果无法加载模型或已超时。

register_cuda_shared_memory(
name,
raw_handle,
device_id,
byte_size,
headers=None,
client_timeout=None,
)#

请求服务器注册具有以下规范的系统共享内存。

参数:
  • name (str) – 要注册的区域的名称。

  • raw_handle (bytes) – 原始序列化的 cudaIPC 句柄,采用 base64 编码。

  • device_id (int) – 创建 cudaIPC 句柄的 GPU 设备 ID。

  • byte_size (int) – cuda 共享内存区域的大小,以字节为单位。

  • headers (dict) – 可选字典,指定要包含在请求中的其他 HTTP 标头。

  • client_timeout (float) – 允许请求花费的最大端到端时间(以秒为单位)。当指定的时间过去时,客户端将中止请求并引发消息为 “Deadline Exceeded” 的 InferenceServerExeption。默认值为 None,这意味着客户端将等待来自服务器的响应。

Raises:

InferenceServerException – 如果无法注册指定的 cuda 共享内存或已超时。

register_system_shared_memory(
name,
key,
byte_size,
offset=0,
headers=None,
client_timeout=None,
)#

请求服务器注册具有以下规范的系统共享内存。

参数:
  • name (str) – 要注册的区域的名称。

  • key (str) – 包含系统共享内存区域的底层内存对象的键。

  • byte_size (int) – 系统共享内存区域的大小,以字节为单位。

  • offset (int) – 系统共享内存区域起始位置在底层内存对象内的偏移量,以字节为单位。默认值为零。

  • headers (dict) – 可选字典,指定要包含在请求中的其他 HTTP 标头。

  • client_timeout (float) – 允许请求花费的最大端到端时间(以秒为单位)。当指定的时间过去时,客户端将中止请求并引发消息为 “Deadline Exceeded” 的 InferenceServerExeption。默认值为 None,这意味着客户端将等待来自服务器的响应。

Raises:

InferenceServerException – 如果无法注册指定的系统共享内存或已超时。

start_stream(
callback,
stream_timeout=None,
headers=None,
compression_algorithm=None,
)#

启动 gRPC 双向流以发送流式推理。注意:使用流时,用户必须确保在退出时调用 InferenceServerClient.close()。

参数:
  • callback (function) – Python 函数,在从底层流接收到响应时调用。该函数必须保留最后两个参数 (result, error) 以分别保存 InferResultInferenceServerException 对象,这些对象将在执行回调时提供给该函数。这些对象的所有权将交给用户。“error” 对于成功的推理将为 None。

  • stream_timeout (float) – 可选的流超时时间(以秒为单位)。一旦指定的超时时间到期,流将关闭。

  • headers (dict) – 可选字典,指定要包含在请求中的其他 HTTP 标头。

  • compression_algorithm (str) – 客户端可选的 grpc 压缩算法。当前支持 “deflate”、“gzip” 和 None。默认情况下,不使用压缩。

Raises:

InferenceServerException – 如果无法启动流,或者此客户端已在运行流,或者已超时。

stop_stream(cancel_requests=False)#

停止可用的流。

参数:

cancel_requests (bool) – 如果设置为 True,则客户端取消所有挂起的请求并关闭流。如果设置为 False,则调用将阻塞,直到处理完流上的所有挂起请求。

unload_model(
model_name,
headers=None,
unload_dependents=False,
client_timeout=None,
)#

请求推理服务器卸载指定的模型。

参数:
  • model_name (str) – 要卸载的模型的名称。

  • headers (dict) – 可选字典,指定要包含在请求中的其他 HTTP 标头。

  • unload_dependents (bool) – 是否也应卸载模型的依赖项。

  • client_timeout (float) – 允许请求花费的最大端到端时间(以秒为单位)。当指定的时间过去时,客户端将中止请求并引发消息为 “Deadline Exceeded” 的 InferenceServerExeption。默认值为 None,这意味着客户端将等待来自服务器的响应。

Raises:

InferenceServerException – 如果无法卸载模型或已超时。

unregister_cuda_shared_memory(
name='',
headers=None,
client_timeout=None,
)#

请求服务器注销具有指定名称的 cuda 共享内存。

参数:
  • name (str) – 要注销的区域的名称。默认值为空字符串,表示将注销所有 cuda 共享内存区域。

  • headers (dict) – 可选字典,指定要包含在请求中的其他 HTTP 标头。

  • client_timeout (float) – 允许请求花费的最大端到端时间(以秒为单位)。当指定的时间过去时,客户端将中止请求并引发消息为 “Deadline Exceeded” 的 InferenceServerExeption。默认值为 None,这意味着客户端将等待来自服务器的响应。

Raises:

InferenceServerException – 如果无法注销指定的 cuda 共享内存区域或已超时。

unregister_system_shared_memory(
name='',
headers=None,
client_timeout=None,
)#

请求服务器注销具有指定名称的系统共享内存。

参数:
  • name (str) – 要注销的区域的名称。默认值为空字符串,表示将注销所有系统共享内存区域。

  • headers (dict) – 可选字典,指定要包含在请求中的其他 HTTP 标头。

  • client_timeout (float) – 允许请求花费的最大端到端时间(以秒为单位)。当指定的时间过去时,客户端将中止请求并引发消息为 “Deadline Exceeded” 的 InferenceServerExeption。默认值为 None,这意味着客户端将等待来自服务器的响应。

Raises:

InferenceServerException – 如果无法注销指定的系统共享内存区域或已超时。

update_log_settings(
settings,
headers=None,
as_json=False,
client_timeout=None,
)#

更新全局日志设置。返回更新后的日志设置。

参数:
  • settings (dict) – 新的日志设置值。仅列出的设置将被更新。

  • headers (dict) – 可选字典,指定要包含在请求中的其他 HTTP 标头。

  • as_json (bool) – 如果为 True,则将跟踪设置作为 JSON 字典返回,否则作为 protobuf 消息返回。默认值为 False。返回的 JSON 是使用 MessageToJson 从 protobuf 消息生成的,因此 int64 值表示为字符串。将这些字符串转换回 int64 值是调用者的责任(如有必要)。

  • client_timeout (float) – 允许请求花费的最大端到端时间(以秒为单位)。当指定的时间过去时,客户端将中止请求并引发消息为 “Deadline Exceeded” 的 InferenceServerExeption。默认值为 None,这意味着客户端将等待来自服务器的响应。

返回值:

包含更新后的日志设置的 JSON 字典或 LogSettingsResponse 消息。

返回类型:

dict or protobuf message

Raises:

InferenceServerException – 如果无法更新日志设置或已超时。

update_trace_settings(
model_name=None,
settings={},
headers=None,
as_json=False,
client_timeout=None,
)#

更新指定模型名称的跟踪设置,如果未提供模型名称,则更新全局跟踪设置。返回更新后的跟踪设置。

参数:
  • model_name (str) – 要更新跟踪设置的模型名称。指定 None 或空字符串将更新全局跟踪设置。默认值为 None。

  • settings (dict) – 新的跟踪设置值。仅列出的设置将被更新。如果字典中列出了跟踪设置且值为 ‘None’,则该设置将被清除。

  • headers (dict) – 可选字典,指定要包含在请求中的其他 HTTP 标头。

  • as_json (bool) – 如果为 True,则将跟踪设置作为 JSON 字典返回,否则作为 protobuf 消息返回。默认值为 False。返回的 JSON 是使用 MessageToJson 从 protobuf 消息生成的,因此 int64 值表示为字符串。将这些字符串转换回 int64 值是调用者的责任(如有必要)。

  • client_timeout (float) – 允许请求花费的最大端到端时间(以秒为单位)。当指定的时间过去时,客户端将中止请求并引发消息为 “Deadline Exceeded” 的 InferenceServerExeption。默认值为 None,这意味着客户端将等待来自服务器的响应。

返回值:

包含更新后的跟踪设置的 JSON 字典或 TraceSettingResponse 消息。

返回类型:

dict or protobuf message

Raises:

InferenceServerException – 如果无法更新跟踪设置或已超时。

class tritonclient.grpc.InferenceServerClientPlugin#

每个 Triton 客户端插件都应扩展此类。每个插件都需要实现 __call__() 方法。

abstract __call__(request)#

当调用任何客户端函数时,将调用此方法。请注意,必须就地修改请求对象。

参数:

request (Request) – 请求对象。

_abc_impl = <_abc._abc_data object>#
exception tritonclient.grpc.InferenceServerException(msg, status=None, debug_details=None)#

指示非成功状态的异常。

参数:
  • msg (str) – 错误简述

  • status (str) – 错误代码

  • debug_details (str) – 关于错误的附加详细信息

debug_details()#

获取关于异常的详细信息以进行调试

返回值:

返回异常详细信息

返回类型:

str

message()#

获取异常消息。

返回值:

与此异常关联的消息,如果没有消息,则为 None。

返回类型:

str

status()#

获取异常的状态。

返回值:

返回异常的状态

返回类型:

str

class tritonclient.grpc.KeepAliveOptions(
keepalive_time_ms=2147483647,
keepalive_timeout_ms=20000,
keepalive_permit_without_calls=False,
http2_max_pings_without_data=2,
)#

KeepAliveOptions 对象用于封装 GRPC KeepAlive 相关参数,以初始化 InferenceServerclient 对象。

有关更多信息,请参阅 grpc/grpc 文档。

参数:
  • keepalive_time_ms (int) – 在传输上发送 keepalive ping 的周期(以毫秒为单位)。默认为 INT32_MAX。

  • keepalive_timeout_ms (int) – keepalive ping 的发送者等待确认的周期(以毫秒为单位)。如果在此时限内未收到确认,它将关闭连接。默认为 20000(20 秒)。

  • keepalive_permit_without_calls (bool) – 允许发送 keepalive ping,即使没有正在进行的调用。默认为 False。

  • http2_max_pings_without_data (int) – 当没有数据/标头帧要发送时,可以发送的最大 ping 数。如果我们超过限制,gRPC Core 将不会继续发送 ping。将其设置为 0 允许发送 ping 而没有此类限制。默认为 2。

class tritonclient.grpc.Request(headers)#

请求对象。

参数:

headers (dict) – 包含请求标头的字典。

模块