科学工具
科学工具让世界更美好
让世界更美好

历史人物事件时间线生成工具 Event Deep Research历史人物事件时间线生成工具 Event Deep Research

Event Deep Research 是一个AI代理项目,通过深入研究历史人物的生平,将关键事件提取并组织成结构化的JSON时间线。Event Deep Research 利用一个主管Agent来协调整个研究工作流,该Agent集成了研究、思考和完成等工具,通过一个合并工作流来有效整合并去除来自多个信息源的重复事件。Event Deep Research 支持不同的LLM模型,包括OpenAI、Anthropic、Google和本地的Ollama模型,在架构上由主管Agent、研究Agent、URL爬虫和合并Agent协同工作,保证信息的准确获取和处理。Event Deep Research 提供了高度可定制的配置选项,允许用户根据需求调整LLM模型、令牌限制和处理参数,通过LangGraph Studio提供直观的交互界面,用户只需简单输入一个人物名称即可实时生成详细的结构化事件输出。

不同角色AI代理协作:配备主管代理(Supervisor Agent),可调用研究、思考、完成等多种工具,协调各环节工作,有研究代理负责查找传记资料、管理爬虫与合并代理,合并代理则专门处理多来源事件的去重与整合。

不同的模型支持:兼容 OpenAI、Anthropic、Google 等主流云端模型,也支持 Ollama 等本地模型,可根据需求在配置中切换。

结构化输出:能将历史人物的生平事件整理为规范的 JSON 格式,包含事件名称、描述、日期(精确到年/月)、地点及唯一ID,便于后续分析与使用。

不同来源信息融合:通过合并工作流整合不同渠道的事件数据,自动去除重复内容,确保信息全面且简洁。

Event Deep Research 使用示例

以“阿尔伯特·爱因斯坦”为研究对象,输入格式如下:

{
  "person_to_research": "Albert Einstein"
}

项目输出的结构化事件数据如下,清晰呈现爱因斯坦人生中的关键节点:

{
  "structured_events": [
    {
      "name": "生于乌尔姆",
      "description": "阿尔伯特·爱因斯坦出生于德国乌尔姆,父母为赫尔曼·爱因斯坦与宝琳·爱因斯坦",
      "date": {"year": 1879, "note": "3月14日"},
      "location": "德国帝国,乌尔姆",
      "id": "time-1879-03-14T00:00:00Z"
    },
    {
      "name": "就读苏黎世联邦理工学院",
      "description": "进入苏黎世瑞士联邦理工学院,学习物理与数学",
      "date": {"year": 1896, "note": ""},
      "location": "瑞士,苏黎世",
      "id": "time-1896-01-01T00:00:00Z"
    },
    {
      "name": "奇迹年论文发表",
      "description": "发表四篇具有开创性的论文,内容涉及光电效应、布朗运动、狭义相对论及质能等价",
      "date": {"year": 1905, "note": ""},
      "location": "瑞士,伯尔尼",
      "id": "time-1905-01-01T00:00:00Z"
    },
    {
      "name": "获诺贝尔物理学奖",
      "description": "因发现光电效应定律而被授予诺贝尔物理学奖",
      "date": {"year": 1921, "note": ""},
      "location": "瑞典,斯德哥尔摩",
      "id": "time-1921-01-01T00:00:00Z"
    },
    {
      "name": "逝于普林斯顿",
      "description": "阿尔伯特·爱因斯坦在普林斯顿医院去世,生前拒绝接受腹主动脉瘤手术",
      "date": {"year": 1955, "note": "4月18日"},
      "location": "美国,新泽西州,普林斯顿",
      "id": "time-1955-04-18T00:00:00Z"
    }
  ]
}

Event Deep Research 安装与部署

前置条件

• Python 3.12 及以上版本 • uv(Python 包管理器)

Event Deep Research 安装

1、克隆仓库

执行命令克隆代码到本地,并进入项目目录:

git clone https://github.com/bernatsampera/event-deep-research.git
cd event-deep-research

2、创建虚拟环境并安装依赖

通过 uv 构建虚拟环境,激活后同步项目依赖:

uv venv && source .venv/bin/activate
uv sync

3、配置环境变量

复制示例环境变量文件,根据需求填写 API 密钥:

cp .env.example .env

需要配置的关键变量包括:

• FIRECRAWL_BASE_URL(默认值:https://api.firecrawl.com/v1

• FIRECRAWL_API_KEY(生产环境必需,本地测试可选)

• TAVILY_API_KEY(必需)

• 模型 API 密钥(如 OPENAI_API_KEY、ANTHROPIC_API_KEY 等,需在 configuration.py 中切换对应模型)

4、启动开发服务器

运行命令启动服务,之后访问指定地址即可进入 LangGraph Studio:

uvx --refresh --from "langgraph-cli[inmem]" --with-editable 、--python 3.12 langgraph dev --allow-blocking

服务启动后,打开 http://localhost:2024 就能使用界面。

Event Deep Research使用方法(推荐通过 LangGraph Studio)

1、按照上述步骤启动开发服务器,访问 http://localhost:2024

2、在界面中选择 “supervisor” 工作流。

3、输入研究请求,格式参考:

{
    "person_to_research": "需要研究的历史人物姓名"
}

4、实时查看 AI 代理的工作过程,完成后获取结构化事件输出。

Event Deep Research 配置说明(configuration.py)

项目支持通过配置文件调整核心参数,满足不同使用场景需求,关键配置项如下:

模型相关

• llm_model:默认使用的主模型(同时用于结构化输出与工具调用)

• structured_llm_model:覆盖主模型,专门用于结构化输出

• tools_llm_model:覆盖主模型,专门用于工具调用

• chunk_llm_model:小型模型,用于传记事件片段检测

令牌限制

• structured_llm_max_tokens:结构化输出模型的最大令牌数

• tools_llm_max_tokens:工具调用模型的最大令牌数

重试机制

• max_structured_output_retries:结构化输出的最大重试次数

• max_tools_output_retries:工具调用的最大重试次数

文本处理

• default_chunk_size:文本处理的默认片段大小

• default_overlap_size:片段间的默认重叠大小

• max_content_length:最大处理内容长度

• max_tool_iterations:工具调用的最大迭代次数

• max_chunks:传记事件检测的最大片段数量