日志和调试问题#

日志是所有调试信息转储到的文件。日志文件对于调试在使用聊天引擎时出现的任何问题非常有用。

以下部分描述了 NVIDIA ACE Agent 的日志记录方法、生成的不同日志文件以及如何有效地管理它们。

日志位置#

NVIDIA ACE Agent 将与聊天引擎相关的日志存储在当前工作目录的名为 log 的目录中。在大多数情况下,这是 quickstart 脚本目录。

日志命名约定#

NVIDIA ACE Agent 使用名称 logfilename_hostname_time.log 存储日志。不会丢失多次执行的日志。为了更好的可访问性,为最新的日志文件创建符号链接,并以更简单的名称 logfilename.log 存储在同一目录中。

NVIDIA ACE Agent 存储以下日志文件

  • 聊天引擎日志文件 chat_engine_hostname_time-pid.log,符号链接为 chat_engine.log

  • 健康监控器日志文件 chat_engine_health_hostname_time-pid.log,符号链接为 chat_engine_health.log

  • 所有插件端点的日志都单独存储在 plugin_modulename_hostname_time-pid.log 中,符号链接为 plugin_modulename.log。例如,天气模块日志存储为 plugin_weather_hostname_time-pid.log,其符号链接为 plugin_weather.log

  • 对于基于语音的日志文件,请参阅 音频和元数据记录器 部分。

将聊天引擎日志暴露到控制台#

ACE Agent 支持五个日志级别:DEBUGINFOWARNINGERRORCRITICAL,类似于 Python 日志记录模块。默认情况下,日志级别 WARNING 及以上显示在控制台上,而日志级别 DEBUG 及以上转储到日志文件中。

出于调试目的,ACE Agent 允许您更改控制台日志的日志级别。您可以使用 --log-level <LOG_LEVEL> 参数以及 aceagent 工具为任何组件更改日志级别。

aceagent chat cli -c <bot_directory_path> --log-level debug
aceagent plugin-server deploy -c <path_to_fm_config> --log-level debug

音频和元数据记录器#

语音控制器将 ASR 和 TTS 音频数据转储到当前工作目录中。目录 speech_logs 已挂载到语音控制器容器。

日志记录目录的目录结构将类似于这样

Directory structure for logging directory

如果您想禁用音频和元数据记录器,可以在管道配置文件 speech.yaml 文件中将 enable_logging 标志设置为 false。例如,在 bots/stock_bot/speech.yaml 文件下的示例机器人中,我们需要更新参数

riva_logger:
  RivaLogger:
    data_dump_path: "/workspace/log"
    enable_logging: true