Misc. bug: llama-cli or llama-server seem to have no way to save a transcript to a file

用户运行 llama-cli 或 llama-server 与 LLM 交互(从 Hugging Face 下载 GGUF 模型),对话结束后希望将完整对话内容(包括用户输入和模型回复)保存到文件中,但找不到对应的命令行选项或交互指令(如 /save )。用户尝试使用 tee 重定向 stdout

Misc. bug: llama-cli or llama-server seem to have no way to save a transcript to a file

Misc. bug: llama-cli or llama-server seem to have no way to save a transcript to a file

快速结论:该问题报告于 llama.cpp 的 GitHub Issue #25404,用户在使用 llama-cli 或 llama-server 交互式对话后,发现没有内置功能可以保存完整对话记录(transcript)到文件。当前版本(截至 Issue 关闭时)的 llama-cli 已支持 --output 命令行参数来保存输出,但该功能是在问题被报告之后才实现的(PR #25484);对于旧版本,可以使用 screen 配合 --simple-io 作为临时方案。

问题场景

用户运行 llama-clillama-server 与 LLM 交互(从 Hugging Face 下载 GGUF 模型),对话结束后希望将完整对话内容(包括用户输入和模型回复)保存到文件中,但找不到对应的命令行选项或交互指令(如 /save)。用户尝试使用 tee 重定向 stdout 也无效,因为交互输出未发送到 stdout。

报错原文

$ llama-cli -hf  | tee chat.log
# 用户输入和 LLM 回复未写入 tee 的日志文件,因为交互内容未输出到 stdout

$ llama-cli --multiline-input --log-prompts-dir log -hf 
# --log-prompts-dir 在 llama-cli 中不生效(目录存在但空文件,或目录未创建)

原因分析

  • llama-cli 和 llama-server 在汇报该 Issue 时(2026-07 前)缺少直接保存对话记录的功能,是一个缺失特性(被标记为 bug-unconfirmed);
  • 用户尝试的 --log-prompts-dir 选项在 llama-cli 中存在但无效(仅在 llama-server 中部分工作,且只记录输入提示,不记录完整对话);
  • 该问题在 Issue 关闭前已由 PR #25484 修复(在 llama-cli 中新增 --output 参数);
  • 使用 screen + --simple-io 可作为一种临时的第三方解决方案,但会产生转义字符。

环境排查

  • 确认 llama.cpp 版本(用户使用 9721 Debian 版本);
  • 如果使用 --log-prompts-dir,确认该选项在当前版本是否可用(旧版本 llama-cli 不工作);
  • 确认是否使用了较新版本(2026-07 之后版本应包含 --output 修复)。

解决步骤

  1. 第一步:检查版本是否已有 --output 参数
    运行 llama-cli --helpllama-cli --version,查看版本号是否为 9721 之后(含 PR #25484 的版本)。如果支持,使用如下命令保存对话:
    llama-cli --multiline-input -hf --output output.txt
  2. 第二步:如果版本较旧且需要临时方案
    使用 screen 工具录制会话,并配合 --simple-io 减少控制字符污染:
    screen -L -Logfile ~/transcript.log
    然后在 screen 中运行:
    llama-cli --multiline-input --simple-io -hf
    对话结束后退出 screen(Ctrl+A+D),日志文件包含文本内容(但可能仍有少量转义序列,可用 col -bsed 清理)。
  3. 第三步(可优先尝试):升级 llama.cpp 到最新版本
    从 GitHub 拉取最新源码并重新编译,以获得 --output 等新功能。编译后测试:
    llama-cli --multiline-input -hf --output conversation.txt

验证方法

运行上述命令并完成一次对话后退出,检查输出文件是否存在、内容是否包含用户输入的提示和模型的完整回复(不包含加载时的进度条或控制转义序列)。例如使用 cat output.txtless output.txt 查看文件内容是否可读。

参考来源

ggml-org/llama.cpp #25404 — Issue 原始讨论
PR #25484 — Add –output to llama-cli

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

celebrityanime
celebrityanime
文章: 12202

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注