--- name: research-pipeline version: 1.0.0 description: Fetch a Wikipedia page, summarise its content 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` and `blacknode`: Run `from _bootstrap import NIM_MODEL, require_nim_api_key; import blacknode as bn`' - 'Step 2: Require NVIDIA NIM API key: Call `require_nim_api_key()` to ensure the API key is set.' - 'Step 3: Create a graph instance: Initialize `g = bn.Graph()`.' - 'Step 4: Add nodes for URL, HTTPGet, summarisation, and file writing: `url = g.node(''Literal'', value=''URL of the Wikipedia page''); 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'')`' - 'Step 5: Connect nodes with edges: `url.out(''value'') >> fetcher.inp(''url''); fetcher.out(''text'') >> summarise.inp(''prompt''); summarise.out(''text'') >> writer.inp(''text'')`' - 'Step 6: Cook the graph to execute and get output: `result = g.cook(writer, ''path''); print(f''Summary written to: {result}'')`' outputs: - Path of 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 its content 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 1. Install required dependencies: `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` and `blacknode`: Run `from _bootstrap import NIM_MODEL, require_nim_api_key; import blacknode as bn` 2. Step 2: Require NVIDIA NIM API key: Call `require_nim_api_key()` to ensure the API key is set. 3. Step 3: Create a graph instance: Initialize `g = bn.Graph()`. 4. Step 4: Add nodes for URL, HTTPGet, summarisation, and file writing: `url = g.node('Literal', value='URL of the Wikipedia page'); 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')` 5. Step 5: Connect nodes with edges: `url.out('value') >> fetcher.inp('url'); fetcher.out('text') >> summarise.inp('prompt'); summarise.out('text') >> writer.inp('text')` 6. Step 6: Cook the graph to execute and get output: `result = g.cook(writer, 'path'); print(f'Summary written to: {result}')` ## Implementation Details ```python from _bootstrap import NIM_MODEL, require_nim_api_key; import blacknode as bn ``` ```python 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') ``` ## Inputs - URL of the Wikipedia page ## Outputs - Path of the summary file ## Failure Modes - If the URL is invalid or unreachable, the HTTPGet node will fail; if the summarisation fails, the output text might be empty ## Source Extracted from: [https://github.com/temiroff/Blacknode.git](https://github.com/temiroff/Blacknode.git) Confidence: 0.95