Python Bindings for llama.cpp简介

llama-cpp-python 是基于 llama.cpp 库的Python binding,提供了:

  • 通过 ctypes 接口底层访问C API

  • 为文本完成实现的高层Python API

    • 类似OpenAI的API

    • 兼容LangChain

    • 兼容LlamaIndex

  • OpenAI兼容web服务器

    • 本地Copilot替代

    • 函数调用支持

    • 版本API支持

    • 多模态

简单来说, llama-cpp-python 通过对 llama.cpp 的Python封装,实现了:

  • 无依赖WEB服务器: 自带基于FastAPI的服务器,可以直接模拟OpenAI的API接口。这样任何支持OpenAI后端的插件(如 VS Code 的Continue,Cursor,Copilot等)都可以无缝切换

  • 极致的硬件控制:

    • 异构计算: 可以精确指定多少Layer跑在 AMD Radeon Instinct MI50 ,多少Layer跑在 NVIDIA Tesla A2 GPU运算卡 上(通过不同的 n_gpu_layers 参数)

    • 内存压缩: 支持GGUF格式的所有量化级别(从Q2_K到Q8_O),这对于管理显存非常重要

  • 不仅是服务器,也是库: 可以直接在Python脚本中 import llama_cpp ,就像普通函数一样进行推理,而不需要通过HTTP协议绕一圈

llama-cpp-python 和 Ollama对比

特性

Ollama

llama-cpp-python

封装程度

极高(隐藏了所有复杂参数)

中等(暴露了所有底层参数)

部署方式

独立的二进制 Service

Python 包 (pip install)

API 兼容性

自有 API 为主,兼容 OpenAI

完美模拟 OpenAI API 标准

多 GPU 支持

自动分配(有时难以干预)

手动精细分配,适合 SRE 调优

适用场景

个人日常对话、快速体验

AI 编程后端、生产环境集成、自动化脚本