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 according 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 following, 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 definitely 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 definitely 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.4.1.0-1901-cp314-cp314t-win_amd64.whl (2.7 MB view details)

Uploaded CPython 3.14tWindows x86-64

openvino_genai-2025.4.1.0-1901-cp314-cp314t-macosx_11_0_arm64.whl (3.4 MB view details)

Uploaded CPython 3.14tmacOS 11.0+ ARM64

openvino_genai-2025.4.1.0-1901-cp314-cp314t-macosx_10_15_x86_64.whl (3.5 MB view details)

Uploaded CPython 3.14tmacOS 10.15+ x86-64

openvino_genai-2025.4.1.0-1901-cp314-cp314-win_amd64.whl (2.7 MB view details)

Uploaded CPython 3.14Windows x86-64

openvino_genai-2025.4.1.0-1901-cp314-cp314-macosx_11_0_arm64.whl (3.3 MB view details)

Uploaded CPython 3.14macOS 11.0+ ARM64

openvino_genai-2025.4.1.0-1901-cp314-cp314-macosx_10_15_x86_64.whl (3.4 MB view details)

Uploaded CPython 3.14macOS 10.15+ x86-64

openvino_genai-2025.4.1.0-1901-cp313-cp313-win_amd64.whl (2.7 MB view details)

Uploaded CPython 3.13Windows x86-64

