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

Uploaded CPython 3.13Windows x86-64

openvino_genai-2025.1.0.0-cp313-cp313-manylinux_2_31_aarch64.whl (3.1 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.31+ ARM64

openvino_genai-2025.1.0.0-cp313-cp313-macosx_11_0_arm64.whl (2.3 MB view details)

Uploaded CPython 3.13macOS 11.0+ ARM64

openvino_genai-2025.1.0.0-cp313-cp313-macosx_10_15_x86_64.whl (2.7 MB view details)

Uploaded CPython 3.13macOS 10.15+ x86-64

openvino_genai-2025.1.0.0-cp312-cp312-win_amd64.whl (1.9 MB view details)

Uploaded CPython 3.12Windows x86-64

openvino_genai-2025.1.0.0-cp312-cp312-manylinux_2_31_aarch64.whl (3.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.31+ ARM64

openvino_genai-2025.1.0.0-cp312-cp312-macosx_11_0_arm64.whl (2.3 MB view details)

Uploaded CPython 3.12macOS 11.0+ ARM64

openvino_genai-2025.1.0.0-cp312-cp312-macosx_10_15_x86_64.whl (2.7 MB view details)

Uploaded CPython 3.12macOS 10.15+ x86-64

openvino_genai-2025.1.0.0-cp311-cp311-win_amd64.whl (1.9 MB view details)

Uploaded CPython 3.11Windows x86-64

openvino_genai-2025.1.0.0-cp311-cp311-manylinux_2_31_aarch64.whl (3.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.31+ ARM64

openvino_genai-2025.1.0.0-cp311-cp311-macosx_11_0_arm64.whl (2.3 MB view details)

Uploaded CPython 3.11macOS 11.0+ ARM64

openvino_genai-2025.1.0.0-cp311-cp311-macosx_10_15_x86_64.whl (2.7 MB view details)

Uploaded CPython 3.11macOS 10.15+ x86-64

openvino_genai-2025.1.0.0-cp310-cp310-win_amd64.whl (1.9 MB view details)

Uploaded CPython 3.10Windows x86-64

openvino_genai-2025.1.0.0-cp310-cp310-manylinux_2_31_aarch64.whl (3.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.31+ ARM64

openvino_genai-2025.1.0.0-cp310-cp310-macosx_11_0_arm64.whl (2.3 MB view details)

Uploaded CPython 3.10macOS 11.0+ ARM64

openvino_genai-2025.1.0.0-cp310-cp310-macosx_10_15_x86_64.whl (2.7 MB view details)

Uploaded CPython 3.10macOS 10.15+ x86-64

openvino_genai-2025.1.0.0-cp39-cp39-win_amd64.whl (1.9 MB view details)

Uploaded CPython 3.9Windows x86-64

openvino_genai-2025.1.0.0-cp39-cp39-manylinux_2_31_aarch64.whl (3.1 MB view details)

Uploaded CPython 3.9manylinux: glibc 2.31+ ARM64

openvino_genai-2025.1.0.0-cp39-cp39-macosx_11_0_arm64.whl (2.3 MB view details)

Uploaded CPython 3.9macOS 11.0+ ARM64

openvino_genai-2025.1.0.0-cp39-cp39-macosx_10_15_x86_64.whl (2.7 MB view details)

Uploaded CPython 3.9macOS 10.15+ x86-64

File details

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

File metadata

File hashes

Hashes for openvino_genai-2025.1.0.0-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 b19ca0750eb0ecde23daa0fb4c4f6b159df9dc70cf920e0050f52ced2cf86d28
MD5 7efe04342e6914a5344e6fd6420d85dd
BLAKE2b-256 06f5b977a1208dcac60d7f2f55a8776b4618ccef9a7f0b3002fea9fa556fd8d5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openvino_genai-2025.1.0.0-cp313-cp313-manylinux_2_31_aarch64.whl
Algorithm Hash digest
SHA256 cfd8c6873d2d509f09913060dad4f2276aa8734746e4c95d7e220592ef754fc5
MD5 0920ed8c6d23f0ec5983f537f822e2cd
BLAKE2b-256 c419877d4506df6094bbb840c044a9ab5c2bc2b30fe3bdb13d541966530a06ab

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openvino_genai-2025.1.0.0-cp313-cp313-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 85d8dbd59e2682531e2af2ae053055d46962bc0425c66770217c5968b69afa51
MD5 78f42be51774d4ee91cfae6d59f345ec
BLAKE2b-256 8c265af97516ca524909b05b195888ea798e04829e654374aa364e574b2d13d7

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openvino_genai-2025.1.0.0-cp313-cp313-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fe965c4fdb56578b5ad9517d657848e23693bb9e22fce5eb00057b96d82eff28
MD5 93657677b2e4bcc46db5feebcde6784a
BLAKE2b-256 c7e44fcc4503350e759bcce960c1f68813915f0d5fcdf6cb204093e63a202212

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openvino_genai-2025.1.0.0-cp313-cp313-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 bd737fa4cebc4a1e14b9b44d9648e9f08e6cc2a0738de4f4825ead08eabaa92c
MD5 04e314bd6c5b5672a5a40689238a2407
BLAKE2b-256 b032656f9bd7dd22fd9da5e7d992f5f281c84ce337ae1313bdb3fd9fba369aed

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openvino_genai-2025.1.0.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 f9593fa7730efecda4643a6cc7c502382050a3ef83a6c1f5fed9ca7237ce253f
MD5 5c2a8d1ede498936b1f56490b053d2c4
BLAKE2b-256 eca8bad80b76937372307b6cae45e147de8d3bb47dbd9092f392bc3021142235

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openvino_genai-2025.1.0.0-cp312-cp312-manylinux_2_31_aarch64.whl
Algorithm Hash digest
SHA256 e4f18321c76dc36d25d6652350181277140d2161ea9e51d5038d1251586e7e90
MD5 e746f005d41aa9a7deca0191b20bf581
BLAKE2b-256 fdec0e5f7c253eaffcf563b0e1a7b136dbe830323653adb643589c67faae3dfd

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openvino_genai-2025.1.0.0-cp312-cp312-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 3a302c39a58bf78e0ce62f1ccff95ddd2a27d02f59598a67c6f0d601d9680bde
MD5 7d849a553e2b6e540e0a013e366f28aa
BLAKE2b-256 32371675f0918400ee0d56e75398ac2ed5c9f477b40fbf5caaca932eddf9531d

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openvino_genai-2025.1.0.0-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 a94861ad09e8385b79712fcb50c22c60c5bbfc55369310c86c1443a23a3f5aea
MD5 a83c2b3a0e77992ac3d3eb442fedb4da
BLAKE2b-256 9cc2389aea6d0846541e6fbb569e5c11ce2ec60402e770a61851ae94d7913435

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openvino_genai-2025.1.0.0-cp312-cp312-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 920d0251cfb46a242974572cdae9c4734edb503d7f036573d6e25eb3f0b99a4e
MD5 9bd4de07dbe0e721faafc2457f541200
BLAKE2b-256 7074cdf46d88ff5466ac19242e496931e62290610ade55bdf8869aa384711e4a

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openvino_genai-2025.1.0.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 c18a014fd65951952f1715ec483c8bcb18057446906b7338463e13fa54dfb177
MD5 e7437c35511813cd33345a5ecd9a4262
BLAKE2b-256 c5a0a0534476ff5555b16cee00b8c82306f90e45021777e16cdc6fe5286f43cf

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openvino_genai-2025.1.0.0-cp311-cp311-manylinux_2_31_aarch64.whl
Algorithm Hash digest
SHA256 b4ae2b56db939aa747bcc8762c03acd1a5ca30a2b8a9347c36fb425c9a713b8c
MD5 e6a989a190a9a2b84a173c40685565f6
BLAKE2b-256 de641b272fca64e776f3b220e85268bb5036a21d7787b8f8037e57cbda9e5093

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openvino_genai-2025.1.0.0-cp311-cp311-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 e70160a895fd23d768bf64f63178fbe2db1dcc71dcd30c8f34f2306beeadcf21
MD5 3ff8c5bba29ddc6d07d4b1a6e3e5340a
BLAKE2b-256 13090162bb05bad63824af413d3c848d5e1d6b586f985cd730082d6a78c13d0f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openvino_genai-2025.1.0.0-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2e5ad44ab6680a8f0b9d70a7c108c02503a72e0d307441c309d1ae8e93f48bc2
MD5 645d6ec37e0da6ea5ec4593c8bce6c82
BLAKE2b-256 7936958c385fda8e46c3f3e043fea8d2fcb9c24d7a29cc5e243961c297a75f38

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openvino_genai-2025.1.0.0-cp311-cp311-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 fb679da6973dd4444b8351c0ceeff4b9014bc0be77d5ec41a073172bdd720255
MD5 deab11b950e6129f587654a153283fda
BLAKE2b-256 085b82d1c341684c455987c469f67f9c4adf5508c013de2af95ef70d2eb7e9df

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openvino_genai-2025.1.0.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 587a3bbb39fed62338b5914116744f292e8ae33e28b45a937e22546dc7566fcb
MD5 e8a96952c0c6f1a2afcfd22362c36102
BLAKE2b-256 4ec89f6bf46801c84484b3886d66c2719390b2e9b3435d0fe819ec63b8aff0ba

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openvino_genai-2025.1.0.0-cp310-cp310-manylinux_2_31_aarch64.whl
Algorithm Hash digest
SHA256 1b1465da9e49ab3879a5b2548398777778ecbc72a1f518456608d24b094cadcf
MD5 cbd7cf33bd02b3556c55d79fece56552
BLAKE2b-256 c6b18465f70894d07ab43d54ba3aaa20f6a131b12a4c9a028e67c85b6616fc9b

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openvino_genai-2025.1.0.0-cp310-cp310-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 649d47b616075abc252de9c035e0559c225bc5056b6172c0398fd7fe7d2d49b5
MD5 c89d881b363f8ab9bd8aecc60bb12c4f
BLAKE2b-256 b1334b06d8ba072d107b6c7e3f25a1000566199ae491fe45826da3c9326cff8e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openvino_genai-2025.1.0.0-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 85e6cd01b2bc3dce6e0861b012f921297d43d54cfa95699476ef828a0e224993
MD5 3ff52fa3437a4ce1ede0d75d7216d790
BLAKE2b-256 33e89f4a18aab1a91a165049fac96b67d4176fc6ef0266fc63bbc5996f5d2a1f

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openvino_genai-2025.1.0.0-cp310-cp310-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 d6abd16b96bb7a23eedbd7db9eae7992c7d47dc50ca0e76ebb0b9892c2d8ebfe
MD5 5f7c9ec36547af33a011d9fee93252ca
BLAKE2b-256 ec985da5066ba38e7451adfffc6fdd5f4b187c79656243efe4502ce1032d7f4e

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openvino_genai-2025.1.0.0-cp39-cp39-win_amd64.whl
Algorithm Hash digest
SHA256 fcce32dd3586b33fda7c87e2811e7d9009c126e414e55086da208dc7bf06ccb7
MD5 6faab289d3890c78b6de1a7433ddb397
BLAKE2b-256 bbf3a7143a5f71a7c057618787183784cf75d831bc0018e1a3568c08a73f2364

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openvino_genai-2025.1.0.0-cp39-cp39-manylinux_2_31_aarch64.whl
Algorithm Hash digest
SHA256 a8f908f5dda0426c46ba296dfe3224d98cb8b2749db4f5b46d036044b1b06e68
MD5 010b20885b756bdd1f5a3d8022f0bc24
BLAKE2b-256 1cc8b5632e15a17d0ee8fbf9160da32adf7a1b22aa27a4c621d1d21e8e7c6118

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openvino_genai-2025.1.0.0-cp39-cp39-manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 458047af5a5cbc503cff2689b10586b77e22da4bb74ad1bff0d708a45b76a39c
MD5 a995d68731ee9510acba847126c41cb8
BLAKE2b-256 b0f6c47dd796cc239625abc4e3a14146593bd659b0e974cefe73d5d49658a5e4

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openvino_genai-2025.1.0.0-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 265a07e7749ea9520f721b6b9553c4ff55ac71209014576e74b6abe7ccd08b8f
MD5 5d455ea570ed70327b663fce500ea663
BLAKE2b-256 abca825667ddf469a70145afa64ac894c2240771856eb69b14f01488bdae99a8

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for openvino_genai-2025.1.0.0-cp39-cp39-macosx_10_15_x86_64.whl
Algorithm Hash digest
SHA256 30fa03382ff155b388380cf21e994e204fe26fdee1cc7fa848a5d8e29f3dca83
MD5 a2fa2a6a0e556cf1bd17dd37a0e36618
BLAKE2b-256 682870cb9cba6fddb8ad0c647f6780cbb48d117f639d434df13fc0f410787280

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