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 数组格式的张量数据
- 返回值:
更新后的输入
- 返回类型:
- Raises:
InferenceServerException – 如果设置张量数据失败。
- set_shape(shape)#
设置输入的形状。
- 参数:
shape (list) – 相关输入的形状。
- 返回值:
更新后的输入
- 返回类型:
从指定的共享内存区域设置张量数据。
- 参数:
region_name (str) – 保存张量数据的共享内存区域的名称。
byte_size (int) – 保存张量数据的共享内存区域的大小。
offset (int) – 数据张量在区域中开始的偏移量(以字节为单位)。默认值为 0。
- 返回值:
更新后的输入
- 返回类型:
- 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
- region_name,
- byte_size,
- offset=0,
标记输出以在指定的共享内存区域中返回推理结果。
- 参数:
region_name (str) – 用于保存张量数据的共享内存区域的名称。
byte_size (int) – 用于保存张量数据的共享内存区域的大小。
offset (int) – 数据张量在区域中开始的偏移量(以字节为单位)。默认值为 0。
- Raises:
InferenceServerException – 如果设置张量的共享内存失败。
清除上次调用
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)以分别保存
InferResult
和InferenceServerException
对象,这些对象将在执行回调时提供给该函数。这些对象的所有权将交给用户。“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()#
关闭客户端。将来对服务器的任何调用都将导致错误。
- 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 – 如果无法获取服务器元数据或已超时。
- 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) – 要包含在推理请求中的可选自定义参数。
- 返回值:
包含推理结果的对象。
- 返回类型:
- 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 – 如果无法加载模型或已超时。
- 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 共享内存或已超时。
- 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) 以分别保存
InferResult
和InferenceServerException
对象,这些对象将在执行回调时提供给该函数。这些对象的所有权将交给用户。“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 – 如果无法卸载模型或已超时。
- name='',
- headers=None,
- client_timeout=None,
请求服务器注销具有指定名称的 cuda 共享内存。
- 参数:
name (str) – 要注销的区域的名称。默认值为空字符串,表示将注销所有 cuda 共享内存区域。
headers (dict) – 可选字典,指定要包含在请求中的其他 HTTP 标头。
client_timeout (float) – 允许请求花费的最大端到端时间(以秒为单位)。当指定的时间过去时,客户端将中止请求并引发消息为 “Deadline Exceeded” 的 InferenceServerExeption。默认值为 None,这意味着客户端将等待来自服务器的响应。
- Raises:
InferenceServerException – 如果无法注销指定的 cuda 共享内存区域或已超时。
- 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__()
方法。- _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) – 包含请求标头的字典。
模块