综合介绍
这是一个由LangChain和NVIDIA联合开发的结构化报告生成蓝图项目,展示在GitHub上的Jupyter notebook教程。该项目利用先进的AI技术,特别是Llama-3.3-70b模型,来自动化生成专业的技术报告。项目的核心特色是使用LangChain的LangGraph构建了一个多阶段的报告生成系统,包括报告规划、网络研究和内容撰写。这个系统能够根据用户定义的主题和结构提纲,自动规划报告章节,通过Tavily进行智能网络搜索获取相关信息,并生成结构清晰、内容专业的技术报告。该项目特别适合需要快速生成高质量技术文档的开发者和技术团队使用。
推荐:STORM:基于Topic搜索网络数据,生成带引用的论文、长文报告
功能列表
- 自动化报告结构规划:基于用户输入的主题和组织要求生成报告大纲
- 智能网络研究:使用Tavily API进行针对性的网络搜索和信息收集
- 并行处理报告章节:支持多个章节的同时研究和撰写
- 灵活的报告定制:可根据需求选择新闻或一般性内容搜索
- 结构化输出控制:支持表格、列表等多种标记语言格式
- 源引用追踪:自动收集和格式化参考源
- 质量控制机制:包含字数限制和格式检查
- 交互式开发环境:完整的Jupyter notebook实现
使用帮助
1. 环境准备
- 安装必要的依赖包:
%pip install --quiet -U langgraph langchain_community langchain_core tavily-python langchain_nvidia_ai_endpoints
- 配置API密钥:
- NVIDIA NIM Trial API Key
- 访问NVIDIA NIM页面注册并获取API密钥
- 新用户可获得1000个API试用积分
- LangChain API Key
- 在LangChain设置页面创建账户
- 导航至"API Keys"创建新的API密钥
- Tavily API Key
- 访问Tavily主页注册账户
- 创建API密钥
2. 项目初始化
- 设置环境变量:
Python
import os
os.environ["NVIDIA_API_KEY"] = "your-nvidia-api-key"
os.environ["LANGCHAIN_API_KEY"] = "your-langchain-api-key"
os.environ["TAVILY_API_KEY"] = "your-tavily-api-key"
- 初始化必要的客户端:
Python
from tavily import TavilyClient, AsyncTavilyClient
tavily_client = TavilyClient()
tavily_async_client = AsyncTavilyClient()
3. 报告生成流程
- 定义报告结构:
Python
report_structure = """
This report type focuses on comparative analysis.
The report structure should include:
1. Introduction
2. Main Body Sections
3. Conclusion with Comparison Table
"""
- 设置报告主题:
Python
report_topic = "你的报告主题"
- 配置搜索参数:
Python
tavily_topic = "general" # 或 "news"
tavily_days = None # 仅适用于新闻主题
- 生成报告计划:
Python
sections = await generate_report_plan({
"topic": report_topic,
"report_structure": report_structure,
"number_of_queries": 2,
"tavily_topic": tavily_topic,
"tavily_days": tavily_days
})
4. 高级功能使用
- 自定义查询生成:
- 修改query_writer_instructions来优化搜索查询
- 调整number_of_queries参数控制每个章节的查询数量
- 内容格式化控制:
- 使用Markdown语法设置标题层级
- 支持表格和列表等结构化内容
- 可以控制每个章节的字数限制
- 源内容管理:
- 使用deduplicate_and_format_sources函数处理搜索结果
- 可以调整max_tokens_per_source参数控制源内容长度
- 并行处理优化:
- 使用LangGraph实现多章节并行研究
- 通过调整StateGraph配置优化处理流程
5. 注意事项
- API使用限制:
- 注意监控NVIDIA API的使用额度
- 合理设置查询频率避免超出限制
- 内容质量控制:
- 确保report_structure提供清晰的章节指导
- 定期验证生成内容的准确性
- 系统要求:
- 确保Python环境版本兼容
- 保持依赖包为最新版本
- 错误处理:
- 实现适当的错误处理机制
- 保存中间结果避免处理中断