Open Inference Protocol OpenAPI Client
open-inference-openapi is a generated client library based on the OpenAPI protocol definition tracked in the open-inference/open-inference-protocol/ repository.
Installation
This package requires Python 3.8 or greater.
Install with your favorite tool from pypi.org/project/open-inference-openapi/
$ pip install open-inference-openapi
$ poetry add open-inference-openapi
A gRPC-based python client (
open-inference-grpc) also exists for the Open Inference Protocol, and can be installed alongside this gRPC client, as both are distributed as namespace packages.
Example
from open_inference.openapi.client import OpenInferenceClient, InferenceRequest
client = OpenInferenceClient(base_url='http://localhost:5002')
# Check that the server is live, and it has the iris model loaded
client.check_server_readiness()
client.read_model_metadata('mlflow-model')
# Make an inference request with two examples
pred = client.model_infer(
"mlflow-model",
request=InferenceRequest(
inputs=[
{
"name": "input",
"shape": [2, 4],
"datatype": "FP64",
"data": [
[5.0, 3.3, 1.4, 0.2],
[7.0, 3.2, 4.7, 1.4],
],
}
]
),
)
print(repr(pred))
# InferenceResponse(
# model_name="mlflow-model",
# model_version=None,
# id="580c30e3-f835-418f-bb17-a3074d42ad21",
# parameters={"content_type": "np", "headers": None},
# outputs=[
# ResponseOutput(
# name="output-1",
# shape=[2, 1],
# datatype="INT64",
# parameters={"content_type": "np", "headers": None},
# data=TensorData(__root__=[0.0, 1.0]),
# )
# ],
# )
Async versions of the same APIs are also available. Import AsyncOpenInfereClient instead, then await and requests made.
from open_inference.openapi.client import AsyncOpenInferenceClient
client = AsyncOpenInferenceClient(base_url="http://localhost:5002")
await client.check_server_readiness()
Dependencies
The open-inference-openapi python package relies on:
pydantic- Message formatting, structure, and validation.httpx- Implementation of the underlying HTTP transport.
Contribute
This client is largely generated automatically by fern, with a small amount of build post-processing in build.py.
Run
python build.pyto build this package, it will:
- If
fern/openapi/open_inference_rest.yamlis not found, download it from open-inference/open-inference-protocol/- Run
fern generateto create the python client (fern-api must be installednpm install --global fern-api)- Postprocess to correctly implement the recursive TensorData model.
- Prepend the Apache 2.0 License preamble
- Format with black
If you want to contribute to the open-inference-protocol itself, please create an issue or PR in the open-inference/open-inference-protocol repository.
License
By contributing to Open Inference Protocol Python client repository, you agree that your contributions will be licensed under its Apache 2.0 License.
Metadata
Release files for open-inference-openapi 2.0.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| open_inference_openapi-2.0.0.1.tar.gz | 11.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| open_inference_openapi-2.0.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 40.8 kB
Release files / open_inference_openapi-2.0.0.1.tar.gz
| Download URL | open_inference_openapi-2.0.0.1.tar.gz |
|---|---|
| Size | 11.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
aa2fbc2650d95d81957cb120e3ad37ef3d97ee4c2df7fb60cda2a0dce792555e
|
|
BLAKE2b-256 checksum How to use checksums |
f11d7afe42c6e77bebd07b2f1c80d29ec3bc20d9488a945bcca59422b8030780
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.8.2 CPython/3.11.8 Linux/5.15.146.1-microsoft-standard-WSL2
|
Release files / open_inference_openapi-2.0.0.1-py3-none-any.whl
| Download URL | open_inference_openapi-2.0.0.1-py3-none-any.whl |
|---|---|
| Size | 29.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
9d2b46cff9be8bd3f56adad171d2fa6986e4756413d09deff6e1bf2d85cae124
|
|
BLAKE2b-256 checksum How to use checksums |
8aec88d723d8025d00942d506e802648e2cc5342e714a338409e106f9c82d300
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.8.2 CPython/3.11.8 Linux/5.15.146.1-microsoft-standard-WSL2
|