Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| dc9053fa1d |
@@ -9,10 +9,10 @@ steps:
|
||||
- 'Step 1: Researcher agent (agent.py) uses LangGraph create_react_agent with BedrockModel
|
||||
to gather raw facts about the destination.'
|
||||
- 'Step 2: Travel Guide Generator agent (agent.py) synthesizes the gathered data into
|
||||
a structured travel guide based on the user''s request and raw information provided
|
||||
a structured travel guide based on the user''s request and the raw information provided
|
||||
by the researcher.'
|
||||
- 'Step 3: Writer agent (agent.py) formats the final response, including the structured
|
||||
guide content and prominently features the ''Suggested Web Pages'' section.'
|
||||
travel guide content and prominently featuring the ''Suggested Web Pages'' section.'
|
||||
outputs:
|
||||
- Structured travel guide with key sections
|
||||
- Final client response
|
||||
@@ -32,24 +32,23 @@ Gather and process information from multiple agents to generate a comprehensive
|
||||
**Dependencies:**
|
||||
|
||||
```text
|
||||
pip install python3 fastapi uvicorn strands bedrock-model
|
||||
pip install python langchain strands
|
||||
```
|
||||
|
||||
**Setup steps:**
|
||||
|
||||
1. Install required dependencies using pip
|
||||
1. Set up environment variables for API keys and model IDs
|
||||
1. Install required dependencies using pip and ensure the BedrockModel is properly configured.
|
||||
|
||||
## Key Files
|
||||
|
||||
- `agents/aws_strands/05-agent-strands-multiagent-workflow-sequential/agent.py - Contains the multi-agent workflow logic.`
|
||||
- `agents/aws_strands/05-agent-strands-multiagent-workflow-sequential/app.py - FastAPI app to handle user queries.`
|
||||
- `agents/aws_strands/05-agent-strands-multiagent-workflow-sequential/agent.py - Contains the sequential workflow logic for gathering and processing information.`
|
||||
- `agents/aws_strands/05-agent-strands-multiagent-workflow-sequential/app.py - Provides a FastAPI endpoint to interact with the multi-agent system.`
|
||||
|
||||
## Steps
|
||||
|
||||
1. Step 1: Researcher agent (agent.py) uses LangGraph create_react_agent with BedrockModel to gather raw facts about the destination.
|
||||
2. Step 2: Travel Guide Generator agent (agent.py) synthesizes the gathered data into a structured travel guide based on the user's request and raw information provided by the researcher.
|
||||
3. Step 3: Writer agent (agent.py) formats the final response, including the structured guide content and prominently features the 'Suggested Web Pages' section.
|
||||
2. Step 2: Travel Guide Generator agent (agent.py) synthesizes the gathered data into a structured travel guide based on the user's request and the raw information provided by the researcher.
|
||||
3. Step 3: Writer agent (agent.py) formats the final response, including the structured travel guide content and prominently featuring the 'Suggested Web Pages' section.
|
||||
|
||||
## Implementation Details
|
||||
|
||||
@@ -76,7 +75,7 @@ final_response = writer_agent(writer_prompt, stream=False)
|
||||
|
||||
## Failure Modes
|
||||
|
||||
- Network issues during API calls could lead to incomplete data collection or processing failures
|
||||
- Specific failure scenario with mitigation: If any of the agents fail to process their tasks (e.g., network issues, model errors), the workflow will fail. Mitigation involves robust error handling and fallback mechanisms.
|
||||
|
||||
## Source
|
||||
|
||||
|
||||
@@ -5,6 +5,6 @@
|
||||
```python
|
||||
# How to use this skill
|
||||
# Inputs: User query with location
|
||||
# Process: Step 1: Researcher agent (agent.py) uses LangGraph create_react_agent with BedrockModel to gather raw facts about the destination. → Step 2: Travel Guide Generator agent (agent.py) synthesizes the gathered data into a structured travel guide based on the user's request and raw information provided by the researcher. → Step 3: Writer agent (agent.py) formats the final response, including the structured guide content and prominently features the 'Suggested Web Pages' section.
|
||||
# Process: Step 1: Researcher agent (agent.py) uses LangGraph create_react_agent with BedrockModel to gather raw facts about the destination. → Step 2: Travel Guide Generator agent (agent.py) synthesizes the gathered data into a structured travel guide based on the user's request and the raw information provided by the researcher. → Step 3: Writer agent (agent.py) formats the final response, including the structured travel guide content and prominently featuring the 'Suggested Web Pages' section.
|
||||
# Outputs: Structured travel guide with key sections, Final client response
|
||||
```
|
||||
|
||||
@@ -7,18 +7,18 @@
|
||||
],
|
||||
"steps": [
|
||||
"Step 1: Researcher agent (agent.py) uses LangGraph create_react_agent with BedrockModel to gather raw facts about the destination.",
|
||||
"Step 2: Travel Guide Generator agent (agent.py) synthesizes the gathered data into a structured travel guide based on the user's request and raw information provided by the researcher.",
|
||||
"Step 3: Writer agent (agent.py) formats the final response, including the structured guide content and prominently features the 'Suggested Web Pages' section."
|
||||
"Step 2: Travel Guide Generator agent (agent.py) synthesizes the gathered data into a structured travel guide based on the user's request and the raw information provided by the researcher.",
|
||||
"Step 3: Writer agent (agent.py) formats the final response, including the structured travel guide content and prominently featuring the 'Suggested Web Pages' section."
|
||||
],
|
||||
"outputs": [
|
||||
"Structured travel guide with key sections",
|
||||
"Final client response"
|
||||
],
|
||||
"failure_modes": [
|
||||
"Network issues during API calls could lead to incomplete data collection or processing failures"
|
||||
"Specific failure scenario with mitigation: If any of the agents fail to process their tasks (e.g., network issues, model errors), the workflow will fail. Mitigation involves robust error handling and fallback mechanisms."
|
||||
],
|
||||
"confidence": 0.95,
|
||||
"explanation": "This workflow is specific but can be adapted for other types of guides or information gathering tasks.",
|
||||
"explanation": "This workflow is specific to generating travel guides but can be adapted for other types of structured content creation.",
|
||||
"source_repo": "https://github.com/omerbsezer/Fast-LLM-Agent-MCP.git",
|
||||
"score": 1.0
|
||||
}
|
||||
@@ -1,27 +1,26 @@
|
||||
---
|
||||
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.
|
||||
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 (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'
|
||||
- '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 to the summary file
|
||||
- Path of the summary file
|
||||
tags: []
|
||||
metadata:
|
||||
source_repo: https://github.com/temiroff/Blacknode.git
|
||||
@@ -31,7 +30,7 @@ metadata:
|
||||
|
||||
# research-pipeline
|
||||
|
||||
Fetch a Wikipedia page, summarise it using an AI agent, and write the summary to a file.
|
||||
Fetch a Wikipedia page, summarise its content using an AI agent, and write the summary to a file.
|
||||
|
||||
## Setup
|
||||
|
||||
@@ -43,8 +42,8 @@ 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`
|
||||
1. Ensure NVIDIA NIM API key is set in the environment or editor
|
||||
1. Install required dependencies: `pip install -r requirements.txt`
|
||||
|
||||
## Key Files
|
||||
|
||||
@@ -52,39 +51,25 @@ pip install anthropic>=0.25 docker>=7.1 openai>=1.0
|
||||
|
||||
## 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
|
||||
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
|
||||
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')
|
||||
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}')
|
||||
url.out('value') >> fetcher.inp('url'); fetcher.out('text') >> summarise.inp('prompt'); summarise.out('text') >> writer.inp('text')
|
||||
```
|
||||
|
||||
## Inputs
|
||||
@@ -93,11 +78,11 @@ print(f'Summary written to: {result}')
|
||||
|
||||
## Outputs
|
||||
|
||||
- Path to the summary file
|
||||
- Path of the summary file
|
||||
|
||||
## Failure Modes
|
||||
|
||||
- If the URL is invalid, HTTPGet will fail; if NIM API key is missing, LLMAgent will not function properly
|
||||
- If the URL is invalid or unreachable, the HTTPGet node will fail; if the summarisation fails, the output text might be empty
|
||||
|
||||
## Source
|
||||
|
||||
|
||||
@@ -5,6 +5,6 @@
|
||||
```python
|
||||
# How to use this skill
|
||||
# Inputs: URL of the Wikipedia page
|
||||
# Process: 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`
|
||||
# Outputs: Path to the summary file
|
||||
# Process: 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()`.
|
||||
# Outputs: Path of the summary file
|
||||
```
|
||||
|
||||
@@ -1,28 +1,26 @@
|
||||
{
|
||||
"name": "research-pipeline",
|
||||
"version": "1.0.0",
|
||||
"goal": "Fetch a Wikipedia page, summarise it using an AI agent, and write the summary to a file.",
|
||||
"goal": "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 (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"
|
||||
"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 to the summary file"
|
||||
"Path of the summary file"
|
||||
],
|
||||
"failure_modes": [
|
||||
"If the URL is invalid, HTTPGet will fail; if NIM API key is missing, LLMAgent will not function properly"
|
||||
"If the URL is invalid or unreachable, the HTTPGet node will fail; if the summarisation fails, the output text might be empty"
|
||||
],
|
||||
"confidence": 0.95,
|
||||
"explanation": "This workflow can be adapted to fetch and summarise any text from a URL using an AI agent and save the summary to a file.",
|
||||
"explanation": "This workflow can be adapted to fetch and summarise any Wikipedia page or similar content source.",
|
||||
"source_repo": "https://github.com/temiroff/Blacknode.git",
|
||||
"score": 1.0
|
||||
}
|
||||
Reference in New Issue
Block a user