Report mAIstro creates easily customizable reports on any user-supplied topic.
See report examples here!
- Populate the
.env
file:
$ cp .env.example .env
- Load this folder in LangGraph Studio
- Optionally, provide a description of the report structure you want as a configuration.
- Provide a topic and run the graph to produce a report
RAG systems are a powerful tool for interacting with LLMs, enabling quick and accurate question-answering capabilities. However, individual questions often serve a larger purpose: informing decisions and strategies. While reports are essential decision-making tools, creating comprehensive reports remains a time-consuming challenge. Report mAIstro transforms this process by leveraging LLMs to generate detailed reports through natural language, making report creation more accessible and efficient!
Phase | Objective | Report mAIstro Implementation |
---|---|---|
Structure | How is the report organized? | Uses LLM to convert natural language instructions into structured section objects |
Research | What are the information sources? | Web search via Tavily API |
Orchestration | How is report generation managed? | Three-phase LangGraph workflow: 1) Planning to define sections, 2) Parallel research for content, 3) Generation of introduction/conclusion using gathered context |
Reporting | How is the report presented to the user? | Generates structured markdown files |
UX | What is the user interaction pattern? | Synchronous workflow where user provides inputs and waits for the report to be generated |
-
Natural Language Report Creation
- Report mAIstro requires just two inputs from users:- A
topic
for the report - An optional
structure
in natural language
While a topic alone can generate basic reports, we found that providing a structure significantly improves quality. For example, business strategy reports might need case studies, while comparative analyses benefit from structured comparison tables. The natural language structure acts as a flexible template, guiding the AI to create more focused and relevant reports.
- A
-
Plan and Execute
- Report mAIstro follows a plan-and-execute workflow that separates planning from research, allowing for better resource management and significantly reducing overall report creation time:- Planning Phase: An LLM analyzes the user's
topic
andstructure
using a planning prompt to create the report sections first. - Research Phase: The system parallelizes web research across all sections requiring external data:
- Uses Tavily API for targeted web searches
- Processes multiple sections simultaneously for faster report generation
- Synthesizes gathered information into coherent section content
- Planning Phase: An LLM analyzes the user's
-
Sequential Writing
- The report generation follows a logical sequence:- First, completes all research-dependent sections in parallel
- Then generates connecting sections like introductions and conclusions
- Uses insights from research sections to create cohesive narratives
- Maintains contextual awareness across all sections
While this sequence can be customized via the
structure
, the default flow ensures that conclusions meaningfully incorporate research findings. -
Managing different types
- Report mAIstro is built on LangGraph, which has native support for configuration management using assistants. The reportstructure
is a field in the graph configuration, which allows users to create different assistants for different types of reports.
See the provided notebook or example reports for examples! These include:
- Market Analysis: Compare products, services, or companies across key metrics
- Industry Research: Analyze market trends, innovations, and future outlook
- Strategic Case Studies: Extract actionable insights from business histories
- Technical Guides: Step-by-step implementation instructions
- Custom Templates: Design your own report structure in natural language
Create a virtual environment and install dependencies:
$ python3 -m venv report_maistro
$ source report_maistro/bin/activate
$ pip install -r requirements.txt
Supply your OpenAI API key:
$ cp .env.example .env
Run the notebook:
$ cd ntbk
$ jupyter notebook report_maistro.ipynb
LangGraph Platform allows various deployment options.