Skip to main content

Python bindings for the llama.cpp library

Project description

🦙 Python Bindings for llama.cpp

Documentation Status Tests PyPI PyPI - Python Version PyPI - License PyPI - Downloads

Simple Python bindings for @ggerganov's llama.cpp library. This package provides:

Documentation is available at https://llama-cpp-python.readthedocs.io/en/latest.

Installation

Requirements:

  • Python 3.8+
  • C compiler
    • Linux: gcc or clang
    • Windows: Visual Studio or MinGW
    • MacOS: Xcode

To install the package, run:

pip install llama-cpp-python

This will also build llama.cpp from source and install it alongside this python package.

If this fails, add --verbose to the pip install see the full cmake build log.

Installation Configuration

llama.cpp supports a number of hardware acceleration backends to speed up inference as well as backend specific options. See the llama.cpp README for a full list.

All llama.cpp cmake build options can be set via the CMAKE_ARGS environment variable or via the --config-settings / -C cli flag during installation.

Environment Variables
# Linux and Mac
CMAKE_ARGS="-DLLAMA_BLAS=ON -DLLAMA_BLAS_VENDOR=OpenBLAS" \
  pip install llama-cpp-python
# Windows
$env:CMAKE_ARGS = "-DLLAMA_BLAS=ON -DLLAMA_BLAS_VENDOR=OpenBLAS"
pip install llama-cpp-python
CLI / requirements.txt

They can also be set via pip install -C / --config-settings command and saved to a requirements.txt file:

pip install --upgrade pip # ensure pip is up to date
pip install llama-cpp-python \
  -C cmake.args="-DLLAMA_BLAS=ON;-DLLAMA_BLAS_VENDOR=OpenBLAS"
# requirements.txt

llama-cpp-python -C cmake.args="-DLLAMA_BLAS=ON;-DLLAMA_BLAS_VENDOR=OpenBLAS"

Supported Backends

Below are some common backends, their build commands and any additional environment variables required.

OpenBLAS (CPU)

To install with OpenBLAS, set the LLAMA_BLAS and LLAMA_BLAS_VENDOR environment variables before installing:

CMAKE_ARGS="-DLLAMA_BLAS=ON -DLLAMA_BLAS_VENDOR=OpenBLAS" pip install llama-cpp-python
cuBLAS (CUDA)

To install with cuBLAS, set the LLAMA_CUBLAS=on environment variable before installing:

CMAKE_ARGS="-DLLAMA_CUBLAS=on" pip install llama-cpp-python
Metal

To install with Metal (MPS), set the LLAMA_METAL=on environment variable before installing:

CMAKE_ARGS="-DLLAMA_METAL=on" pip install llama-cpp-python
CLBlast (OpenCL)

To install with CLBlast, set the LLAMA_CLBLAST=on environment variable before installing:

CMAKE_ARGS="-DLLAMA_CLBLAST=on" pip install llama-cpp-python
hipBLAS (ROCm)

To install with hipBLAS / ROCm support for AMD cards, set the LLAMA_HIPBLAS=on environment variable before installing:

CMAKE_ARGS="-DLLAMA_HIPBLAS=on" pip install llama-cpp-python
Vulkan

To install with Vulkan support, set the LLAMA_VULKAN=on environment variable before installing:

CMAKE_ARGS="-DLLAMA_VULKAN=on" pip install llama-cpp-python
Kompute

To install with Kompute support, set the LLAMA_KOMPUTE=on environment variable before installing:

CMAKE_ARGS="-DLLAMA_KOMPUTE=on" pip install llama-cpp-python
SYCL

To install with SYCL support, set the LLAMA_SYCL=on environment variable before installing:

source /opt/intel/oneapi/setvars.sh   
CMAKE_ARGS="-DLLAMA_SYCL=on -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx" pip install llama-cpp-python

Windows Notes

Error: Can't find 'nmake' or 'CMAKE_C_COMPILER'

If you run into issues where it complains it can't find 'nmake' '?' or CMAKE_C_COMPILER, you can extract w64devkit as mentioned in llama.cpp repo and add those manually to CMAKE_ARGS before running pip install:

$env:CMAKE_GENERATOR = "MinGW Makefiles"
$env:CMAKE_ARGS = "-DLLAMA_OPENBLAS=on -DCMAKE_C_COMPILER=C:/w64devkit/bin/gcc.exe -DCMAKE_CXX_COMPILER=C:/w64devkit/bin/g++.exe"

See the above instructions and set CMAKE_ARGS to the BLAS backend you want to use.

MacOS Notes

Detailed MacOS Metal GPU install documentation is available at docs/install/macos.md

M1 Mac Performance Issue

Note: If you are using Apple Silicon (M1) Mac, make sure you have installed a version of Python that supports arm64 architecture. For example:

wget https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-MacOSX-arm64.sh
bash Miniforge3-MacOSX-arm64.sh

Otherwise, while installing it will build the llama.cpp x86 version which will be 10x slower on Apple Silicon (M1) Mac.

M Series Mac Error: `(mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64'))`

