--- name: research-pipeline version: 1.0.0 description: Fetch a Wikipedia page, summarise it using an AI agent, and write the summary to a file. inputs: - URL of the Wikipedia page steps: - 'Step 1: Import necessary modules from _bootstrap (NIM_MODEL, require_nim_api_key) and blacknode' - 'Step 2: Require NVIDIA NIM API key using `require_nim_api_key()`' - 'Step 3: Create a Graph instance `g`' - 'Step 4: Add a Literal node for the URL of the Wikipedia page (`url`)' - 'Step 5: Add an HTTPGet node to fetch the content from the URL (`fetcher`) and connect it to the Literal node' - 'Step 6: Add an LLMAgent node with system prompt ''You are a technical writer. Summarise the text in 3 bullet points.'' and model NIM_MODEL (`summarise`), connecting its input to the output of `fetcher`' - 'Step 7: Add a FileWrite node to write the summary to a file named ''summary.txt'' (`writer`), connecting its input to the output of `summarise`' - 'Step 8: Cook the graph starting from the writer node and print the path where the summary is written' outputs: - Path to the summary file tags: [] metadata: source_repo: https://github.com/temiroff/Blacknode.git extracted_at: '' confidence: 0.95 --- # research-pipeline Fetch a Wikipedia page, summarise it using an AI agent, and write the summary to a file. ## Setup **Dependencies:** ```text pip install anthropic>=0.25 docker>=7.1 openai>=1.0 ``` **Setup steps:** 1. Ensure NVIDIA NIM API key is set in the environment or editor UI 1. Install required dependencies using `pip install -r requirements.txt` ## Key Files - `examples/research_pipeline.py - Contains the research pipeline workflow` ## Steps 1. Step 1: Import necessary modules from _bootstrap (NIM_MODEL, require_nim_api_key) and blacknode 2. Step 2: Require NVIDIA NIM API key using `require_nim_api_key()` 3. Step 3: Create a Graph instance `g` 4. Step 4: Add a Literal node for the URL of the Wikipedia page (`url`) 5. Step 5: Add an HTTPGet node to fetch the content from the URL (`fetcher`) and connect it to the Literal node 6. Step 6: Add an LLMAgent node with system prompt 'You are a technical writer. Summarise the text in 3 bullet points.' and model NIM_MODEL (`summarise`), connecting its input to the output of `fetcher` 7. Step 7: Add a FileWrite node to write the summary to a file named 'summary.txt' (`writer`), connecting its input to the output of `summarise` 8. Step 8: Cook the graph starting from the writer node and print the path where the summary is written ## Implementation Details ```python from _bootstrap import NIM_MODEL, require_nim_api_key import blacknode as bn ``` ```python g = bn.Graph() url = g.node('Literal', value='https://en.wikipedia.org/w/api.php?action=query&prop=extracts&exintro=1&explaintext=1&titles=Houdini_(software)&format=json&formatversion=2&origin=*') fetcher = g.node('HTTPGet') summarise = g.node('LLMAgent', system='You are a technical writer. Summarise the text in 3 bullet points.', model=NIM_MODEL) writer = g.node('FileWrite', path='summary.txt') ``` ```python url.out('value') >> fetcher.inp('url') fetcher.out('text') >> summarise.inp('prompt') summarise.out('text') >> writer.inp('text') ``` ```python result = g.cook(writer, 'path') print(f'Summary written to: {result}') ``` ## Inputs - URL of the Wikipedia page ## Outputs - Path to the summary file ## Failure Modes - If the URL is invalid, HTTPGet will fail; if NIM API key is missing, LLMAgent will not function properly ## Source Extracted from: [https://github.com/temiroff/Blacknode.git](https://github.com/temiroff/Blacknode.git) Confidence: 0.95