Skip to main content

Library of the most popular Generative AI model pipelines, optimized execution methods, and samples

Project description

OpenVINO™ GenAI Library

OpenVINO™ GenAI is a flavor of OpenVINO™, aiming to simplify running inference of generative AI models. It hides the complexity of the generation process and minimizes the amount of code required.

Install OpenVINO™ GenAI

NOTE: Please make sure that you are following the versions compatibility rules, refer to the OpenVINO™ GenAI Dependencies for more information.

The OpenVINO™ GenAI flavor is available for installation via Archive and PyPI distributions. To install OpenVINO™ GenAI, refer to the Install Guide.

To build OpenVINO™ GenAI library from source, refer to the Build Instructions.

OpenVINO™ GenAI Dependencies

OpenVINO™ GenAI depends on OpenVINO and OpenVINO Tokenizers.

When installing OpenVINO™ GenAI from PyPi, the same versions of OpenVINO and OpenVINO Tokenizers are used (e.g. openvino==2024.3.0 and openvino-tokenizers==2024.3.0.0 are installed for openvino-genai==2024.3.0). If you update one of the dependency packages (e.g. pip install openvino --pre --extra-index-url https://storage.openvinotoolkit.org/simple/wheels/nightly), versions might be incompatible due to different ABI and running OpenVINO GenAI can result in errors (e.g. ImportError: libopenvino.so.2430: cannot open shared object file: No such file or directory). Having packages version in format <MAJOR>.<MINOR>.<PATCH>.<REVISION>, only <REVISION> part of the full version can be varied to ensure ABI compatibility, while changing <MAJOR>, <MINOR> or <PATCH> parts of the version might break ABI.

GenAI, Tokenizers, and OpenVINO wheels for Linux on PyPI are compiled with _GLIBCXX_USE_CXX11_ABI=0 to cover a wider range of platforms. In contrast, C++ archive distributions for Ubuntu are compiled with _GLIBCXX_USE_CXX11_ABI=1. It is not possible to mix different Application Binary Interfaces (ABIs) because doing so results in a link error. This incompatibility prevents the use of, for example, OpenVINO from C++ archive distributions alongside GenAI from PyPI.

If you want to try OpenVINO GenAI with different dependencies versions (not prebuilt packages as archives or python wheels), build OpenVINO GenAI library from source.

Usage

Prerequisites

  1. Installed OpenVINO™ GenAI

    To use OpenVINO GenAI with models that are already in OpenVINO format, no additional python dependencies are needed. To convert models with optimum-cli and to run the examples, install the dependencies in ./samples/requirements.txt:

    # (Optional) Clone OpenVINO GenAI repository if it does not exist
    git clone --recursive https://github.com/openvinotoolkit/openvino.genai.git
    cd openvino.genai
    # Install python dependencies
    python -m pip install ./thirdparty/openvino_tokenizers/[transformers] --extra-index-url https://storage.openvinotoolkit.org/simple/wheels/nightly
    python -m pip install --upgrade-strategy eager -r ./samples/requirements.txt
    
  2. A model in OpenVINO IR format

    Download and convert a model with optimum-cli:

    optimum-cli export openvino --model "TinyLlama/TinyLlama-1.1B-Chat-v1.0" --trust-remote-code "TinyLlama-1.1B-Chat-v1.0"
    

LLMPipeline is the main object used for decoding. You can construct it straight away from the folder with the converted model. It will automatically load the main model, tokenizer, detokenizer and default generation configuration.

Python

A simple example:

import openvino_genai as ov_genai
pipe = ov_genai.LLMPipeline(models_path, "CPU")
print(pipe.generate("The Sun is yellow because", max_new_tokens=100))

Calling generate with custom generation config parameters, e.g. config for grouped beam search:

import openvino_genai as ov_genai
pipe = ov_genai.LLMPipeline(models_path, "CPU")

result = pipe.generate("The Sun is yellow because", max_new_tokens=100, num_beam_groups=3, num_beams=15, diversity_penalty=1.5)
print(result)

output:

'it is made up of carbon atoms. The carbon atoms are arranged in a linear pattern, which gives the yellow color. The arrangement of carbon atoms in'

Note: The chat_template from tokenizer_config.json or from tokenizer/detokenizer model will be automatically applied to the prompt at the generation stage. If you want to disable it, you can do it by calling pipe.get_tokenizer().set_chat_template("").

A simple chat in Python:

import openvino_genai as ov_genai
pipe = ov_genai.LLMPipeline(models_path)

config = {'max_new_tokens': 100, 'num_beam_groups': 3, 'num_beams': 15, 'diversity_penalty': 1.5}
pipe.set_generation_config(config)

pipe.start_chat()
while True:
    print('question:')
    prompt = input()
    if prompt == 'Stop!':
        break
    print(pipe(prompt, max_new_tokens=200))
pipe.finish_chat()

Test to compare with Huggingface outputs

C++

A simple example:

#include "openvino/genai/llm_pipeline.hpp"
#include <iostream>

int main(int argc, char* argv[]) {
    std::string models_path = argv[1];
    ov::genai::LLMPipeline pipe(models_path, "CPU");
    std::cout << pipe.generate("The Sun is yellow because", ov::genai::max_new_tokens(256));
}

Using group beam search decoding:

#include "openvino/genai/llm_pipeline.hpp"
#include <iostream>

int main(int argc, char* argv[]) {
    std::string models_path = argv[1];
    ov::genai::LLMPipeline pipe(models_path, "CPU");

    ov::genai::GenerationConfig config;
    config.max_new_tokens = 256;
    config.num_beam_groups = 3;
    config.num_beams = 15;
    config.diversity_penalty = 1.0f;

    std::cout << pipe.generate("The Sun is yellow because", config);
}

A simple chat in C++ using grouped beam search decoding:

#include "openvino/genai/llm_pipeline.hpp"
#include <iostream>

int main(int argc, char* argv[]) {
    std::string prompt;

    std::string models_path = argv[1];
    ov::genai::LLMPipeline pipe(models_path, "CPU");

    ov::genai::GenerationConfig config;
    config.max_new_tokens = 100;
    config.num_beam_groups = 3;
    config.num_beams = 15;
    config.diversity_penalty = 1.0f;

    pipe.start_chat();
    for (;;;) {
        std::cout << "question:\n";
        std::getline(std::cin, prompt);
        if (prompt == "Stop!")
            break;

        std::cout << "answer:\n";
        auto answer = pipe(prompt, config);
        std::cout << answer << std::endl;
    }
    pipe.finish_chat();
}

Streaming example with lambda function:

#include "openvino/genai/llm_pipeline.hpp"
#include <iostream>

int main(int argc, char* argv[]) {
    std::string models_path = argv[1];
    ov::genai::LLMPipeline pipe(models_path, "CPU");

    auto streamer = [](std::string word) {
        std::cout << word << std::flush;
        // Return flag corresponds whether generation should be stopped.
        return ov::genai::StreamingStatus::RUNNING;
    };
    std::cout << pipe.generate("The Sun is yellow because", ov::genai::streamer(streamer), ov::genai::max_new_tokens(200));
}

Streaming with a custom class:

C++ template for a streamer.

#include "openvino/genai/streamer_base.hpp"
#include "openvino/genai/llm_pipeline.hpp"
#include <iostream>

class CustomStreamer: public ov::genai::StreamerBase {
public:
    bool put(int64_t token) {
        // Custom decoding/tokens processing logic.

        // Returns a flag whether generation should be stopped, if true generation stops.
        return false;
    };

    void end() {
        // Custom finalization logic.
    };
};

int main(int argc, char* argv[]) {
    CustomStreamer custom_streamer;

    std::string models_path = argv[1];
    ov::genai::LLMPipeline pipe(models_path, "CPU");
    std::cout << pipe.generate("The Sun is yellow because", ov::genai::max_new_tokens(15), ov::genai::streamer(custom_streamer));
}

Python template for a streamer.

import openvino_genai as ov_genai

class CustomStreamer(ov_genai.StreamerBase):
    def __init__(self):
        super().__init__()
        # Initialization logic.

    def put(self, token_id) -> bool:
        # Custom decoding/tokens processing logic.

        # Returns a flag whether generation should be stopped, if true generation stops.
        return False

    def end(self):
        # Custom finalization logic.

pipe = ov_genai.LLMPipeline(models_path, "CPU")
custom_streamer = CustomStreamer()

pipe.generate("The Sun is yellow because", max_new_tokens=15, streamer=custom_streamer)

For fully implemented iterable CustomStreamer please refer to multinomial_causal_lm sample.

Continuous batching with LLMPipeline:

To activate continuous batching please provide additional property to LLMPipeline config: ov::genai::scheduler_config. This property contains struct SchedulerConfig.

#include "openvino/genai/llm_pipeline.hpp"

int main(int argc, char* argv[]) {
    ov::genai::SchedulerConfig scheduler_config;
    // fill other fields in scheduler_config with custom data if required
    scheduler_config.cache_size = 1;    // minimal possible KV cache size in GB, adjust as required

    ov::genai::LLMPipeline pipe(models_path, "CPU", ov::genai::scheduler_config(scheduler_config));
}

Performance Metrics

openvino_genai.PerfMetrics (referred as PerfMetrics for simplicity) is a structure that holds performance metrics for each generate call. PerfMetrics holds fields with mean and standard deviations for the following metrics:

  • Time To the First Token (TTFT), ms
  • Time per Output Token (TPOT), ms/token
  • Generate total duration, ms
  • Tokenization duration, ms
  • Detokenization duration, ms
  • Throughput, tokens/s

and:

  • Load time, ms
  • Number of generated tokens
  • Number of tokens in the input prompt

Performance metrics are stored either in the DecodedResults or EncodedResults perf_metric field. Additionally to the fields mentioned above, PerfMetrics has a member raw_metrics of type openvino_genai.RawPerfMetrics (referred to as RawPerfMetrics for simplicity) that contains raw values for the durations of each batch of new token generation, tokenization durations, detokenization durations, and more. These raw metrics are accessible if you wish to calculate your own statistical values such as median or percentiles. However, since mean and standard deviation values are usually sufficient, we will focus on PerfMetrics.

import openvino_genai as ov_genai
pipe = ov_genai.LLMPipeline(models_path, "CPU")
result = pipe.generate(["The Sun is yellow because"], max_new_tokens=20)
perf_metrics = result.perf_metrics

print(f'Generate duration: {perf_metrics.get_generate_duration().mean:.2f}')
print(f'TTFT: {perf_metrics.get_ttft().mean:.2f} ms')
print(f'TPOT: {perf_metrics.get_tpot().mean:.2f} ms/token')
print(f'Throughput: {perf_metrics.get_throughput().mean:.2f} tokens/s')
#include "openvino/genai/llm_pipeline.hpp"
#include <iostream>

int main(int argc, char* argv[]) {
    std::string models_path = argv[1];
    ov::genai::LLMPipeline pipe(models_path, "CPU");
    auto result = pipe.generate("The Sun is yellow because", ov::genai::max_new_tokens(20));
    auto perf_metrics = result.perf_metrics;

    std::cout << std::fixed << std::setprecision(2);
    std::cout << "Generate duration: " << perf_metrics.get_generate_duration().mean << " ms" << std::endl;
    std::cout << "TTFT: " << metrics.get_ttft().mean  << " ms" << std::endl;
    std::cout << "TPOT: " << metrics.get_tpot().mean  << " ms/token " << std::endl;
    std::cout << "Throughput: " << metrics.get_throughput().mean  << " tokens/s" << std::endl;
}

output:

mean_generate_duration: 76.28
mean_ttft: 42.58
mean_tpot 3.80

Note: If the input prompt is just a string, the generate function returns only a string without perf_metrics. To obtain perf_metrics, provide the prompt as a list with at least one element or call generate with encoded inputs.

Accumulating metrics

Several perf_metrics can be added to each other. In that case raw_metrics are concatenated and mean/std values are recalculated. This accumulates statistics from several generate() calls

#include "openvino/genai/llm_pipeline.hpp"
#include <iostream>

int main(int argc, char* argv[]) {
    std::string models_path = argv[1];
    ov::genai::LLMPipeline pipe(models_path, "CPU");
    auto result_1 = pipe.generate("The Sun is yellow because", ov::genai::max_new_tokens(20));
    auto result_2 = pipe.generate("The Sun is yellow because", ov::genai::max_new_tokens(20));
    auto perf_metrics = result_1.perf_metrics + result_2.perf_metrics

    std::cout << std::fixed << std::setprecision(2);
    std::cout << "Generate duration: " << perf_metrics.get_generate_duration().mean << " ms" << std::endl;
    std::cout << "TTFT: " << metrics.get_ttft().mean  << " ms" << std::endl;
    std::cout << "TPOT: " << metrics.get_tpot().mean  << " ms/token " << std::endl;
    std::cout << "Throughput: " << metrics.get_throughput().mean  << " tokens/s" << std::endl;
}
import openvino_genai as ov_genai
pipe = ov_genai.LLMPipeline(models_path, "CPU")
res_1 = pipe.generate(["The Sun is yellow because"], max_new_tokens=20)
res_2 = pipe.generate(["Why Sky is blue because"], max_new_tokens=20)
perf_metrics = res_1.perf_metrics + res_2.perf_metrics

print(f'Generate duration: {perf_metrics.get_generate_duration().mean:.2f}')
print(f'TTFT: {perf_metrics.get_ttft().mean:.2f} ms')
print(f'TPOT: {perf_metrics.get_tpot().mean:.2f} ms/token')
print(f'Throughput: {perf_metrics.get_throughput().mean:.2f} tokens/s')

Using raw performance metrics

In addition to mean and standard deviation values, the perf_metrics object has a raw_metrics field. This field stores raw data, including:

  • Timestamps for each batch of generated tokens
  • Batch sizes for each timestamp
  • Tokenization durations
  • Detokenization durations
  • Other relevant metrics

These metrics can be use for more fine grained analysis, such as getting exact calculating median values, percentiles, etc. Below are a few examples of how to use raw metrics.

Getting timestamps for each generated token:

import openvino_genai as ov_genai
pipe = ov_genai.LLMPipeline(models_path, "CPU")
result = pipe.generate(["The Sun is yellow because"], max_new_tokens=20)
perf_metrics = result.perf_metrics
raw_metrics = perf_metrics.raw_metrics

print(f'Generate duration: {perf_metrics.get_generate_duration().mean:.2f}')
print(f'Throughput: {perf_metrics.get_throughput().mean:.2f} tokens/s')
print(f'Timestamps: {" ms, ".join(f"{i:.2f}" for i in raw_metrics.m_new_token_times)}')

Getting pure inference time without tokenizatin and detokenization duration:

import openvino_genai as ov_genai
import numpy as np
pipe = ov_genai.LLMPipeline(models_path, "CPU")
result = pipe.generate(["The Sun is yellow because"], max_new_tokens=20)
perf_metrics = result.perf_metrics
print(f'Generate duration: {perf_metrics.get_generate_duration().mean:.2f} ms')

raw_metrics = perf_metrics.raw_metrics
generate_duration = np.array(raw_metrics.generate_durations)
tok_detok_duration = np.array(raw_metrics.tokenization_durations) - np.array(raw_metrics.detokenization_durations)
pure_inference_duration = np.sum(generate_duration - tok_detok_duration) / 1000 # in milliseconds
print(f'Pure Inference duration: {pure_inference_duration:.2f} ms')

Example of using raw metrics to calculate median value of generate duration:

import openvino_genai as ov_genai
import numpy as np
pipe = ov_genai.LLMPipeline(models_path, "CPU")
result = pipe.generate(["The Sun is yellow because"], max_new_tokens=20)
perf_metrics = result.perf_metrics
raw_metrics = perf_metrics.raw_metrics

print(f'Generate duration: {perf_metrics.get_generate_duration().mean:.2f}')
print(f'Throughput: {perf_metrics.get_throughput().mean:.2f} tokens/s')
durations = np.array(raw_metrics.m_new_token_times[1:]) - np.array(raw_metrics.m_new_token_times[:-1])
print(f'Median from token to token duration: {np.median(durations):.2f} ms')

For more examples of how metrics are used, please refer to the Python benchmark_genai.py and C++ benchmark_genai samples.

Structured Output generation

OpenVINO™ GenAI supports structured output generation, which allows you to generate outputs in a structured format such as JSON, regex, or accoring to EBNF (Extended Backus–Naur form) grammar.

Below is a minimal example that demonstrates how to use OpenVINO™ GenAI to generate structured JSON output for a single item type (e.g., person). This example uses a Pydantic schema to define the structure and constraints of the generated output.

import json
from openvino_genai import LLMPipeline, GenerationConfig, StructuredOutputConfig
from pydantic import BaseModel, Field

# Define the schema for a person
class Person(BaseModel):
    name: str = Field(pattern=r"^[A-Z][a-z]{1,20}$")
    surname: str = Field(pattern=r"^[A-Z][a-z]{1,20}$")
    age: int
    city: str

pipe = LLMPipeline(models_path, "CPU")

config = GenerationConfig()
config.max_new_tokens = 100
# If backend is not specified, it will use the default backend which is "xgrammar" for the moment.
config.structured_output_config = StructuredOutputConfig(json_schema=json.dumps(Person.model_json_schema()), backend="xgrammar")

# Generate structured output
result = pipe.generate("Generate a JSON for a person.", config)
print(json.loads(result))

This will generate a JSON object matching the Person schema, for example:

{
  "name": "John",
  "surname": "Doe",
  "age": 30,
  "city": "Dublin"
}

Note:
Structured output enforcement guarantees correct JSON formatting, but does not ensure the factual correctness or sensibility of the content. The model may generate implausible or nonsensical data, such as {"name": "John", "age": 200000} or {"model": "AbrakaKadabra9999######4242"}. These are valid JSONs but may not make sense. For best results, use the latest or fine-tuned models for this task to improve the quality and relevance of the generated output.

Tokenization

OpenVINO™ GenAI provides a way to tokenize and detokenize text using the ov::genai::Tokenizer class. The Tokenizer is a high level abstraction over the OpenVINO Tokenizers library.

It can be initialized from the path, in-memory IR representation or obtained from the ov::genai::LLMPipeline object.

// Initialize from the path
#include "openvino/genai/llm_pipeline.hpp"
auto tokenizer = ov::genai::Tokenizer(models_path);

// Get instance of Tokenizer from LLMPipeline.
auto pipe = ov::genai::LLMPipeline pipe(models_path, "CPU");
auto tokenzier = pipe.get_tokenizer();
import openvino_genai as ov_genai
tokenizer = ov_genai.Tokenizer(models_path)

# Or from LLMPipeline.
pipe = ov_genai.LLMPipeline(models_path, "CPU")
tokenizer = pipe.get_tokenizer()

Tokenizer has encode and decode methods which support the following arguments: add_special_tokens, skip_special_tokens, pad_to_max_length, max_length arguments.

In order to disable adding special tokens do the followings, in C++:

auto tokens = tokenizer.encode("The Sun is yellow because", ov::genai::add_special_tokens(false));

In Python:

tokens = tokenizer.encode("The Sun is yellow because", add_special_tokens=False)

The encode method returns a TokenizedInputs object containing input_ids and attention_mask, both stored as ov::Tensor. Since ov::Tensor requires fixed-length sequences, padding is applied to match the longest sequence in a batch, ensuring a uniform shape. Also resulting sequence is truncated by max_length. If this value is not defined by used, it's is taken from the IR.

Both padding and max_length can be controlled by the user. If pad_to_max_length is set to true, then instead of padding to the longest sequence it will be padded to the max_length.

Below are example how padding can be controlled, in C++:

#include "openvino/genai/llm_pipeline.hpp"
auto tokenizer = ov::genai::Tokenizer(models_path);
std::vector<std::string> prompts = {"The Sun is yellow because", "The"};

// Since prompt is defenitely shorter than maximal length (which is taken from IR) will not affect shape.
// Resulting shape is defined by length of the longest tokens sequence.
// Equivalent of HuggingFace hf_tokenizer.encode(prompt, padding="longest", truncation=True)
tokens = tokenizer.encode({"The Sun is yellow because", "The"})
// or is equivalent to
tokens = tokenizer.encode({"The Sun is yellow because", "The"}, ov::genai::pad_to_max_length(False))
// out_shape: [2, 6]

// Resulting tokens tensor will be padded to 1024.
// Equivalent of HuggingFace hf_tokenizer.encode(prompt, padding="max_length", truncation=True, max_length=1024)
tokens = tokenizer.encode({"The Sun is yellow because", 
                           "The",
                           std::string(2000, 'n')}, ov::genai::pad_to_max_length(True), ov::genai::max_length(1024))
// out_shape: [3, 1024]

// For single string prompts truncation and padding are also applied.
tokens = tokenizer.encode({"The Sun is yellow because"}, ov::genai::pad_to_max_length(True), ov::genai::max_length(1024))
// out_shape: [1, 128]

In Python:

import openvino_genai as ov_genai

tokenizer = ov_genai.Tokenizer(models_path)
prompts = ["The Sun is yellow because", "The"]

# Since prompt is defenitely shorter than maximal length (which is taken from IR) will not affect shape.
# Resulting shape is defined by length of the longest tokens sequence.
# Equivalent of HuggingFace hf_tokenizer.encode(prompt, padding="longest", truncation=True)
tokens = tokenizer.encode(["The Sun is yellow because", "The"])
# or is equivalent to
tokens = tokenizer.encode(["The Sun is yellow because", "The"], pad_to_max_length=False)
print(tokens.input_ids.shape)
# out_shape: [2, 6]

# Resulting tokens tensor will be padded to 1024, sequences which exceed this length will be truncated.
# Equivalent of HuggingFace hf_tokenizer.encode(prompt, padding="max_length", truncation=True, max_length=1024)
tokens = tokenizer.encode(["The Sun is yellow because", 
                           "The"
                           "The longest string ever" * 2000], pad_to_max_length=True, max_length=1024)
print(tokens.input_ids.shape)
# out_shape: [3, 1024]

# For single string prompts truncation and padding are also applied.
tokens = tokenizer.encode("The Sun is yellow because", pad_to_max_length=True, max_length=128)
print(tokens.input_ids.shape)
# out_shape: [1, 128]

How It Works

For information on how OpenVINO™ GenAI works, refer to the How It Works Section.

Supported Models

For a list of supported models, refer to the Supported Models page.

Debug Log

For using debug log, refer to DEBUG Log.

Project details


Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

openvino_genai-2025.3.0.0-cp313-cp313-win_amd64.whl (2.3 MB view details)

Uploaded CPython 3.13Windows x86-64

openvino_genai-2025.3.0.0-cp313-cp313-manylinux_2_31_aarch64.whl (3.4 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.31+ ARM64

openvino_genai-2025.3.0.0-cp313-cp313-macosx_11_0_arm64.whl (2.8 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

openvino_genai-2025.3.0.0-cp313-cp313-macosx_10_15_x86_64.whl (3.2 MB view details)

Uploaded CPython 3.13macOS 10.15+ x86-64

openvino_genai-2025.3.0.0-cp312-cp312-win_amd64.whl (2.3 MB view details)

Uploaded CPython 3.12Windows x86-64

openvino_genai-2025.3.0.0-cp312-cp312-manylinux_2_31_aarch64.whl (3.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.31+ ARM64

openvino_genai-2025.3.0.0-cp312-cp312-macosx_11_0_arm64.whl (2.8 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

openvino_genai-2025.3.0.0-cp312-cp312-macosx_10_15_x86_64.whl (3.2 MB view details)

Uploaded CPython 3.12macOS 10.15+ x86-64

openvino_genai-2025.3.0.0-cp311-cp311-win_amd64.whl (2.3 MB view details)

Uploaded CPython 3.11Windows x86-64

openvino_genai-2025.3.0.0-cp311-cp311-manylinux_2_31_aarch64.whl (3.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.31+ ARM64

openvino_genai-2025.3.0.0-cp311-cp311-macosx_11_0_arm64.whl (2.8 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

openvino_genai-2025.3.0.0-cp311-cp311-macosx_10_15_x86_64.whl (3.2 MB view details)

Uploaded CPython 3.11macOS 10.15+ x86-64

openvino_genai-2025.3.0.0-cp310-cp310-win_amd64.whl (2.3 MB view details)

Uploaded CPython 3.10Windows x86-64

openvino_genai-2025.3.0.0-cp310-cp310-manylinux_2_31_aarch64.whl (3.4 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.31+ ARM64

openvino_genai-2025.3.0.0-cp310-cp310-macosx_11_0_arm64.whl (2.8 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

openvino_genai-2025.3.0.0-cp310-cp310-macosx_10_15_x86_64.whl (3.2 MB view details)

Uploaded CPython 3.10macOS 10.15+ x86-64

openvino_genai-2025.3.0.0-cp39-cp39-win_amd64.whl (2.4 MB view details)

Uploaded CPython 3.9Windows x86-64

openvino_genai-2025.3.0.0-cp39-cp39-manylinux_2_31_aarch64.whl (3.4 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.31+ ARM64

openvino_genai-2025.3.0.0-cp39-cp39-macosx_11_0_arm64.whl (2.8 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

openvino_genai-2025.3.0.0-cp39-cp39-macosx_10_15_x86_64.whl (3.2 MB view details)

Uploaded CPython 3.9macOS 10.15+ x86-64

File details

Details for the file openvino_genai-2025.3.0.0-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for openvino_genai-2025.3.0.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 1cacc37d002d47014ab59ccb373800b6b2d71700b3241d6dd80dc3c97fd0abca
MD5 53dc2c2337bad4682d3945108ccb222f
BLAKE2b-256 e35896c005f843595edf437cb5f85b263dd578900ddb89c6a66424dcac5326d6

See more details on using hashes here.

File details

Details for the file openvino_genai-2025.3.0.0-cp313-cp313-manylinux_2_31_aarch64.whl.

File metadata

File hashes

Hashes for openvino_genai-2025.3.0.0-cp313-cp313-manylinux_2_31_aarch64.whl
Algorithm Hash digest
SHA256 cf8d17b1f0e399b876a435a7b441a9c1dee846849800117fb8c348622d802928
MD5 cb4387dd69c01ce44164217f9825151e
BLAKE2b-256 b5826ec98ee86c794dd87d0627cc30bcd28561da270634c3576aaac8178d469f

See more details on using hashes here.

File details

Details for the file openvino_genai-2025.3.0.0-cp313-cp313-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for openvino_genai-2025.3.0.0-cp313-cp313-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 eb80b95e1ef70677378878b9acae3d01aa93f2a533c645e72af2a88a329d5438
MD5 8772baf4517cd89589277a70627249e4
BLAKE2b-256 84f80ed4bbdc0c51a26f4bb80b48e05e802fdce563de4089d8ef8bc1fa6dbee2

See more details on using hashes here.

File details

Details for the file openvino_genai-2025.3.0.0-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for openvino_genai-2025.3.0.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e12851729984a1375eed0060e1f90bb90f5ae4b5a34189d519414f2541b29967
MD5 b3c9c635b9860f0f07621c2ec722cc11
BLAKE2b-256 bac1cbfad42ef7bfecca4d7478223a4a99e2b97caccd56c32df5e3549f7cf419

See more details on using hashes here.

File details

Details for the file openvino_genai-2025.3.0.0-cp313-cp313-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for openvino_genai-2025.3.0.0-cp313-cp313-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 6ec72283e8fe9ac055c2df0803d69f66a0c019932e38f25b3c9712996d52d21d
MD5 d0ba41dcb8d9d564aca001c4402ce5e7
BLAKE2b-256 297b49306c8ab70277401dc0dfffbe83e7622a3bc02268234069c40519941681

See more details on using hashes here.

File details

Details for the file openvino_genai-2025.3.0.0-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for openvino_genai-2025.3.0.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 b2cb2ab34ff968de2e2c6c19602192fb922f9ff2a58f2b52b5345e06c8116ead
MD5 4a36ab56f5332f31045cf06f9f8de98c
BLAKE2b-256 43f9b9fc680d920958c735d38091c3e8a3609220892c1bc73ca44e0c6f1702fa

See more details on using hashes here.

File details

Details for the file openvino_genai-2025.3.0.0-cp312-cp312-manylinux_2_31_aarch64.whl.

File metadata

File hashes

Hashes for openvino_genai-2025.3.0.0-cp312-cp312-manylinux_2_31_aarch64.whl
Algorithm Hash digest
SHA256 9779c9374497b94251aac34bc5f74619561a32d7b930c7575707761e02235dde
MD5 9e4efbd31813c08ae2b5e974b298ec6c
BLAKE2b-256 00d25662436fd7d65927b9e440eebb6c875ad0eb4942d119fb859df9a38a3c08

See more details on using hashes here.

File details

Details for the file openvino_genai-2025.3.0.0-cp312-cp312-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for openvino_genai-2025.3.0.0-cp312-cp312-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3d3af8cf54666243dfdf9a716010ae695a26536deb6c9ee538db06bb6f1078df
MD5 721e2d79ce841bf9e6bb0d3ffbd3a082
BLAKE2b-256 c6682973599e8d1892f9ce53ba6edbe4a2e0608ba9206b71f00fdd44bd6f1ce2

See more details on using hashes here.

File details

Details for the file openvino_genai-2025.3.0.0-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for openvino_genai-2025.3.0.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c3db9e770b0c96a3a477302df9720eabb7a444ad6322f9f5753e3f982e2078ee
MD5 ca9aa40e87922f351091184280273cbd
BLAKE2b-256 3d27ddc562fd64d95f5a9ef5e4d8279c23fec99fe855b0276d69c6240b934e55

See more details on using hashes here.

File details

Details for the file openvino_genai-2025.3.0.0-cp312-cp312-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for openvino_genai-2025.3.0.0-cp312-cp312-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 a9a268de628465c8ecd5e971945e1b4d12e2f5614a08cd8deac6ada26e7c598d
MD5 94aaedd73f6c6b9caa291848c120d360
BLAKE2b-256 f47f1b1f57f100e0677f10911348607b708b1376c89f026a2e28f93275bbc547

See more details on using hashes here.

File details

Details for the file openvino_genai-2025.3.0.0-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for openvino_genai-2025.3.0.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 6bf4a21fefecc2d908cdbf3893464e7fb1bb9789f5ad766e5401a9afc0788e29
MD5 c5c3824d62a9a9c07ba1f776bd750cbc
BLAKE2b-256 87c9ce9633587dc6030f75e755506a3ad45a5891db5ca43f1dc2c16f3d28883d

See more details on using hashes here.

File details

Details for the file openvino_genai-2025.3.0.0-cp311-cp311-manylinux_2_31_aarch64.whl.

File metadata

File hashes

Hashes for openvino_genai-2025.3.0.0-cp311-cp311-manylinux_2_31_aarch64.whl
Algorithm Hash digest
SHA256 7cede60df11d544705419c5f1fa6c78d6d3fa26cf4cf0d30d2805c9584cd6c92
MD5 91721500b3e5bb78eb6a659f513f5535
BLAKE2b-256 33d9194222934c44947bb07dba5372571ce71ecc3c97cfe75eb0058960780660

See more details on using hashes here.

File details

Details for the file openvino_genai-2025.3.0.0-cp311-cp311-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for openvino_genai-2025.3.0.0-cp311-cp311-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 14a2add754f7dded87926d477bc011be470fb97ab39d1004c44d063f6c3b740b
MD5 6035fcda4154b5ffbf17b85770e31c03
BLAKE2b-256 455b13b194facc1daa48cda1298e3b88ccb10c29d840d41582d2b79de815bb9b

See more details on using hashes here.

File details

Details for the file openvino_genai-2025.3.0.0-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for openvino_genai-2025.3.0.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c47ab72f9eefedf9b4eafaf1cc33fbb194e2814e7069a952fca89cfa7a75e020
MD5 892525cddb4733ba5e008f535b7a5d4d
BLAKE2b-256 af1f35b00bf7442bf9af3119c6cc3644088c0dfdf8a643faa2c05ef579e5b6e2

See more details on using hashes here.

File details

Details for the file openvino_genai-2025.3.0.0-cp311-cp311-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for openvino_genai-2025.3.0.0-cp311-cp311-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 b3c7f876d11776bfb73d468e628cac493701d4ac5759d69f1449c461e7e37eb6
MD5 6374d1fc479a0f66dab34f91a315fda5
BLAKE2b-256 ea882852cbeae03908a545484230fec7d92e88739bc2f5ee805d6f8ff3c16b4e

See more details on using hashes here.

File details

Details for the file openvino_genai-2025.3.0.0-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for openvino_genai-2025.3.0.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 7d000c3c706ff41dd2ad8a9df75e7d3f3c82e85aef43f1ab182911dccd8157e2
MD5 92d43b805b511542b52c76957dade75b
BLAKE2b-256 e9d59a5a53cce71137d854d884808fd726b2aa682e81505e40858cd937ce6121

See more details on using hashes here.

File details

Details for the file openvino_genai-2025.3.0.0-cp310-cp310-manylinux_2_31_aarch64.whl.

File metadata

File hashes

Hashes for openvino_genai-2025.3.0.0-cp310-cp310-manylinux_2_31_aarch64.whl
Algorithm Hash digest
SHA256 5740bd0345bd5c67aa0855a12769b7df844d2d3033a04b3cfbe514612f641b28
MD5 b6cbc5a0ba4047b1ac98802f562f20d3
BLAKE2b-256 371e2016f67eefb4191dc6709162065d31b86eb9ec76699a5ca55fefac7e286f

See more details on using hashes here.

File details

Details for the file openvino_genai-2025.3.0.0-cp310-cp310-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for openvino_genai-2025.3.0.0-cp310-cp310-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 497e96bafeb1736d2572cf57123c9d5f550e0c383fa11931cae28cfb329603a1
MD5 9f8a20d79e326618d0f7217c16a0aa6e
BLAKE2b-256 35df5183583edd6727731964905e051bd820597deb8a39ff45baf8df43be817c

See more details on using hashes here.

File details

Details for the file openvino_genai-2025.3.0.0-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for openvino_genai-2025.3.0.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a2310d429acac021743ead5ee6e3f9b91a05aebd10ce5ae4f285ecbff3c7fe9d
MD5 fdc69fa3cf989eed79dceff498c2f857
BLAKE2b-256 6faf3bcf053d270aa65eca9a54a56c53c74fba9ccce469eee214844a02d70739

See more details on using hashes here.

File details

Details for the file openvino_genai-2025.3.0.0-cp310-cp310-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for openvino_genai-2025.3.0.0-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 c78b2459bb5643f09ae5cfe8bd80ad8034747f4439483b4dc8f39e1acfd73747
MD5 17ad28ba615c2cbde9fa458d14af341f
BLAKE2b-256 6a1f82b58462667487ae56aa60871159bcdcfa4adcfc92b16f03b9893235b3a6

See more details on using hashes here.

File details

Details for the file openvino_genai-2025.3.0.0-cp39-cp39-win_amd64.whl.

File metadata

File hashes

Hashes for openvino_genai-2025.3.0.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 79cf23c954cceee914c9fb13cd4b335b6b20f1fedf6df65fec623dca3df9752c
MD5 989562c94dd354b0a93af843401253db
BLAKE2b-256 91ee6880ebe3bb9ec42bacd3995a3a6470037390baaffdb0ae879359801f5c9f

See more details on using hashes here.

File details

Details for the file openvino_genai-2025.3.0.0-cp39-cp39-manylinux_2_31_aarch64.whl.

File metadata

File hashes

Hashes for openvino_genai-2025.3.0.0-cp39-cp39-manylinux_2_31_aarch64.whl
Algorithm Hash digest
SHA256 86066afcdfecee586bce8093a38b30588f9381d8c81c80cfe22095488ee41471
MD5 555b49588ebccb0651ff8751c417019b
BLAKE2b-256 37db5c4a47b1ee5b50e18a115f8fdbdd535d5074dc12a98173940482215a0138

See more details on using hashes here.

File details

Details for the file openvino_genai-2025.3.0.0-cp39-cp39-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for openvino_genai-2025.3.0.0-cp39-cp39-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 4b3a9d6afa801354220a8c96112b447ec5dcf827b74600306893909810895219
MD5 df034a2135844b7f439fccd33fff1b3b
BLAKE2b-256 6ae51b6fabd095282f29e2fb0b2fd9bee908eceb967329341781911c7b4617a7

See more details on using hashes here.

File details

Details for the file openvino_genai-2025.3.0.0-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for openvino_genai-2025.3.0.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 da8c8b5cc5f2a5fcf73a16f49033a19f7afb9d34117eb93818dc127ffe4a2a85
MD5 fa13d5bb89d5a87d1c2d51c1a0c64c1e
BLAKE2b-256 9a162bad802f356f017ebd1496a8196d300625de6c6be319b806ee8f9e9fae81

See more details on using hashes here.

File details

Details for the file openvino_genai-2025.3.0.0-cp39-cp39-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for openvino_genai-2025.3.0.0-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 677673f21811ae0940343ccbca11918f53d824853d343b101649d026b1856292
MD5 a526de6fcdf47b23394300c4390e5033
BLAKE2b-256 12c67702947b73a2c20daa6d6b1186da93f4cf84b65e5c0b9c0c0340dc634a0e

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