llama.cpp python 库是@ggerganov的 llama.cpp 的简单 Python 绑定。 该包提供:
- 通过 ctypes 接口对 C API 的底层访问。
- 用于文本补全的高级 Python API
- 类
OpenAI的 APILangChain兼容性LlamaIndex兼容性- 兼容 OpenAI 的 Web 服务器
- 本地 Copilot 替代方案
- 函数调用支持
- Vision API 支持
- 多模型支持
概述
集成详情
| 类 | 包 | 可序列化 | JS 支持 |
|---|---|---|---|
| ChatLlamaCpp | langchain-community | ❌ | ❌ |
模型功能
| 工具调用 | 结构化输出 | 图像输入 | 音频输入 | 视频输入 | Token 级流式输出 | 原生异步 | Token 用量 | 对数概率 |
|---|---|---|---|---|---|---|---|---|
| ✅ | ✅ | ❌ | ❌ | ❌ | ✅ | ❌ | ❌ | ✅ |
设置
为了开始使用并体验以下所有功能,我们建议使用经过工具调用微调的模型。 我们将使用 NousResearch 提供的 Hermes-2-Pro-Llama-3-8B-GGUF。Hermes 2 Pro 是 Nous Hermes 2 的升级版本,使用了经过更新和清洗的 OpenHermes 2.5 数据集,以及内部开发的全新函数调用和 JSON 模式数据集。该新版 Hermes 保留了出色的通用任务和对话能力,同时在函数调用方面表现卓越。请参阅我们关于本地模型的指南以深入了解:
安装
LangChain LlamaCpp 集成位于langchain-community 和 llama-cpp-python 包中:
实例化
现在我们可以实例化模型对象并生成聊天补全:调用
工具调用
首先,其用法与 OpenAI 函数调用大体相同。 OpenAI 提供了工具调用 API(我们在此将”工具调用”和”函数调用”互换使用),该 API 允许您描述工具及其参数,并让模型返回一个 JSON 对象,包含要调用的工具以及该工具的输入。工具调用对于构建使用工具的链和 Agent 极其有用,也能更普遍地从模型获取结构化输出。 通过ChatLlamaCpp.bind_tools,我们可以轻松地将 Pydantic 类、字典模式、LangChain 工具甚至函数作为工具传递给模型。在底层,这些会被转换为 OpenAI 工具模式,如下所示:
{"type": "function", "function": {"name": <<tool_name>>}}.
结构化输出
流式输出
API 参考
有关 ChatLlamaCpp 所有功能和配置的详细文档,请前往 API 参考:python.langchain.com/api_reference/community/chat_models/langchain_community.chat_models.llamacpp.ChatLlamaCpp.html将这些文档连接到 Claude、VSCode 等,通过 MCP 获取实时解答。