Try installing with

CMAKE_ARGS="-DCMAKE_OSX_ARCHITECTURES=arm64 -DCMAKE_APPLE_SILICON_PROCESSOR=arm64 -DLLAMA_METAL=on" pip install --upgrade --verbose --force-reinstall --no-cache-dir llama-cpp-python

Upgrading and Reinstalling

To upgrade and rebuild llama-cpp-python add --upgrade --force-reinstall --no-cache-dir flags to the pip install command to ensure the package is rebuilt from source.

High-level API

API Reference

The high-level API provides a simple managed interface through the Llama class.

Below is a short example demonstrating how to use the high-level API to for basic text completion:

>>> from llama_cpp import Llama
>>> llm = Llama(
      model_path="./models/7B/llama-model.gguf",
      # n_gpu_layers=-1, # Uncomment to use GPU acceleration
      # seed=1337, # Uncomment to set a specific seed
      # n_ctx=2048, # Uncomment to increase the context window
)
>>> output = llm(
      "Q: Name the planets in the solar system? A: ", # Prompt
      max_tokens=32, # Generate up to 32 tokens, set to None to generate up to the end of the context window
      stop=["Q:", "\n"], # Stop generating just before the model would generate a new question
      echo=True # Echo the prompt back in the output
) # Generate a completion, can also call create_completion
>>> print(output)
{
  "id": "cmpl-xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "object": "text_completion",
  "created": 1679561337,
  "model": "./models/7B/llama-model.gguf",
  "choices": [
    {
      "text": "Q: Name the planets in the solar system? A: Mercury, Venus, Earth, Mars, Jupiter, Saturn, Uranus, Neptune and Pluto.",
      "index": 0,
      "logprobs": None,
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 14,
    "completion_tokens": 28,
    "total_tokens": 42
  }
}

Text completion is available through the __call__ and create_completion methods of the Llama class.

Pulling models from Hugging Face Hub

You can download Llama models in gguf format directly from Hugging Face using the from_pretrained method. You'll need to install the huggingface-hub package to use this feature (pip install huggingface-hub).

llm = Llama.from_pretrained(
    repo_id="Qwen/Qwen1.5-0.5B-Chat-GGUF",
    filename="*q8_0.gguf",
    verbose=False
)

By default from_pretrained will download the model to the huggingface cache directory, you can then manage installed model files with the huggingface-cli tool.

Chat Completion

The high-level API also provides a simple interface for chat completion.

Chat completion requires that the model knows how to format the messages into a single prompt. The Llama class does this using pre-registered chat formats (ie. chatml, llama-2, gemma, etc) or by providing a custom chat handler object.

The model will will format the messages into a single prompt using the following order of precedence:

  • Use the chat_handler if provided
  • Use the chat_format if provided
  • Use the tokenizer.chat_template from the gguf model's metadata (should work for most new models, older models may not have this)
  • else, fallback to the llama-2 chat format

Set verbose=True to see the selected chat format.

>>> from llama_cpp import Llama
>>> llm = Llama(
      model_path="path/to/llama-2/llama-model.gguf",
      chat_format="llama-2"
)
>>> llm.create_chat_completion(
      messages = [
          {"role": "system", "content": "You are an assistant who perfectly describes images."},
          {
              "role": "user",
              "content": "Describe this image in detail please."
          }
      ]
)

Chat completion is available through the create_chat_completion method of the Llama class.

For OpenAI API v1 compatibility, you use the create_chat_completion_openai_v1 method which will return pydantic models instead of dicts.

JSON and JSON Schema Mode

To constrain chat responses to only valid JSON or a specific JSON Schema use the response_format argument in create_chat_completion.

JSON Mode

The following example will constrain the response to valid JSON strings only.

>>> from llama_cpp import Llama
>>> llm = Llama(model_path="path/to/model.gguf", chat_format="chatml")
>>> llm.create_chat_completion(
    messages=[
        {
            "role": "system",
            "content": "You are a helpful assistant that outputs in JSON.",
        },
        {"role": "user", "content": "Who won the world series in 2020"},
    ],
    response_format={
        "type": "json_object",
    },
    temperature=0.7,
)

JSON Schema Mode

To constrain the response further to a specific JSON Schema add the schema to the schema property of the response_format argument.

>>> from llama_cpp import Llama
>>> llm = Llama(model_path="path/to/model.gguf", chat_format="chatml")
>>> llm.create_chat_completion(
    messages=[
        {
            "role": "system",
            "content": "You are a helpful assistant that outputs in JSON.",
        },
        {"role": "user", "content": "Who won the world series in 2020"},
    ],
    response_format={
        "type": "json_object",
        "schema": {
            "type": "object",
            "properties": {"team_name": {"type": "string"}},
            "required": ["team_name"],
        },
    },
    temperature=0.7,
)

Function Calling

The high-level API supports OpenAI compatible function and tool calling. This is possible through the functionary pre-trained models chat format or through the generic chatml-function-calling chat format.

>>> from llama_cpp import Llama
>>> llm = Llama(model_path="path/to/chatml/llama-model.gguf", chat_format="chatml-function-calling")
>>> llm.create_chat_completion(
      messages = [
        {
          "role": "system",
          "content": "A chat between a curious user and an artificial intelligence assistant. The assistant gives helpful, detailed, and polite answers to the user's questions. The assistant calls functions with appropriate input when necessary"

        },
        {
          "role": "user",
          "content": "Extract Jason is 25 years old"
        }
      ],
      tools=[{
        "type": "function",
        "function": {
          "name": "UserDetail",
          "parameters": {
            "type": "object",
            "title": "UserDetail",
            "properties": {
              "name": {
                "title": "Name",
                "type": "string"
              },
              "age": {
                "title": "Age",
                "type": "integer"
              }
            },
            "required": [ "name", "age" ]
          }
        }
      }],
      tool_choice=[{
        "type": "function",
        "function": {
          "name": "UserDetail"
        }
      }]
)
Functionary v2

The various gguf-converted files for this set of models can be found here. Functionary is able to intelligently call functions and also analyze any provided function outputs to generate coherent responses. All v2 models of functionary supports parallel function calling. You can provide either functionary-v1 or functionary-v2 for the chat_format when initializing the Llama class.

Due to discrepancies between llama.cpp and HuggingFace's tokenizers, it is required to provide HF Tokenizer for functionary. The LlamaHFTokenizer class can be initialized and passed into the Llama class. This will override the default llama.cpp tokenizer used in Llama class. The tokenizer files are already included in the respective HF repositories hosting the gguf files.

>>> from llama_cpp import Llama
>>> from llama_cpp.llama_tokenizer import LlamaHFTokenizer
>>> llm = Llama.from_pretrained(
  repo_id="meetkai/functionary-small-v2.2-GGUF",
  filename="functionary-small-v2.2.q4_0.gguf",
  chat_format="functionary-v2",
  tokenizer=LlamaHFTokenizer.from_pretrained("meetkai/functionary-small-v2.2-GGUF")
)

Multi-modal Models

llama-cpp-python supports the llava1.5 family of multi-modal models which allow the language model to read information from both text and images.

You'll first need to download one of the available multi-modal models in GGUF format:

Then you'll need to use a custom chat handler to load the clip model and process the chat messages and images.

>>> from llama_cpp import Llama
>>> from llama_cpp.llama_chat_format import Llava15ChatHandler
>>> chat_handler = Llava15ChatHandler(clip_model_path="path/to/llava/mmproj.bin")
>>> llm = Llama(
  model_path="./path/to/llava/llama-model.gguf",
  chat_handler=chat_handler,
  n_ctx=2048, # n_ctx should be increased to accomodate the image embedding
  logits_all=True,# needed to make llava work
)
>>> llm.create_chat_completion(
    messages = [
        {"role": "system", "content": "You are an assistant who perfectly describes images."},
        {
            "role": "user",
            "content": [
                {"type": "image_url", "image_url": {"url": "https://.../image.png"}},
                {"type" : "text", "text": "Describe this image in detail please."}
            ]
        }
    ]
)
Loading a Local Image

Images can be passed as base64 encoded data URIs. The following example demonstrates how to do this.

import base64

def image_to_base64_data_uri(file_path):
    with open(file_path, "rb") as img_file:
        base64_data = base64.b64encode(img_file.read()).decode('utf-8')
        return f"data:image/png;base64,{base64_data}"

# Replace 'file_path.png' with the actual path to your PNG file
file_path = 'file_path.png'
data_uri = image_to_base64_data_uri(file_path)

messages = [
    {"role": "system", "content": "You are an assistant who perfectly describes images."},
    {
        "role": "user",
        "content": [
            {"type": "image_url", "image_url": {"url": data_uri }},
            {"type" : "text", "text": "Describe this image in detail please."}
        ]
    }
]

Speculative Decoding

llama-cpp-python supports speculative decoding which allows the model to generate completions based on a draft model.

The fastest way to use speculative decoding is through the LlamaPromptLookupDecoding class.

Just pass this as a draft model to the Llama class during initialization.

from llama_cpp import Llama
from llama_cpp.llama_speculative import LlamaPromptLookupDecoding

llama = Llama(
    model_path="path/to/model.gguf",
    draft_model=LlamaPromptLookupDecoding(num_pred_tokens=10) # num_pred_tokens is the number of tokens to predict 10 is the default and generally good for gpu, 2 performs better for cpu-only machines.
)

Embeddings

To generate text embeddings use create_embedding.

import llama_cpp

llm = llama_cpp.Llama(model_path="path/to/model.gguf", embedding=True)

embeddings = llm.create_embedding("Hello, world!")

# or create multiple embeddings at once

embeddings = llm.create_embedding(["Hello, world!", "Goodbye, world!"])

Adjusting the Context Window

The context window of the Llama models determines the maximum number of tokens that can be processed at once. By default, this is set to 512 tokens, but can be adjusted based on your requirements.

For instance, if you want to work with larger contexts, you can expand the context window by setting the n_ctx parameter when initializing the Llama object:

llm = Llama(model_path="./models/7B/llama-model.gguf", n_ctx=2048)

OpenAI Compatible Web Server

llama-cpp-python offers a web server which aims to act as a drop-in replacement for the OpenAI API. This allows you to use llama.cpp compatible models with any OpenAI compatible client (language libraries, services, etc).

To install the server package and get started:

pip install 'llama-cpp-python[server]'
python3 -m llama_cpp.server --model models/7B/llama-model.gguf

Similar to Hardware Acceleration section above, you can also install with GPU (cuBLAS) support like this:

CMAKE_ARGS="-DLLAMA_CUBLAS=on" FORCE_CMAKE=1 pip install 'llama-cpp-python[server]'
python3 -m llama_cpp.server --model models/7B/llama-model.gguf --n_gpu_layers 35

Navigate to http://localhost:8000/docs to see the OpenAPI documentation.

To bind to 0.0.0.0 to enable remote connections, use python3 -m llama_cpp.server --host 0.0.0.0. Similarly, to change the port (default is 8000), use --port.

You probably also want to set the prompt format. For chatml, use

python3 -m llama_cpp.server --model models/7B/llama-model.gguf --chat_format chatml

That will format the prompt according to how model expects it. You can find the prompt format in the model card. For possible options, see llama_cpp/llama_chat_format.py and look for lines starting with "@register_chat_format".

If you have huggingface-hub installed, you can also use the --hf_model_repo_id flag to load a model from the Hugging Face Hub.

python3 -m llama_cpp.server --hf_model_repo_id Qwen/Qwen1.5-0.5B-Chat-GGUF --model '*q8_0.gguf'

Web Server Features

Docker image

A Docker image is available on GHCR. To run the server:

docker run --rm -it -p 8000:8000 -v /path/to/models:/models -e MODEL=/models/llama-model.gguf ghcr.io/abetlen/llama-cpp-python:latest

Docker on termux (requires root) is currently the only known way to run this on phones, see termux support issue

Low-level API

API Reference

The low-level API is a direct ctypes binding to the C API provided by llama.cpp. The entire low-level API can be found in llama_cpp/llama_cpp.py and directly mirrors the C API in llama.h.

Below is a short example demonstrating how to use the low-level API to tokenize a prompt:

>>> import llama_cpp
>>> import ctypes
>>> llama_cpp.llama_backend_init(False) # Must be called once at the start of each program
>>> params = llama_cpp.llama_context_default_params()
# use bytes for char * params
>>> model = llama_cpp.llama_load_model_from_file(b"./models/7b/llama-model.gguf", params)
>>> ctx = llama_cpp.llama_new_context_with_model(model, params)
>>> max_tokens = params.n_ctx
# use ctypes arrays for array params
>>> tokens = (llama_cpp.llama_token * int(max_tokens))()
>>> n_tokens = llama_cpp.llama_tokenize(ctx, b"Q: Name the planets in the solar system? A: ", tokens, max_tokens, llama_cpp.c_bool(True))
>>> llama_cpp.llama_free(ctx)

Check out the examples folder for more examples of using the low-level API.

Documentation

Documentation is available via https://llama-cpp-python.readthedocs.io/. If you find any issues with the documentation, please open an issue or submit a PR.

Development

This package is under active development and I welcome any contributions.

To get started, clone the repository and install the package in editable / development mode:

git clone --recurse-submodules https://github.com/abetlen/llama-cpp-python.git
cd llama-cpp-python

# Upgrade pip (required for editable mode)
pip install --upgrade pip

# Install with pip
pip install -e .

# if you want to use the fastapi / openapi server
pip install -e .[server]

# to install all optional dependencies
pip install -e .[all]

# to clear the local build cache
make clean

You can also test out specific commits of lama.cpp by checking out the desired commit in the vendor/llama.cpp submodule and then running make clean and pip install -e . again. Any changes in the llama.h API will require changes to the llama_cpp/llama_cpp.py file to match the new API (additional changes may be required elsewhere).

FAQ

Are there pre-built binaries / binary wheels available?

The recommended installation method is to install from source as described above. The reason for this is that llama.cpp is built with compiler optimizations that are specific to your system. Using pre-built binaries would require disabling these optimizations or supporting a large number of pre-built binaries for each platform.

That being said there are some pre-built binaries available through the Releases as well as some community provided wheels.

In the future, I would like to provide pre-built binaries and wheels for common platforms and I'm happy to accept any useful contributions in this area. This is currently being tracked in #741

How does this compare to other Python bindings of llama.cpp?

I originally wrote this package for my own use with two goals in mind:

  • Provide a simple process to install llama.cpp and access the full C API in llama.h from Python
  • Provide a high-level Python API that can be used as a drop-in replacement for the OpenAI API so existing apps can be easily ported to use llama.cpp

Any contributions and changes to this package will be made with these goals in mind.

License

This project is licensed under the terms of the MIT license.

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

llama_cpp_python_cross-0.2.58-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl (15.6 MB view details)

Uploaded PyPy manylinux: glibc 2.28+ x86-64

llama_cpp_python_cross-0.2.58-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl (8.3 MB view details)

Uploaded PyPy manylinux: glibc 2.28+ ARM64

llama_cpp_python_cross-0.2.58-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl (15.6 MB view details)

Uploaded PyPy manylinux: glibc 2.28+ x86-64

llama_cpp_python_cross-0.2.58-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl (8.3 MB view details)

Uploaded PyPy manylinux: glibc 2.28+ ARM64

llama_cpp_python_cross-0.2.58-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl (15.6 MB view details)

Uploaded PyPy manylinux: glibc 2.28+ x86-64

llama_cpp_python_cross-0.2.58-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl (8.3 MB view details)

Uploaded PyPy manylinux: glibc 2.28+ ARM64

llama_cpp_python_cross-0.2.58-cp312-cp312-manylinux_2_28_x86_64.whl (15.6 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.28+ x86-64

llama_cpp_python_cross-0.2.58-cp312-cp312-manylinux_2_28_aarch64.whl (8.3 MB view details)

Uploaded CPython 3.12 manylinux: glibc 2.28+ ARM64

llama_cpp_python_cross-0.2.58-cp312-cp312-macosx_11_0_arm64.whl (3.5 MB view details)

Uploaded CPython 3.12 macOS 11.0+ ARM64

llama_cpp_python_cross-0.2.58-cp312-cp312-macosx_10_9_x86_64.whl (3.5 MB view details)

Uploaded CPython 3.12 macOS 10.9+ x86-64

llama_cpp_python_cross-0.2.58-cp311-cp311-manylinux_2_28_x86_64.whl (15.6 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.28+ x86-64

llama_cpp_python_cross-0.2.58-cp311-cp311-manylinux_2_28_aarch64.whl (8.3 MB view details)

Uploaded CPython 3.11 manylinux: glibc 2.28+ ARM64

llama_cpp_python_cross-0.2.58-cp311-cp311-macosx_11_0_arm64.whl (3.5 MB view details)

Uploaded CPython 3.11 macOS 11.0+ ARM64

llama_cpp_python_cross-0.2.58-cp311-cp311-macosx_10_9_x86_64.whl (3.5 MB view details)

Uploaded CPython 3.11 macOS 10.9+ x86-64

llama_cpp_python_cross-0.2.58-cp310-cp310-manylinux_2_28_x86_64.whl (15.6 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.28+ x86-64

llama_cpp_python_cross-0.2.58-cp310-cp310-manylinux_2_28_aarch64.whl (8.3 MB view details)

Uploaded CPython 3.10 manylinux: glibc 2.28+ ARM64

llama_cpp_python_cross-0.2.58-cp310-cp310-macosx_11_0_arm64.whl (3.5 MB view details)

Uploaded CPython 3.10 macOS 11.0+ ARM64

llama_cpp_python_cross-0.2.58-cp310-cp310-macosx_10_9_x86_64.whl (3.5 MB view details)

Uploaded CPython 3.10 macOS 10.9+ x86-64

llama_cpp_python_cross-0.2.58-cp39-cp39-manylinux_2_28_x86_64.whl (15.6 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.28+ x86-64

llama_cpp_python_cross-0.2.58-cp39-cp39-manylinux_2_28_aarch64.whl (8.3 MB view details)

Uploaded CPython 3.9 manylinux: glibc 2.28+ ARM64

llama_cpp_python_cross-0.2.58-cp39-cp39-macosx_11_0_arm64.whl (3.5 MB view details)

Uploaded CPython 3.9 macOS 11.0+ ARM64

llama_cpp_python_cross-0.2.58-cp39-cp39-macosx_10_9_x86_64.whl (3.5 MB view details)

Uploaded CPython 3.9 macOS 10.9+ x86-64

llama_cpp_python_cross-0.2.58-cp38-cp38-manylinux_2_28_x86_64.whl (15.6 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.28+ x86-64

llama_cpp_python_cross-0.2.58-cp38-cp38-manylinux_2_28_aarch64.whl (8.3 MB view details)

Uploaded CPython 3.8 manylinux: glibc 2.28+ ARM64

llama_cpp_python_cross-0.2.58-cp38-cp38-macosx_11_0_arm64.whl (3.6 MB view details)

Uploaded CPython 3.8 macOS 11.0+ ARM64

llama_cpp_python_cross-0.2.58-cp38-cp38-macosx_10_9_x86_64.whl (3.5 MB view details)

Uploaded CPython 3.8 macOS 10.9+ x86-64

File details

Details for the file llama_cpp_python_cross-0.2.58-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for llama_cpp_python_cross-0.2.58-pp310-pypy310_pp73-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 0ec91fdc21a83caa00dbdc842420d4b3a01e56a29a1499eca5b5e4702b07de67
MD5 e740593fd35d28d5e9dace8029e9fda5
BLAKE2b-256 fc81c269193067d77927b6bbceed3525f54ffe779739bbb869a1c4c6d1436772

See more details on using hashes here.

File details

Details for the file llama_cpp_python_cross-0.2.58-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for llama_cpp_python_cross-0.2.58-pp310-pypy310_pp73-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 93060634daf1ca2415d9b124290ce08be9a9711ada05a5738244d8747e26d6cd
MD5 265a8f376e05618eb7271702a17e8996
BLAKE2b-256 f97a5b815e819af3db1eccf6bdb060449de3d3303bd2ca261e42669522bf503d

See more details on using hashes here.

File details

Details for the file llama_cpp_python_cross-0.2.58-pp310-pypy310_pp73-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for llama_cpp_python_cross-0.2.58-pp310-pypy310_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 594818f2a53acb6c6f6e21fc485cafc4917cbd5236ef3ecebc20a38c15f11e40
MD5 2e6426db3e8ab36732536ef4e2887c54
BLAKE2b-256 07935924ad8e9395b6f283357d9a7c9137d23f6ecc607122808d48662ea0550d

See more details on using hashes here.

File details

Details for the file llama_cpp_python_cross-0.2.58-pp310-pypy310_pp73-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for llama_cpp_python_cross-0.2.58-pp310-pypy310_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 029a96db91f69aff3b777d5456bffc19556857bcbe1259b507668853de8da20d
MD5 40dd6da8b5a355bcca2c3c5d7577dc8d
BLAKE2b-256 d901ba368b1766af9b8dcbfb7838c6d80aee1d9a85efd393dfbd3b8eb4d4fbb3

See more details on using hashes here.

File details

Details for the file llama_cpp_python_cross-0.2.58-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for llama_cpp_python_cross-0.2.58-pp39-pypy39_pp73-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a38c00c1f56989fd1b52d5c681ae0f67413f7aaac2b580cb433a642fb288ec8f
MD5 05af7f4c60e623dea4097c4ae913cbaa
BLAKE2b-256 dce64054d86f09ec85f3ae436356912b8abbcda85cf3f8d4a91430771edd5067

See more details on using hashes here.

File details

Details for the file llama_cpp_python_cross-0.2.58-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for llama_cpp_python_cross-0.2.58-pp39-pypy39_pp73-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 9d0729959215ddfdd75f5397fb6c199526c709726ac1d920c39144c4adb69416
MD5 e061457c848dcecfe976d2c6015c6192
BLAKE2b-256 5007bd57cbc209972d4a81da81738cfe5e5771fa28c1a5ea9eda186b4a3ab5f5

See more details on using hashes here.

File details

Details for the file llama_cpp_python_cross-0.2.58-pp39-pypy39_pp73-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for llama_cpp_python_cross-0.2.58-pp39-pypy39_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 192ecc5b1d23c4b9ba3f56a208adecf190fce5e23a87d6ae0970fb801e4ce527
MD5 387172cf821fb0f7b018dc9fa3db5bdb
BLAKE2b-256 eebb14609337a4aef15fad5ffb333261a3e9f81ea08c034595a2435f1f878625

See more details on using hashes here.

File details

Details for the file llama_cpp_python_cross-0.2.58-pp39-pypy39_pp73-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for llama_cpp_python_cross-0.2.58-pp39-pypy39_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 f2d7ac67c6e0467a34268a1b67de8c5ad7e615dd0c5a7a995daf49ab5fda3e5a
MD5 f767fffdb830b9df58a028994276dccd
BLAKE2b-256 b853f869821efc071eb40c4890fe8dfcf783354cb2091678daa83d9d231fe8a5

See more details on using hashes here.

File details

Details for the file llama_cpp_python_cross-0.2.58-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for llama_cpp_python_cross-0.2.58-pp38-pypy38_pp73-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f01d2a2a725c4575dc55912399a16dd1d78de5fb6f09fcc6dd4f30966fb3f5d6
MD5 059c9482b68a92f0362af945e969a764
BLAKE2b-256 8ab166a7c2444c32e578e1c71eaa26adfe2e1b35d01b03ddc6fc54a6752e901a

See more details on using hashes here.

File details

Details for the file llama_cpp_python_cross-0.2.58-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for llama_cpp_python_cross-0.2.58-pp38-pypy38_pp73-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 374741f03e9d35fafc21cf742ec8c18803de99bfd221970a09d13c32dbf9a9cc
MD5 303734f842aa52903e412c4b31f993a7
BLAKE2b-256 53d00eeef1340095c8453a168a32f1565a56e608669b361137381fbe2057393f

See more details on using hashes here.

File details

Details for the file llama_cpp_python_cross-0.2.58-pp38-pypy38_pp73-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for llama_cpp_python_cross-0.2.58-pp38-pypy38_pp73-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 c612b60b375af0f0d799e9f41276ac171a06f1fd56e45e32c04d04cc4f34d43b
MD5 2ce2927e44ea51889d6bf3864f83baf9
BLAKE2b-256 d6d8fa9a871d46600f68fd34ee0158012cf574c8a74089120d68b4678bc843f6

See more details on using hashes here.

File details

Details for the file llama_cpp_python_cross-0.2.58-pp38-pypy38_pp73-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for llama_cpp_python_cross-0.2.58-pp38-pypy38_pp73-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 c9c7d0fd66f3ada18659c1a5a09a54e57af2e97053fcac81967f5c5887cc7e58
MD5 8fbeb0e50da685dbd27d75d57de102cf
BLAKE2b-256 c9f9ae4ddc5745dbc7d5ecbb1c053c88bf0d038d43864f2acaf68405bb15638e

See more details on using hashes here.

File details

Details for the file llama_cpp_python_cross-0.2.58-cp312-cp312-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for llama_cpp_python_cross-0.2.58-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 518fa0a8c61edc9bc3671aed086f0d9cd03b3e5f15b5b2a86f739b41d4816704
MD5 013caf29ebabb4269d7f70961edeede5
BLAKE2b-256 c1ec2d7a1f708402612641247b870223adee3b881f094ac3c9ff14312dbbc9db

See more details on using hashes here.

File details

Details for the file llama_cpp_python_cross-0.2.58-cp312-cp312-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for llama_cpp_python_cross-0.2.58-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 52a780b29903729bf499f1db80ccc4e5f53222aa49bcd4b2bce4dde2ede30225
MD5 af0127b04ea0f945330d040e8109cf29
BLAKE2b-256 7a87710fd6db7d10aba97a66213e42aaa82523ee86856532591fe21769740e93

See more details on using hashes here.

File details

Details for the file llama_cpp_python_cross-0.2.58-cp312-cp312-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for llama_cpp_python_cross-0.2.58-cp312-cp312-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 43cbcd81458afa8543e752bc030918348c291894f1d363cf3393830a0f7efbe9
MD5 cdc907bae82c8285802789045f2ae6cf
BLAKE2b-256 57f3c592876f2202dc46c04389af5896e56712629bcaedaaeda8f891ad83c7cf

See more details on using hashes here.

File details

Details for the file llama_cpp_python_cross-0.2.58-cp312-cp312-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for llama_cpp_python_cross-0.2.58-cp312-cp312-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 afd026fe652e336211c3792d551792d33210a87cbaf2b6d286fb58e69ac23094
MD5 1f7841fda220bf4f0d8032ce2e82028d
BLAKE2b-256 54e752f5257646e51556f8ad76d99f0f1930920a823bb6430b6b6f0fa30eb868

See more details on using hashes here.

File details

Details for the file llama_cpp_python_cross-0.2.58-cp311-cp311-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for llama_cpp_python_cross-0.2.58-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 46001120f32ff2d6820812f80eb65aad7ccd0e7c5ff3055be5c390d0b25f62f7
MD5 dfd34f7f2dffe9b12994d625aace95f7
BLAKE2b-256 e011b94ad5805663e714b5d120d61177cb563ccc201a52cd90b7b658cc596388

See more details on using hashes here.

File details

Details for the file llama_cpp_python_cross-0.2.58-cp311-cp311-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for llama_cpp_python_cross-0.2.58-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 eff1f29b0d671148f34b0e8e16888a13570a5284a68a4750928c2987e44df9cd
MD5 dcc9a41a0785b0b99f77b6fe7a890b04
BLAKE2b-256 67d7f7ef147728ba734ea6e482202ed12466102436ccc1954ee66d264a7ccd0a

See more details on using hashes here.

File details

Details for the file llama_cpp_python_cross-0.2.58-cp311-cp311-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for llama_cpp_python_cross-0.2.58-cp311-cp311-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e790aa214925203b9c9346208552e32827adffa2ed9ac278d162c1eabca1deba
MD5 5061148cdd0e2cab7ccbbfe363f006f3
BLAKE2b-256 133cdff5e00bc336d75df9ecd226d0ab7f6df20b56c9d624c608f71a8a2b191e

See more details on using hashes here.

File details

Details for the file llama_cpp_python_cross-0.2.58-cp311-cp311-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for llama_cpp_python_cross-0.2.58-cp311-cp311-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 9a878304c8a6a559f8b54d6f8f526ff5adeaf3a20d8029f5446e23d95b9ee352
MD5 1b01abed6e2c08ec5ac0da035eec207e
BLAKE2b-256 b9b4736bd91f163b30d8a360daec738974511d3ad0972686c2c9532fd80e0440

See more details on using hashes here.

File details

Details for the file llama_cpp_python_cross-0.2.58-cp310-cp310-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for llama_cpp_python_cross-0.2.58-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 44b2d3bbbd1fc51a022bab308666fe6177758476cbbc3940cbdbb4849fbc829f
MD5 38fff4467dc664ace16e61d3ba7403d8
BLAKE2b-256 9e8ebcfddc4e2ba18ab0653d4eb770adb6d893dde418d6a532e335c1fe1a59f6

See more details on using hashes here.

File details

Details for the file llama_cpp_python_cross-0.2.58-cp310-cp310-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for llama_cpp_python_cross-0.2.58-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 bb02e831d5b0b411c30d5bebac574c662ef30f585c88874c99614349d6165e1b
MD5 3b87c15c8f9c650ce6fa52e51e0e69d8
BLAKE2b-256 eb80f9fab9b98e9fa4d3049a08696722c3a2b0d4eed570d0420b63da41a229c2

See more details on using hashes here.

File details

Details for the file llama_cpp_python_cross-0.2.58-cp310-cp310-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for llama_cpp_python_cross-0.2.58-cp310-cp310-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6405fd5d777df0f618a116c2f4629719ed9e7e686e3749e32a10116fef349fb0
MD5 d868ba59e596dfae949e3fe05ebe2dec
BLAKE2b-256 6426c7b8107c92aea91fc4503b55853d8351e874094d0758162f6dd54ecb0c46

See more details on using hashes here.

File details

Details for the file llama_cpp_python_cross-0.2.58-cp310-cp310-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for llama_cpp_python_cross-0.2.58-cp310-cp310-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 55079c6d5a8915fc43c3acb3914152a78fc1c16c5e26077b34d4aeaa0b3c1198
MD5 fa10b8bd4cd9c19058fd41a4e158fe99
BLAKE2b-256 8b28f5e796e325aa5bc3cb5b71521465b2cf08de63d71519ef35e2c08d589421

See more details on using hashes here.

File details

Details for the file llama_cpp_python_cross-0.2.58-cp39-cp39-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for llama_cpp_python_cross-0.2.58-cp39-cp39-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 fcfe9c02783d8492ecb03ce178eaa670e5797bdf19a444c26068a822927dd52f
MD5 32b66482b94d0e3b7e3f3816747450aa
BLAKE2b-256 05777b63cb94ddc4f1243b168c4328a47a6955ff652d370592f178c619436536

See more details on using hashes here.

File details

Details for the file llama_cpp_python_cross-0.2.58-cp39-cp39-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for llama_cpp_python_cross-0.2.58-cp39-cp39-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 61ccece602807b8c97915e52c307902b1713e5c73b3719a02774cb05c14fdd3d
MD5 716179978e11df5af00000b003f1773f
BLAKE2b-256 e67aac10323ed2033aeec5052797358f495a4135544eedb32a9466a38eee4349

See more details on using hashes here.

File details

Details for the file llama_cpp_python_cross-0.2.58-cp39-cp39-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for llama_cpp_python_cross-0.2.58-cp39-cp39-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 2cbd37c12cee0533a1bb24dc8ce66fdfbe5fc349482b8f221509ca5e39785fb5
MD5 21b075700226ea95f9a4f28e88972543
BLAKE2b-256 f2d5c4545493ad85771a160c5f0bb834c73264ed19debb6c6994562223eb5ee2

See more details on using hashes here.

File details

Details for the file llama_cpp_python_cross-0.2.58-cp39-cp39-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for llama_cpp_python_cross-0.2.58-cp39-cp39-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 7c2a3df4c6154a3d63f0e0e7e48e50d259ed4192d80eedf7c8869354f8b1cdc3
MD5 e22ebc320e90eafc1349092572064961
BLAKE2b-256 2cdc4384072e77d8bdd1a4dfa6c83972b3b13cbe203ea1246fc25de71cc79e07

See more details on using hashes here.

File details

Details for the file llama_cpp_python_cross-0.2.58-cp38-cp38-manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for llama_cpp_python_cross-0.2.58-cp38-cp38-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 97c82b9aac3707627ad673346f93b487ce4d3882f7085005b06389f404b275ec
MD5 9b53fd06fed3bf06da00a0b352de7b7d
BLAKE2b-256 6a466622895bae5d95385cbb2acc7af979f5de5492fef75ddc311186579cf9b0

See more details on using hashes here.

File details

Details for the file llama_cpp_python_cross-0.2.58-cp38-cp38-manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for llama_cpp_python_cross-0.2.58-cp38-cp38-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b53a8519402fe043c264af0a7d603d7cb9173bd8b4e8ec0f249160619652163c
MD5 ce869a72c5ca42332a83ea0ecf113c87
BLAKE2b-256 9b3dec558e1fd9f806c369a255edcc2d90fea66e432b0c7b7c3c2978a341c70d

See more details on using hashes here.

File details

Details for the file llama_cpp_python_cross-0.2.58-cp38-cp38-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for llama_cpp_python_cross-0.2.58-cp38-cp38-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 98770f4509eae288967988def7b34d75b1ce56bfaf4247717042794c78ad63ea
MD5 51dee85d0fb21b67057d1569e4584f66
BLAKE2b-256 995dce54805498c288a31e6f9e61e22cb5f9af33aba8c084db9a03783898eb28

See more details on using hashes here.

File details

Details for the file llama_cpp_python_cross-0.2.58-cp38-cp38-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for llama_cpp_python_cross-0.2.58-cp38-cp38-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 d21becf4a0cf6b265003bf505529a08bae53c5c45dc88399f4e808185a657bd0
MD5 f7ac6ab95375147c632e714eb31dbdaa
BLAKE2b-256 0476352a90482795fc58448db4e0fb2906bdef0d6621644036fdf2d819e9177e

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page