此页面记录了 GPT4All 的 Python 绑定,它提供了一种从 Python 应用程序以编程方式与 GPT4All 模型交互的方式。Python 接口能够以最少的代码加载模型、生成文本和创建嵌入,同时支持 GPT4All 的全部功能。
有关基于这些绑定的命令行界面的信息,请参阅 CLI 界面。
GPT4All Python 绑定包含一个简化了 GPT4All 模型使用的高级 API,以及与 C/C++ llmodel 后端的低级绑定。这些绑定允许 Python 开发人员
Python 绑定的设计直观,同时仍然暴露底层 C/C++ 引擎的功能。
来源
可以使用 pip 直接从 PyPI 安装 Python 绑定
为兼容系统上的 CUDA 提供支持
出于开发目的
从源代码构建
来源
Python 绑定采用分层架构,将 Python 代码桥接到底层的 C/C++ 实现。
来源
这些组件之间的通信流程如下:
来源
来源
GPT4All Python 绑定包括发现、下载和管理模型的功能。
模型在首次实例化时如果本地不存在,则会自动下载
手动下载模型
来源
generate 方法接受几个参数来控制文本生成
| 参数 | 描述 | 默认 |
|---|---|---|
max_tokens | 要生成的最大 token 数 | 200 |
temp | 温度(越高越有创意,越低越专注) | 0.7 |
top_k | 将词汇限制在前 K 个选项 | 40 |
top_p | 将词汇限制在构成前 P 概率质量的选项 | 0.4 |
min_p | 仅对概率至少为该值的 token 进行采样 | 0.0 |
repeat_penalty | 重复token的惩罚 | 1.18 |
repeat_last_n | 应用重复惩罚的范围 | 64 |
n_batch | 要并行处理的提示 token 数量 | 8 |
streaming | 是否在生成 token 时进行流式传输 | 否 |
示例
控制用于推理的 CPU 线程数
来源
Python 绑定使用 ctypes 来与 C/C++ llmodel 库进行接口,该库提供了模型执行的核心功能。本节介绍 Python 与原生代码之间的集成。
低级集成的关键组件
来源
绑定程序根据操作系统动态加载适当的 llmodel 库
Python 安装过程在安装期间会将必要的 C 库文件和头文件复制到 Python 包目录。
来源
在 Windows 上,Python 绑定需要 Microsoft Visual C++ 运行时库。如果缺少这些库,您将收到一条错误消息,其中包含从 Microsoft 下载它们的说明。
The Microsoft Visual C++ runtime libraries were not found. Please install them from
https://aka.ms/vs/17/release/vc_redist.x64.exe
要在 Windows 和 Linux 上启用 CUDA 支持,请安装 CUDA 附加组件
如果您使用的是自定义构建并且收到有关缺少 CUDA 库的错误,则可以手动安装它们
大型模型可能需要大量内存。如果您遇到内存不足的错误
n_ctx 参数)来源
Python 绑定保持活跃维护,并定期更新。近期一些值得注意的更改包括:
有关更改的完整列表,请参阅 CHANGELOG.md 文件。
来源
Python 绑定在更广泛的 GPT4All 生态系统中的作用如下:
Python 绑定既可作为 Python 开发者的直接接口,也可作为命令行界面 (CLI) 的基础。它们通过通用的 llmodel C API 与桌面应用程序共享相同的后端。
来源