本文档描述了 GPT4All 的命令行界面 (CLI),它提供了一种通过终端与 GPT4All 模型进行文本交互的方式。CLI 构建在 Python 绑定 中描述的 Python 绑定之上,使用户无需图形应用程序即可直接从命令行与语言模型进行对话。
来源: gpt4all-bindings/cli/app.py1-7
GPT4All CLI 是作为一个独立的 Python 脚本实现的,该脚本利用 GPT4All Python API 和 Typer 来处理命令行参数。它提供了一个 REPL(Read-Eval-Print Loop)界面用于模型交互,允许在终端环境中与语言模型进行持续对话。
来源: gpt4all-bindings/cli/app.py1-46 gpt4all-bindings/cli/README.md1-19
CLI 需要两个 Python 包
gpt4all - GPT4All 引擎的核心 Python 绑定typer - 用于处理命令行参数和界面你可以通过简单的设置运行 CLI
默认情况下,CLI 会在需要时下载 Mistral Instruct 模型到默认模型目录(通常是 ~/.cache/gpt4all/)。
来源: gpt4all-bindings/cli/README.md8-41 gpt4all-bindings/python/gpt4all/gpt4all.py36
CLI 支持以下命令行选项
| 选项 | 短期 | 描述 | 默认 |
|---|---|---|---|
--model | -m | 用于聊天机器人的模型 | mistral-7b-instruct-v0.1.Q4_0.gguf |
--n-threads | -t | 使用的线程数 | 自动检测 |
--device | -d | 要使用的设备(cpu, gpu, amd, nvidia, intel) | CPU |
使用示例
来源: gpt4all-bindings/cli/app.py52-82 gpt4all-bindings/cli/README.md36-43
CLI 以交互式 REPL 模式运行,您可以在其中持续与模型聊天
CLI 支持以斜杠开头的特殊命令
| 命令 | 描述 |
|---|---|
/reset | 清除对话历史 |
/exit | 退出 CLI |
/clear | 清屏 |
/help | 显示帮助信息 |
来源: gpt4all-bindings/cli/app.py24-29 gpt4all-bindings/cli/app.py135-174
CLI 提供两种主要的运行模式,基于 API 版本,它是一个轻量级的 GPT4All Python API 包装器
新循环模式 (适用于 GPT4All 包版本 >= 1.0.0)
chat_session() 上下文管理器generate()旧循环模式 (适用于旧版本)
chat_completion() 方法新的循环模式利用了更现代的 API 功能,例如用于聊天会话的上下文管理器,它提供了一种更清晰的方式来管理对话状态。
来源: gpt4all-bindings/cli/app.py135-174 gpt4all-bindings/cli/app.py84-96
CLI 使用特定的文本生成参数,平衡质量和性能
| 参数 | 值 | 描述 |
|---|---|---|
max_tokens | 200 | 要生成的最大 token 数 |
temp | 0.9 | 温度(越高=越有创意) |
top_k | 40 | 限制 token 选择为 K 个最佳选项 |
top_p | 0.9 | 核心采样阈值 |
min_p | 0.0 | 最小概率阈值 |
repeat_penalty | 1.1 | 重复惩罚 |
repeat_last_n | 64 | 重复惩罚的上下文窗口 |
n_batch | 9 | token 处理的批次大小 |
这些参数被传递给 GPT4All Python API 中的底层 generate() 方法。
来源: gpt4all-bindings/cli/app.py148-160 gpt4all-bindings/python/gpt4all/gpt4all.py512-547
CLI 使用以下 GPT4All Python API 的关键组件
CLI 利用以下 API 组件
GPT4All 类 - 与语言模型的主要接口GPT4All.chat_session() - 用于处理聊天历史的上下文管理器GPT4All.generate() - 用于从模型生成文本的方法model.set_thread_count() - 用于配置线程使用的方法model.thread_count() - 用于查询当前线程数的方法CLI 脚本作为使用 GPT4All Python API 构建应用程序的实用示例。
来源: gpt4all-bindings/cli/app.py66-82 gpt4all-bindings/cli/app.py135-174 gpt4all-bindings/python/gpt4all/gpt4all.py601-638
GPT4All CLI 提供了一个轻量级的、基于终端的界面来与 GPT4All 语言模型进行交互。它展示了如何在交互式应用程序中使用核心 Python API,并在无需图形界面的情况下提供对语言模型的即时访问。
对于更复杂的集成,开发者可以使用此 CLI 作为参考实现,并直接利用 Python 绑定 为自己的应用程序。
来源: gpt4all-bindings/cli/app.py1-185 gpt4all-bindings/cli/README.md1-43