llama.cpp python 库是@ggerganovllama.cpp 的一个简单的 Python 绑定。 此软件包提供:
- 通过 ctypes 接口低层访问 C API。
- 用于文本补全的高级 Python API
OpenAI风格的 APILangChain兼容性LlamaIndex兼容性- 与 OpenAI 兼容的 Web 服务器
- 本地 Copilot 替代品
- 函数调用支持
- 视觉 API 支持
- 多模型
概览
集成详情
| 类别 | 包 | 本地 | 可序列化 | JS 支持 |
|---|---|---|---|---|
| ChatLlamaCpp | langchain-community | ✅ | ❌ | ❌ |
模型功能
设置
要开始使用并利用下面展示的所有功能,我们建议使用经过工具调用微调的模型。 我们将使用 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,允许您描述工具及其参数,并让模型返回一个 JSON 对象,其中包含要调用的工具和该工具的输入。工具调用对于构建使用工具的链和代理,以及更普遍地从模型获取结构化输出非常有用。 通过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 获取实时答案。