openvino_genai-2025.4.1.0-1901-cp313-cp313-manylinux_2_31_aarch64.whl (3.9 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.31+ ARM64

openvino_genai-2025.4.1.0-1901-cp313-cp313-macosx_11_0_arm64.whl (3.3 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

openvino_genai-2025.4.1.0-1901-cp313-cp313-macosx_10_15_x86_64.whl (3.4 MB view details)

Uploaded CPython 3.13macOS 10.15+ x86-64

openvino_genai-2025.4.1.0-1901-cp312-cp312-win_amd64.whl (2.7 MB view details)

Uploaded CPython 3.12Windows x86-64

openvino_genai-2025.4.1.0-1901-cp312-cp312-manylinux_2_31_aarch64.whl (3.9 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.31+ ARM64

openvino_genai-2025.4.1.0-1901-cp312-cp312-macosx_11_0_arm64.whl (3.3 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

openvino_genai-2025.4.1.0-1901-cp312-cp312-macosx_10_15_x86_64.whl (3.4 MB view details)

Uploaded CPython 3.12macOS 10.15+ x86-64

openvino_genai-2025.4.1.0-1901-cp311-cp311-win_amd64.whl (2.7 MB view details)

Uploaded CPython 3.11Windows x86-64

openvino_genai-2025.4.1.0-1901-cp311-cp311-manylinux_2_31_aarch64.whl (3.9 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.31+ ARM64

openvino_genai-2025.4.1.0-1901-cp311-cp311-macosx_11_0_arm64.whl (3.3 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

openvino_genai-2025.4.1.0-1901-cp311-cp311-macosx_10_15_x86_64.whl (3.4 MB view details)

Uploaded CPython 3.11macOS 10.15+ x86-64

openvino_genai-2025.4.1.0-1901-cp310-cp310-win_amd64.whl (2.7 MB view details)

Uploaded CPython 3.10Windows x86-64

openvino_genai-2025.4.1.0-1901-cp310-cp310-manylinux_2_31_aarch64.whl (3.9 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.31+ ARM64

openvino_genai-2025.4.1.0-1901-cp310-cp310-macosx_11_0_arm64.whl (3.3 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

openvino_genai-2025.4.1.0-1901-cp310-cp310-macosx_10_15_x86_64.whl (3.4 MB view details)

Uploaded CPython 3.10macOS 10.15+ x86-64

File details

Details for the file openvino_genai-2025.4.1.0-1901-cp314-cp314t-win_amd64.whl.

File metadata

File hashes

Hashes for openvino_genai-2025.4.1.0-1901-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 de1c480bb204d64b302c5de0ae928f6965ed70fc53fa228932fbeaaa5f7561a7
MD5 d916847e48b5f01a66642f5723cab678
BLAKE2b-256 426a2f8bb24f22ef8a10bf1f588df4986ec94050f851f56b9cd8df84252500c0

See more details on using hashes here.

File details

Details for the file openvino_genai-2025.4.1.0-1901-cp314-cp314t-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for openvino_genai-2025.4.1.0-1901-cp314-cp314t-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 b30ea2d1c3a691875e28ddbe7849d8a26aece89319d6c0ccb05722bfb5fdb948
MD5 a40bc19b9900870777676c946deffad4
BLAKE2b-256 e0b21f12914c052348eaeca3b915f9c10f5a41767f74b082d047b75c087714cc

See more details on using hashes here.

File details

Details for the file openvino_genai-2025.4.1.0-1901-cp314-cp314t-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for openvino_genai-2025.4.1.0-1901-cp314-cp314t-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 3370c18efd7ac0b41dee736068f19f56704648c7976be4cd626398e659363369
MD5 c66b9bac68533fb87813c06ade6a15b8
BLAKE2b-256 3c82f7724ac1c1f47c2f0e97f05135a60b8c88fad0ddaa43536a3f8ef280970f

See more details on using hashes here.

File details

Details for the file openvino_genai-2025.4.1.0-1901-cp314-cp314t-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for openvino_genai-2025.4.1.0-1901-cp314-cp314t-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 742a9ca1997b5442c9f7ab3efdd0b132d67cf1bb5702793b2f42aa9d29492b37
MD5 d2278a664d290b5e67f3f272049d3dcb
BLAKE2b-256 01ed71b538dc6e4558d70c403199317ed3821443d27ad07e7ee1b3e2551f08e3

See more details on using hashes here.

File details

Details for the file openvino_genai-2025.4.1.0-1901-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for openvino_genai-2025.4.1.0-1901-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 519f5d0d4960cf1edb3d4e4bbb5727862805b296af06ae24abb559e3767a9c4b
MD5 5e5cfcdcd36f385ee94bc4f561e5044a
BLAKE2b-256 69eafba953e7fb7153568e1a5a2f348369b99cd954801a8951fd931c2a824498

See more details on using hashes here.

File details

Details for the file openvino_genai-2025.4.1.0-1901-cp314-cp314-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for openvino_genai-2025.4.1.0-1901-cp314-cp314-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 f7ca88265b99236983c5fbadb2a3d2f190b7e64605216239446a0c5cbe80f53c
MD5 040b1c0f18dc549fdb15d09a51a309aa
BLAKE2b-256 dd90fd52ce9d37ad57e3a205897e3a88a12c442e2a4b2dc9e5f2e52974bb580d

See more details on using hashes here.

File details

Details for the file openvino_genai-2025.4.1.0-1901-cp314-cp314-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for openvino_genai-2025.4.1.0-1901-cp314-cp314-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 22434af46cfd6b7f13c10ab1c3d31ac8bfcf978c601d4a16e5a9be5945946644
MD5 828021e86e9b03c665968cbf3a342056
BLAKE2b-256 819cf0f5b054a4d5601c2cc3e660c715eaa143daa25eb36a65197a98768859ba

See more details on using hashes here.

File details

Details for the file openvino_genai-2025.4.1.0-1901-cp314-cp314-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for openvino_genai-2025.4.1.0-1901-cp314-cp314-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 5be17f9606b15c5ae9e01275ac832ffb6fef88b01c3062862a2910d9be734cea
MD5 df179e92f0493927c4e2ee806d3ed345
BLAKE2b-256 9e5282a09fe10b0e0b93cb9af966182150324f7b0c2673f387ec35ef51ce232c

See more details on using hashes here.

File details

Details for the file openvino_genai-2025.4.1.0-1901-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for openvino_genai-2025.4.1.0-1901-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 9310c1609fe6582507b843de4db32900034ad447993055f6e60e1bd9c4594516
MD5 4817c2dad202403b6acdf7a16110bab5
BLAKE2b-256 81d4ad7db88b13aa99fc8bcd9a699cdd81053e7163e530c0b9415527e1293724

See more details on using hashes here.

File details

Details for the file openvino_genai-2025.4.1.0-1901-cp313-cp313-manylinux_2_31_aarch64.whl.

File metadata

File hashes

Hashes for openvino_genai-2025.4.1.0-1901-cp313-cp313-manylinux_2_31_aarch64.whl
Algorithm Hash digest
SHA256 744b4bc6e44bc9f7d56355b35c4ecb8a9d65a7423c540efc57cd60dcaa5257d9
MD5 54789fea3e2b2527b6e874c3824311d4
BLAKE2b-256 e54d3b32235839e6fe7aa5bc35f696ade71b373a288c955a00f2bee11ab78f50

See more details on using hashes here.

File details

Details for the file openvino_genai-2025.4.1.0-1901-cp313-cp313-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for openvino_genai-2025.4.1.0-1901-cp313-cp313-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 40d3e4b7ffc781a550936e262bad41f425857ce929ad6ec4a423e6e66cf182cf
MD5 803e3f69642e21b184379202aceae615
BLAKE2b-256 fe23384334f813aeab67804b07311337435af027cacb114137752948f07433d6

See more details on using hashes here.

File details

Details for the file openvino_genai-2025.4.1.0-1901-cp313-cp313-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for openvino_genai-2025.4.1.0-1901-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 73f65abf447f34bd70ae86992e927b867e997e9ab57986587309964a38bc8b0e
MD5 aa90bd0a5bf3a661103056f3764aa605
BLAKE2b-256 4c611a706c868a0c0e30e357a4ce79630b89bbed8919fb867cb315227689df98

See more details on using hashes here.

File details

Details for the file openvino_genai-2025.4.1.0-1901-cp313-cp313-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for openvino_genai-2025.4.1.0-1901-cp313-cp313-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 93131d0706a0fa74f08767ef635564e6713cc06a10c5e6a82b44c9ae0f380f17
MD5 ffd9fe6fba21a68653243f82734f646f
BLAKE2b-256 d2318d21f32f73216ee3acf61b396f386f6341b241c0a667ae6525f96f2dd9b4

See more details on using hashes here.

File details

Details for the file openvino_genai-2025.4.1.0-1901-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for openvino_genai-2025.4.1.0-1901-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 9f75ea5ff77e84a7927a8a1c8c68415aa215dcf79c80eb03390dcf2757a8f523
MD5 00556c2b00fec301cbfeb8eb7ffdea9f
BLAKE2b-256 9b0eadb2d268c8bd005bb8d2a5f06a2590159c3ed5ff079686b58ef91cd6c451

See more details on using hashes here.

File details

Details for the file openvino_genai-2025.4.1.0-1901-cp312-cp312-manylinux_2_31_aarch64.whl.

File metadata

File hashes

Hashes for openvino_genai-2025.4.1.0-1901-cp312-cp312-manylinux_2_31_aarch64.whl
Algorithm Hash digest
SHA256 7e5edf9c31ecbb232005babb408b6a95243f2d98b873db7872aa4694b16cde9c
MD5 9aa675da116e2d7996f93e7fdd29ee3d
BLAKE2b-256 b5efdbc9bfbe79a459d874f2b1cdabaf4e31cd556aa32b1292cb7b2a8962719b

See more details on using hashes here.

File details

Details for the file openvino_genai-2025.4.1.0-1901-cp312-cp312-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for openvino_genai-2025.4.1.0-1901-cp312-cp312-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 8e35f2a905d6cd9c6d02e5912053e20c9862c41526171309a4055640e09303df
MD5 a491e24adce136df2a97325ce9d4c6bf
BLAKE2b-256 61882c16eb3970af048a3413fe9d42c1a3d88d1126a953a5bb0bd28e15dc2896

See more details on using hashes here.

File details

Details for the file openvino_genai-2025.4.1.0-1901-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for openvino_genai-2025.4.1.0-1901-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 940cff124db198f33710830ab600f2381fc8ed5153653391ea10dbdc4688fbbf
MD5 d451bf63901fd59ceb25c77b81bc9368
BLAKE2b-256 019558692ec0c12a6aa0fa9ae1b7a9b6a4754975cb37cfd81c6cba5284db0d0f

See more details on using hashes here.

File details

Details for the file openvino_genai-2025.4.1.0-1901-cp312-cp312-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for openvino_genai-2025.4.1.0-1901-cp312-cp312-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 f2ee8eaf55dc3ffc916b81eb478e427f565b5e0243c48fef7180590144d097be
MD5 1ebaf12115bbbb938d464ddbc50644be
BLAKE2b-256 388d233f994aabb946ed876937eea447517cba88313c26908bba210034b8c6ce

See more details on using hashes here.

File details

Details for the file openvino_genai-2025.4.1.0-1901-cp311-cp311-win_amd64.whl.

File metadata

File hashes

Hashes for openvino_genai-2025.4.1.0-1901-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 35ace9ea6e536383deecf9b3f9cd05fa77b2fcec995700f75a95caa2c6f0fc35
MD5 a2e029a2abfab3007b5e2adc1edf5e6f
BLAKE2b-256 1765c05639455731cfb5a647339618932db07306a5639a66ed08d271006fcac6

See more details on using hashes here.

File details

Details for the file openvino_genai-2025.4.1.0-1901-cp311-cp311-manylinux_2_31_aarch64.whl.

File metadata

File hashes

Hashes for openvino_genai-2025.4.1.0-1901-cp311-cp311-manylinux_2_31_aarch64.whl
Algorithm Hash digest
SHA256 26a05cdc0d0df53b276d388904561424188d3c586fea0a38d7c5920a92ab0982
MD5 77eaff62a8a82c4f58c65e63e02b6e16
BLAKE2b-256 e6869c9b1537de9a6b4b83ab93762063d9abb8254d5808d8d71336f8eb34e21a

See more details on using hashes here.

File details

Details for the file openvino_genai-2025.4.1.0-1901-cp311-cp311-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for openvino_genai-2025.4.1.0-1901-cp311-cp311-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 cd4418bb08acd7903e433662fda99dfbc86a359bd506f63efb6ba76ae9c9f4ab
MD5 7a5a2a36e1ddcea0831dfb79c8cf7c91
BLAKE2b-256 4c8b480c85fa2975c246224cc648281a5900325ebe9427045fbc2e5d893c563b

See more details on using hashes here.

File details

Details for the file openvino_genai-2025.4.1.0-1901-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for openvino_genai-2025.4.1.0-1901-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8bac2d10a7827e299c3fffdb35192bf15462e36fee4394dbaa37dfc8cd027ddf
MD5 8fb36f07de9d1a4f05ec31cccc1cedf1
BLAKE2b-256 6dba1621562358c40c8aa89f8b683294f7fd6692aedb34d377b1577dd759f461

See more details on using hashes here.

File details

Details for the file openvino_genai-2025.4.1.0-1901-cp311-cp311-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for openvino_genai-2025.4.1.0-1901-cp311-cp311-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 30cd849705182983497680d4f3a12b55ce0149259f44bfec3ec3a65637731108
MD5 48ade9588a8a2ec6f7f0e9c45d36bd5d
BLAKE2b-256 98c5eee73a994bc50ef738f97bcb453d6a4b22229b28a6ad44596ad8a7eac2df

See more details on using hashes here.

File details

Details for the file openvino_genai-2025.4.1.0-1901-cp310-cp310-win_amd64.whl.

File metadata

File hashes

Hashes for openvino_genai-2025.4.1.0-1901-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 a3632c2f9f17df0e32700bb5a2c67079cf5b97e0d5a5af4fb446799ef9dc791f
MD5 1797c7b7b2b705fffbde52d2ac1b99e9
BLAKE2b-256 d80fd7791d0f43c042177803d43ba2502b34d50e1ae9dfd04e0c8b9725997cf2

See more details on using hashes here.

File details

Details for the file openvino_genai-2025.4.1.0-1901-cp310-cp310-manylinux_2_31_aarch64.whl.

File metadata

File hashes

Hashes for openvino_genai-2025.4.1.0-1901-cp310-cp310-manylinux_2_31_aarch64.whl
Algorithm Hash digest
SHA256 d577731507a635e8e9b5681b48071da3c9f23d92fe3698dbaf56bde63969b44b
MD5 36d0f665f6810ff5ad888aa5e73751f1
BLAKE2b-256 663142501424803472fd3f7c39c80e1eef330aa078ca0c08457d93c129c21565

See more details on using hashes here.

File details

Details for the file openvino_genai-2025.4.1.0-1901-cp310-cp310-manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for openvino_genai-2025.4.1.0-1901-cp310-cp310-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e540e5280f06da6a12415495d7a1c0cb916a922fef2b905410c628859c802d9a
MD5 e0679d859f24a572795428ee5e0ab1d6
BLAKE2b-256 7b4cee32f6c05ea1dbcf9ce08b06d27ce77becae39d1c71b8e621fce4430110f

See more details on using hashes here.

File details

Details for the file openvino_genai-2025.4.1.0-1901-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for openvino_genai-2025.4.1.0-1901-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 81215b65e1064ccf34ce90450fccce680effd4387b97fd630b54c570c37d0758
MD5 a3a9d87c513dd229cfcf97b474d52670
BLAKE2b-256 f1dd485fd8180809bab6d1440fa695b1830f17443d12c12b607afb43378aa6eb

See more details on using hashes here.

File details

Details for the file openvino_genai-2025.4.1.0-1901-cp310-cp310-macosx_10_15_x86_64.whl.

File metadata

File hashes

Hashes for openvino_genai-2025.4.1.0-1901-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 55f45e36ce9e5c33d1cab841ed992c684e7ac8c87a6e3aebbc052e7c879de533
MD5 5f1b19c9454f1ad9813b1dabb1b9c979
BLAKE2b-256 b68e7ccca089d47d6ca0ce7c24571c958e02bf076d181ee75afb6e889cb01ebc

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