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.

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 Section.

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.2.0.0-cp313-cp313-win_amd64.whl (2.2 MB view details)

Uploaded CPython 3.13Windows x86-64

openvino_genai-2025.2.0.0-cp313-cp313-manylinux_2_31_aarch64.whl (3.5 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.31+ ARM64

openvino_genai-2025.2.0.0-cp313-cp313-macosx_11_0_arm64.whl (2.7 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

openvino_genai-2025.2.0.0-cp313-cp313-macosx_10_15_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.13macOS 10.15+ x86-64

openvino_genai-2025.2.0.0-cp312-cp312-win_amd64.whl (2.2 MB view details)

Uploaded CPython 3.12Windows x86-64

openvino_genai-2025.2.0.0-cp312-cp312-manylinux_2_31_aarch64.whl (3.5 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.31+ ARM64

openvino_genai-2025.2.0.0-cp312-cp312-macosx_11_0_arm64.whl (2.7 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

openvino_genai-2025.2.0.0-cp312-cp312-macosx_10_15_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.12macOS 10.15+ x86-64

openvino_genai-2025.2.0.0-cp311-cp311-win_amd64.whl (2.2 MB view details)

Uploaded CPython 3.11Windows x86-64

openvino_genai-2025.2.0.0-cp311-cp311-manylinux_2_31_aarch64.whl (3.5 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.31+ ARM64

openvino_genai-2025.2.0.0-cp311-cp311-macosx_11_0_arm64.whl (2.7 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

openvino_genai-2025.2.0.0-cp311-cp311-macosx_10_15_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.11macOS 10.15+ x86-64

openvino_genai-2025.2.0.0-cp310-cp310-win_amd64.whl (2.2 MB view details)

Uploaded CPython 3.10Windows x86-64

openvino_genai-2025.2.0.0-cp310-cp310-manylinux_2_31_aarch64.whl (3.5 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.31+ ARM64

openvino_genai-2025.2.0.0-cp310-cp310-macosx_11_0_arm64.whl (2.7 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

openvino_genai-2025.2.0.0-cp310-cp310-macosx_10_15_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.10macOS 10.15+ x86-64

openvino_genai-2025.2.0.0-cp39-cp39-win_amd64.whl (2.1 MB view details)

Uploaded CPython 3.9Windows x86-64

openvino_genai-2025.2.0.0-cp39-cp39-manylinux_2_31_aarch64.whl (3.5 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.31+ ARM64

openvino_genai-2025.2.0.0-cp39-cp39-macosx_11_0_arm64.whl (2.7 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

openvino_genai-2025.2.0.0-cp39-cp39-macosx_10_15_x86_64.whl (3.1 MB view details)

Uploaded CPython 3.9macOS 10.15+ x86-64

File details

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

File metadata

File hashes

Hashes for openvino_genai-2025.2.0.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 adf1db3c70ace88b9ff6a6901b6e19a4360cf9a3164e8fd90880c8e4149fb858
MD5 d6c6b04fb01ea5363bb92923d9a8fec8
BLAKE2b-256 3881a171c2033e50a08267233fe7c732dd30043b083a2e94e40f2ad166276c59

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openvino_genai-2025.2.0.0-cp313-cp313-manylinux_2_31_aarch64.whl
Algorithm Hash digest
SHA256 422a0d7d064bf1e9fbc5576e3a53532a1de49c430c8a7696551605a6be145521
MD5 a9d894f12c7cc7a951724b09436a456b
BLAKE2b-256 362f8f736c2e27db4f837428489f7108cb7f0e9d95d4d5041b70fb19b1022b77

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openvino_genai-2025.2.0.0-cp313-cp313-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 03e8cd303c04be37b56f8102c99b3bc7904623e3b677dfb233fddab067e04281
MD5 6cf3f6a35d34428d7c932662a5bcc7c3
BLAKE2b-256 a7d260ce535a4c4cefa639f80e8e411c7a1780e9bbf7cebe0ff3f7a5e23de11b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openvino_genai-2025.2.0.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5295d677028c9b444995c42d3eb9defa952174b0cdb6c477f0f013d787149066
MD5 c0d3070069409db53fa7a16aa91b9d3c
BLAKE2b-256 63c210e5eda958d7d70e42cb3cdbf1c989a467bd7c624789c4d99135c2145f21

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openvino_genai-2025.2.0.0-cp313-cp313-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 e9f6caec585ad966df03e75007be81e8dfe1203decd79a432ce918b7d6c2eabb
MD5 1a6e919f56a1377b4ee4abc504ecc7e8
BLAKE2b-256 e353cc2592885a396ef5726434d32c56b84b15dfe990f7d1e0b6f0ae56c2692a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openvino_genai-2025.2.0.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 8177d4f08aa376ec14537b753220dcfeabd479fda3372613289f08d58cf67562
MD5 3e70d464608f93b3a1f6af4134999d45
BLAKE2b-256 228c3108611d9b6b0b3a9d7bbccb65a06d778d4b8d0c2b95c1b89ab9b6f62759

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openvino_genai-2025.2.0.0-cp312-cp312-manylinux_2_31_aarch64.whl
Algorithm Hash digest
SHA256 f5ed97127ae0326b5308c3e2dc777a5314f65c0b449edaeb3c434673e9788f6d
MD5 ca8c3141d00e459aff48d4929108d4a4
BLAKE2b-256 d3a4a5fe115d88de26f2f473c5017f32adeb4f27f09d4783731be433e546fbb9

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openvino_genai-2025.2.0.0-cp312-cp312-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 eb1473709a57cc944fd28e0662169c3c5c43b479069b577579536dee4597c54d
MD5 1e3526eea94a48c60aefc1b01e77a48d
BLAKE2b-256 90581ea29bedf9a2be4ea0cfcd72e6a95af6e33049cbdac93827e58945da4c28

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openvino_genai-2025.2.0.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a04b66cac98f66e10b8aff4e95a54a0f66ee243e2c9474fe06485185f948273f
MD5 917550100a664398fe153a0141878eef
BLAKE2b-256 0362bf6df93ec46bb7a184eaa9e2c2ef578c27321429a9e0f1b3ffc473b3bccb

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openvino_genai-2025.2.0.0-cp312-cp312-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 f1fcfe12f3102f9bd1abfde6672af052eb5df152071501550ee937b08620f070
MD5 42d2fffb9aadeee4dc88e541e4133eba
BLAKE2b-256 e37c3bd8be4c83e4bdeb7202cd0f36b7f98bdeaee7142aa47204fba3bd126edd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openvino_genai-2025.2.0.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 efe72002ff38946228149aa737b00617dff87957810004b14c25b0d28c88f692
MD5 1d903a3d52fd9a5d7d01f05677e1c305
BLAKE2b-256 8669ec4eaa62acfd66345e077d1c4f472f8be7338bf6106ce7aa2b28a6710ec1

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openvino_genai-2025.2.0.0-cp311-cp311-manylinux_2_31_aarch64.whl
Algorithm Hash digest
SHA256 5617394dd2b4225970ce583507cf77ed4156361f174f79509474b41c01317149
MD5 c477270b063a71153d8df21784fc0af8
BLAKE2b-256 efcf460e6c86fa3c5ca524b12aa9c001f2fc17f81fa32027e73f705da7e3a4b6

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openvino_genai-2025.2.0.0-cp311-cp311-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 a63221ac6184dcfc6b1dcc82cf7e4c74e48d7ef5d61169150b54eeea2b3b7ff7
MD5 c6ca3c8345e3b0b9d6cc2c731a64762c
BLAKE2b-256 588fcf71485d84a9cd8d01af2ab74c98a5e6dff4bb79a7b9ff08293199e10027

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openvino_genai-2025.2.0.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 f718f571561633ecb516a8258382c55648e6c6b1040e32e137c0d23431b92c41
MD5 a2eaae95dfa19187c6573ae4fee4890d
BLAKE2b-256 a91c6d96d2a33c979ec9e46cffc64805c81263dc1c68e251aadc50fafe1f75e0

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openvino_genai-2025.2.0.0-cp311-cp311-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 2101b1b2843f35a492ff889f6020bd7085bc48c4574707cb7f343df29c592f96
MD5 0e00d1e69e71e96d048d1200dece967d
BLAKE2b-256 206c690f1bfeb63e334f2ad6567174b5b37a0e1d70c77da6fcabde0e7fa0f225

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openvino_genai-2025.2.0.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 cc76ffb78d692af58aa859050b554aecb9f39b523c68aed0f4591ed5ea510a9d
MD5 43d6ef1cedf19277e7f28b8c788d7190
BLAKE2b-256 ca3eab84cb3743053a670722a817d741e343744b4a46dee83c0d6d6e594484d8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openvino_genai-2025.2.0.0-cp310-cp310-manylinux_2_31_aarch64.whl
Algorithm Hash digest
SHA256 e937ed5e86d24fac21231ad3df7264151789dd8d0f65f1e07a62c6f58f848da5
MD5 905bc1f10e63039caf3a95a27fbf7750
BLAKE2b-256 515e2c9443dbd785ccf88c6d96e37d1657f3270c7c1c4f6657677de750ebb854

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openvino_genai-2025.2.0.0-cp310-cp310-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ffa816b74bec8c9ba575f9d526ef071e0bbe8ef3d725d0dee0f3a14d4f4e75c6
MD5 165194c09e62ea629cc76c9cedc97551
BLAKE2b-256 537b1940f7997375d29b9eebc65e1aac75b751d64f524a438befc378d651b34f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openvino_genai-2025.2.0.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 72d084657002c3690207db3dd8db67d0aa9a13d14abe68a9af3d0a2e6cbcda88
MD5 ad72268499ed8dc0421fdaa7e0085d97
BLAKE2b-256 9502bb56f15700c8d1507f3964a8fba55b27f5f0a50cf2548e18de14ddcd6ac3

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openvino_genai-2025.2.0.0-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 608d1b16d2ca6653358165d5ac9eb67594c8d8e64b5b6e89ff59b61d5edb8cc2
MD5 35e7003967f837fbdd94ac3590c816ff
BLAKE2b-256 2859ccc191f98aea661f11e62b98923e08ac29e654464cec9c5a67a347327b94

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openvino_genai-2025.2.0.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 1374ffac79954cb668edeb4e050c9ff1a3766d42811f7082b960d0d077dbcad2
MD5 58c792581e95b6f08f0c084445ed3f4a
BLAKE2b-256 0675713e3542a5f36709ed0bf9ea892ffd04752c291ee3a7e5b5567973b1bdcf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openvino_genai-2025.2.0.0-cp39-cp39-manylinux_2_31_aarch64.whl
Algorithm Hash digest
SHA256 392bcb10d192c4e55a2c998d9d8c9953fded251cb6d1fecbf6c00ed9ec53f39a
MD5 d3c50de6a25aa97d731101eed28a7de7
BLAKE2b-256 c7d666328023a74c6ba4a2fa56d1e1016033fa72a8e525d9dd286e7039cb2c83

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openvino_genai-2025.2.0.0-cp39-cp39-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 177d5d024f3102c139a13970c1eb02c92e12e4d714836516a258c2347edc52f2
MD5 6f125fb485c823b67297856ab02c3b94
BLAKE2b-256 a8b174209a5b59b9309bd469601e93d580b860c4b7f58e58ac5b35773f02d01f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openvino_genai-2025.2.0.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6a0d55b9735090ebf9f853b9cf2bc1f05fe008872a1a758887633f8048379595
MD5 73f9f8b878a456bce32b44849d8ad1f7
BLAKE2b-256 8d52f37851d98a5f1a91bd2d6b2f7bfbe59780259651ed48f1984f5d8e30c58b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openvino_genai-2025.2.0.0-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 3c92eb583770090eeb5ea07f4a986be120a8a9f2c172beec62d0e4b52a3cac1d
MD5 89c30344a869e6993bc0c96da54eb938
BLAKE2b-256 78158e51de8fa69c2f3fad981a19df6bd9ed9f6b30afca3b81395fa9c27442f0

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