Python Bindings for llama.cpp
Python Bindings for llama.cpp 是一个简单的 Python 绑定库,用于访问和使用由 @ggerganov 开发的 C++ 库 llama.cpp。该库主要提供以下功能:
- 通过
ctypes
接口提供对 C API 的低级访问。 - 提供高级 Python API 用于文本补全:
- 类似 OpenAI 的 API。
- 支持 LangChain 和 LlamaIndex。
- 提供兼容 OpenAI 的网络服务器:
- 可替代本地的 Copilot。
- 支持功能调用和多模态模型,如 Vision API。
- 支持多个模型的配置。
使用场景
- 文本补全:可以用于类似 OpenAI 的文本生成任务,例如自动补全问题解答、生成代码段等。
- 聊天机器人:通过高级 API 提供会话补全功能,可用于构建聊天机器人和对话系统。
- 多模态模型:支持处理文本和图像信息,例如 Llava1.5 多模态模型,适用于需要混合数据输入的任务。
- 嵌入生成:从文本生成嵌入向量,可用于语义搜索、文本相似度计算等。
- 非文本任务:通过各种硬件加速(如 CUDA、Metal)优化性能,可用于需要高吞吐量和低延迟的任务。
安装和配置
-
支持 Python 3.8+,并需要 C 编译器(Linux: gcc 或 clang;Windows: Visual Studio 或 MinGW;MacOS: Xcode)。
-
安装命令:
pip install llama-cpp-python
或安装预构建的支持 CPU 的轮子文件:
pip install llama-cpp-python --extra-index-url https://abetlen.github.io/llama-cpp-python/whl/cpu
-
支持多种硬件加速,如 OpenBLAS、CUDA、Metal 等,在安装时通过
CMAKE_ARGS
环境变量进行配置。
API 使用示例
高级 API
from llama_cpp import Llama
# 初始化模型
llm = Llama(model_path="./models/7B/llama-model.gguf")
output = llm("Q: Name the planets in the solar system? A: ", max_tokens=32, stop=["Q:", "\n"], echo=True)
print(output)
嵌入生成
import llama_cpp
llm = llama_cpp.Llama(model_path="path/to/model.gguf", embedding=True)
embeddings = llm.create_embedding("Hello, world!")
网络服务器
运行 OpenAI 兼容的 Web 服务器:
pip install 'llama-cpp-python[server]'
python3 -m llama_cpp.server --model models/7B/llama-model.gguf
通过上述步骤,用户可以轻松地安装和使用 llama.cpp 来处理各种文本生成和处理任务,并通过 Python API 提供的高级和低级功能进行灵活开发。
广告:私人定制视频文本提取,字幕翻译制作等,欢迎联系QQ:1752338621