关于日志的一切
本文档解释了如何解读为每份报告生成的日志文件。这些日志详细记录了研究过程,从最初的任务规划到信息收集,最后到报告撰写过程。随着新功能的开发,报告可能会随时间而变化。
日志文件概述
日志文件是一个 JSON 文件,其中包含研究过程中发生的事件列表。每个事件都是一个带有时间戳、类型和数据的对象。数据包含有关事件的具体信息。
您可以在 outputs 文件夹中找到日志文件。
或者,您也可以通过点击报告页面上的“下载日志”按钮来访问日志文件。
对于开发者,还有一个额外的 logs 文件夹可能有用。更多详情请见下文描述。
关键组件:
timestamp: 时间戳格式为YYYY-MM-DDTHH:MM:SS.ffffff,这是一种 ISO 格式。主时间戳是文件本身的生成时间。事件的时间戳是每个特定事件在研究过程中发生的时间。events: 这是一个数组,包含研究任务期间所有记录的事件。每个事件对象具有以下结构。timestamp: 事件发生的具体时间,让您可以跟踪操作的顺序。type: 目前此项将始终为 "event"。data: 包含有关事件的具体信息。包括:type: 这表示事件的一般类型(例如,“logs”)。content: 描述工具正在做什么(例如,“starting_research”、“running_subquery_research”、“scraping_content”)。output: 一条更详细的消息,通常包含视觉指示符(表情符号),当工具执行任务时发送给用户。metadata: 与事件相关的附加数据。此项可以为null或包含相关信息(如 URL)的数组。
事件类型及其重要性
这里是所有独特的 content 类型及其含义的完整细分。这是研究工具将执行的所有不同操作的综合列表。
starting_research:
- 表示针对给定任务的研究过程已经开始。
output: 包括研究查询的文本。
agent_generated:
- 这表示用于此任务的代理。
output: 将显示代理的名称。
planning_research:
- 显示工具正在进行初步浏览,以了解请求的范围并开始规划。
output表明工具正在进行浏览或初步规划。
subqueries:
- 表示工具已创建用于研究的子查询。
output: 列出工具为执行研究将要运行的所有子查询。metadata: 一个包含待运行子查询的字符串数组。
running_subquery_research:
- 表示正在执行特定的子查询研究。
output: 显示正在运行的具体子查询。
added_source_url:
- 表示一个被识别为相关信息来源的 URL。
output: 提供带有对勾表情符号的 URL 以表示成功。metadata: 包含实际添加的 URL。
researching:
- 表示工具正在跨多个来源积极搜索信息。
output: 一条通用消息,表示正在跨多个来源进行研究。
scraping_urls:
- 显示工具正开始从一组 URL 中抓取内容。
output: 表明工具将要从多少个 URL 中抓取内容。
scraping_content:
- 表示工具已成功从 URL 中抓取内容。
output: 显示已成功抓取的页面数量。
scraping_images:
- 表示在抓取过程中识别并选择了图片。
output: 显示选择的新图片数量和找到的总图片数量。metadata: 一个包含所选图片 URL 的数组。
scraping_complete:
- 表示 URL 的抓取过程已完成。
output: 一条声明抓取过程已完成的消息。
fetching_query_content:
- 表示工具正在根据特定查询获取内容。
output: 正在为其获取内容的特定查询。
subquery_context_window:
- 表示工具正在为给定的子查询创建一个上下文窗口,以帮助进行更详细的研究。
output: 一条声明已为子查询创建上下文窗口的消息。
research_step_finalized:
- 表示一个步骤的研究部分已完成。
output: 一条声明研究已完成的消息。
generating_subtopics:
- 表示工具正在生成子主题以指导报告。
output: 一条表明工具正在生成子主题的消息。
subtopics_generated:
- 表示子主题已生成。
output: 一条子主题已生成的消息。
writing_introduction:
- 表示工具开始撰写报告的引言。
output: 一条给用户的消息,告知引言撰写已开始。
introduction_written:
- 表示报告的引言已完成。
output: 一条给用户的消息,告知引言撰写已完成。
generating_draft_sections:
- 显示工具正在为报告生成草稿章节。
output: 一条报告正在生成草稿章节的消息。
draft_sections_generated:
- 表示报告的草稿章节已生成。
output: 一条给用户的消息,告知草稿章节已生成。
fetching_relevant_written_content:
- 表示工具正在为报告获取相关的已撰写内容。
output: 一条给用户的消息,告知正在获取相关内容。
writing_report:
- 表示工具开始将研究内容汇编成报告。
output: 一条给用户的消息,告知报告生成已开始。
report_written:
- 表示报告生成已完成。
output: 一条报告生成已完成的消息。
relevant_contents_context:
- 表示已为相关内容创建了一个上下文窗口。
output: 一条表明已为相关内容创建上下文窗口的消息。
writing_conclusion:
- 表示工具已开始撰写报告的结论。
output: 一条给用户的消息,告知正在撰写结论。
conclusion_written:
- 表示报告的结论已撰写完成。
output: 一条给用户的消息,告知结论已撰写完成。
如何使用日志
- 故障排除:如果研究结果出乎意料,日志文件可以帮助您了解工具所采取的确切步骤,包括使用的查询、访问的来源以及报告的生成方式。
- 透明度:日志提供了研究过程的透明度。您可以确切地看到访问了哪些 URL,选择了哪些图片,以及报告是如何构建的。
- 理解过程:日志将提供工具的功能以及每个步骤的样子的概述。
- 可复现性:日志文件允许用户追溯确切的过程。
使用示例
通过查看时间戳,您可以看到研究任务的流程。日志将向您展示工具用于处理主查询的子查询、所有使用的 URL、研究是否选择了图片,以及工具生成报告所采取的所有步骤。
开发者专用日志
除了面向用户的日志文件(详细和摘要报告),应用程序还专门为开发者生成两种类型的日志文件:
- 一个
.log文件,这是一种基本的日志文件格式,用于记录事件的发生。 - 一个
.json文件,结构更清晰。请在logs文件夹中查找这些日志。
基本日志文件 (.log)
- 格式:纯文本格式。每行代表一个日志条目。
- 内容
- 带毫秒精度的时间戳。
- 日志级别:通常是
INFO,但在更复杂的设置中可能包括DEBUG、WARNING或ERROR。 - 模块名称(例如,“research”)。
- 关于各种过程的描述性消息。
- 包含以下数据:
- 研究任务的开始和结束
- 正在执行的网页搜索
- 研究的规划
- 生成的子查询及其结果
- 抓取数据的大小
- 从子查询中找到的内容的大小
- 找到的所有上下文的最终合并大小
- 开发者用例
- 实时监控:可用于实时监控工具的活动。
- 调试:通过查看操作的时间顺序流程、收集内容的大小等,有助于精确定位问题。
- 性能分析:时间戳可以通过测量某些操作所需的时间来帮助识别瓶颈。
- 高层概览:允许开发者轻松查看工具执行了哪些步骤,以及一些基本信息,如收集内容的大小。
- 与用户日志的主要区别
- 结构化程度较低,更适合开发者实时审查。
- 包含通常与非开发者用户无关的技术信息。
- 没有表情符号或简化语言。
- 没有关于收集的图片的信息。
JSON 日志文件 (.json)
- 格式:结构化的 JSON 格式
- 内容:
- 时间戳,与所有日志文件一样
type字段可以是:sub_query:包含子查询字符串以及scraped_data_sizecontent_found:包括sub_query和content_size- 一个
content字段,提供了整体研究的快照,可以包含该任务研究发现的最终上下文和来源。
- 时间戳,与所有日志文件一样
- 开发者用例:
- 详细分析:允许开发者查看工具运行的具体细节,特别是与子查询和研究结果相关的细节。
- 过程理解:开发者可以看到运行的不同子查询以及每个查询生成了多少内容,这有助于更好地调试和理解工具。
- 数据检查:可用于审查生成的查询和内容大小。
- 与用户日志的主要区别:
- 高度结构化,专注于子查询的执行以及此过程的结果,特别是收集信息的大小。
- 不包含简化语言、表情符号或高层解释。
- 不包含有关整体上下文或收集的图片的信息,主要关注子查询过程。