Skip to main content
llama.cpp python 库是 @ggerganovllama.cpp 的一个简单 Python 绑定。 此包提供:
  • 通过 ctypes 接口对 C API 的低级访问。
  • 用于文本补全的高级 Python API
    • 类似 OpenAI 的 API
    • LangChain 兼容性
    • LlamaIndex 兼容性
  • OpenAI 兼容的 Web 服务器
    • 本地 Copilot 替代方案
    • 函数调用支持
    • 视觉 API 支持
    • 多模型支持

概述

集成详情

模型特性

设置

要开始使用并使用下面展示的所有功能,我们建议使用为工具调用进行过微调的模型。 我们将使用 NousResearch 的 Hermes-2-Pro-Llama-3-8B-GGUF
Hermes 2 Pro 是 Nous Hermes 2 的升级版本,包含一个更新和清理过的 OpenHermes 2.5 数据集,以及一个内部开发的全新函数调用和 JSON 模式数据集。这个新版本的 Hermes 保持了其出色的通用任务和对话能力——但也擅长函数调用。
查看我们关于本地模型的指南以深入了解:

安装

LangChain LlamaCpp 集成位于 langchain-communityllama-cpp-python 包中:

实例化

现在我们可以实例化我们的模型对象并生成聊天补全:

调用

工具调用

首先,它的工作方式与 OpenAI 函数调用基本相同。 OpenAI 有一个工具调用(我们在这里互换使用“工具调用”和“函数调用”)API,允许你描述工具及其参数,并让模型返回一个包含要调用的工具及其输入的 JSON 对象。工具调用对于构建使用工具的链和代理,以及更普遍地从模型获取结构化输出非常有用。 通过 ChatLlamaCpp.bind_tools,我们可以轻松地将 Pydantic 类、字典模式、LangChain 工具甚至函数作为工具传递给模型。在底层,这些被转换为 OpenAI 工具模式,如下所示:
并在每次模型调用时传入。 但是,它不能自动触发函数/工具,我们需要通过指定 ‘tool choice’ 参数来强制触发。此参数通常按如下所述格式化。 {"type": "function", "function": {"name": <<tool_name>>}}.

结构化输出

流式传输