Skip to content

Commit

Permalink
docs(blocks): Add documentation for each block we currently have (#8289)
Browse files Browse the repository at this point in the history
* Initial upload of block docks

* add github + google block docs

* small tweak
  • Loading branch information
Bentlybro authored and aarushik93 committed Oct 16, 2024
1 parent f621d39 commit 89fd196
Show file tree
Hide file tree
Showing 31 changed files with 2,375 additions and 0 deletions.
32 changes: 32 additions & 0 deletions docs/content/server/blocks/ai_shortform_video_block.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# AI Shortform Video Creator

## What it is
The AI Shortform Video Creator is a tool that generates short-form videos using artificial intelligence and various customization options.

## What it does
This block creates short videos by combining AI-generated visuals, narration, and background music based on user input. It can produce different styles of videos, including stock videos, moving AI images, or AI-generated videos.

## How it works
The block takes user input for script, visual style, audio, and other parameters. It then sends this information to the revid.ai API, which processes the request and generates the video. The block monitors the video creation process and provides the final video URL once it's ready.

## Inputs
| Input | Description |
|-------|-------------|
| API Key | Your revid.ai API key for authentication |
| Script | The text content for the video, including spoken narration and visual directions |
| Ratio | The aspect ratio of the video (e.g., "9 / 16" for vertical videos) |
| Resolution | The video resolution (e.g., "720p") |
| Frame Rate | The number of frames per second in the video |
| Generation Preset | The visual style for AI-generated content (e.g., "Default", "Anime", "Realist") |
| Background Music | The choice of background music track |
| Voice | The AI voice to use for narration |
| Video Style | The type of visual media to use (stock videos, moving AI images, or AI video) |

## Outputs
| Output | Description |
|--------|-------------|
| Video URL | The web address where the created video can be accessed |
| Error | A message explaining any issues that occurred during video creation (if applicable) |

## Possible use case
A social media marketer could use this block to quickly create engaging short-form videos for platforms like TikTok or Instagram Reels. They could input a script about a new product, choose a suitable visual style and background music, and get a professional-looking video without needing advanced video editing skills.
223 changes: 223 additions & 0 deletions docs/content/server/blocks/basic.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,223 @@
# Basic Operations Blocks

## Store Value

### What it is
A basic block that stores and forwards a value.

### What it does
This block takes an input value and stores it, allowing it to be reused without changes.

### How it works
It accepts an input value and optionally a data value. If a data value is provided, it is used as the output. Otherwise, the input value is used as the output.

### Inputs
| Input | Description |
|-------|-------------|
| Input | The value to be stored or forwarded |
| Data | An optional constant value to be stored instead of the input |

### Outputs
| Output | Description |
|--------|-------------|
| Output | The stored value (either the input or the data) |

### Possible use case
Storing a user's name at the beginning of a workflow to use it in multiple subsequent blocks without asking for it again.

---

## Print to Console

### What it is
A basic block that prints text to the console for debugging purposes.

### What it does
This block takes a text input and prints it to the console, then outputs a status message.

### How it works
It receives a text input, prints it to the console with a "Print: " prefix, and then yields a "printed" status.

### Inputs
| Input | Description |
|-------|-------------|
| Text | The text to be printed to the console |

### Outputs
| Output | Description |
|--------|-------------|
| Status | A message indicating that the text was printed ("printed") |

### Possible use case
Debugging a workflow by printing intermediate results or messages at various stages.

---

## Find in Dictionary

### What it is
A basic block that looks up a value in a dictionary, object, or list using a given key.

### What it does
This block searches for a specified key in the input data structure and returns the corresponding value if found.

### How it works
It accepts an input (dictionary, object, or list) and a key. It then attempts to find the key in the input and return the corresponding value. If the key is not found, it returns the entire input as "missing".

### Inputs
| Input | Description |
|-------|-------------|
| Input | The dictionary, object, or list to search in |
| Key | The key to look up in the input |

### Outputs
| Output | Description |
|--------|-------------|
| Output | The value found for the given key |
| Missing | The entire input if the key was not found |

### Possible use case
Extracting specific information from a complex data structure, such as finding a user's email address in a user profile dictionary.

---

## Agent Input

### What it is
An input block that provides a way to accept user input in a workflow.

### What it does
This block allows users to input values into the workflow, with options for naming, describing, and setting placeholder values.

### How it works
It accepts a value from the user, along with metadata such as name, description, and optional placeholder values. The block then outputs the provided value.

### Inputs
| Input | Description |
|-------|-------------|
| Value | The actual input value provided by the user |
| Name | A name for the input field |
| Description | An optional description of the input |
| Placeholder Values | Optional list of suggested values |
| Limit to Placeholder Values | Option to restrict input to placeholder values only |

### Outputs
| Output | Description |
|--------|-------------|
| Result | The value provided as input |

### Possible use case
Collecting user preferences at the start of a personalized recommendation workflow.

---

## Agent Output

### What it is
An output block that records and formats the final results of a workflow.

### What it does
This block takes a value and associated metadata, optionally formats it, and presents it as the output of the workflow.

### How it works
It accepts an input value along with a name, description, and optional format string. If a format string is provided, it attempts to apply the formatting to the input value before outputting it.

### Inputs
| Input | Description |
|-------|-------------|
| Value | The value to be recorded as output |
| Name | A name for the output |
| Description | An optional description of the output |
| Format | An optional format string to apply to the value |

### Outputs
| Output | Description |
|--------|-------------|
| Output | The formatted (if applicable) output value |

### Possible use case
Presenting the final results of a data analysis workflow in a specific format.

---

## Add to Dictionary

### What it is
A basic block that adds a new key-value pair to a dictionary.

### What it does
This block takes an existing dictionary (or creates a new one), a key, and a value, and adds the key-value pair to the dictionary.

### How it works
It accepts an optional input dictionary, a key, and a value. If no dictionary is provided, it creates a new one. It then adds the key-value pair to the dictionary and returns the updated dictionary.

### Inputs
| Input | Description |
|-------|-------------|
| Dictionary | An optional existing dictionary to add to |
| Key | The key for the new entry |
| Value | The value for the new entry |

### Outputs
| Output | Description |
|--------|-------------|
| Updated Dictionary | The dictionary with the new entry added |
| Error | An error message if the operation fails |

### Possible use case
Building a user profile by gradually adding new information as it's collected throughout a workflow.

---

## Add to List

### What it is
A basic block that adds a new entry to a list.

### What it does
This block takes an existing list (or creates a new one) and adds a new entry to it, optionally at a specified position.

### How it works
It accepts an optional input list, an entry to add, and an optional position. If no list is provided, it creates a new one. It then adds the entry to the list at the specified position (or at the end if no position is given) and returns the updated list.

### Inputs
| Input | Description |
|-------|-------------|
| List | An optional existing list to add to |
| Entry | The new item to add to the list |
| Position | An optional position to insert the new entry |

### Outputs
| Output | Description |
|--------|-------------|
| Updated List | The list with the new entry added |
| Error | An error message if the operation fails |

### Possible use case
Maintaining a to-do list in a task management workflow, where new tasks can be added at specific priorities (positions).

---

## Note

### What it is
A basic block that displays a sticky note with custom text.

### What it does
This block takes a text input and displays it as a sticky note in the workflow interface.

### How it works
It simply accepts a text input and passes it through as an output to be displayed as a note.

### Inputs
| Input | Description |
|-------|-------------|
| Text | The text to display in the sticky note |

### Outputs
| Output | Description |
|--------|-------------|
| Output | The text to display in the sticky note |

### Possible use case
Adding explanatory notes or reminders within a complex workflow to help users understand different stages or provide additional context.
132 changes: 132 additions & 0 deletions docs/content/server/blocks/blocks.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,132 @@
# AutoGPT Blocks Overview

AutoGPT uses a modular approach with various "blocks" to handle different tasks. These blocks are the building blocks of AutoGPT workflows, allowing users to create complex automations by combining simple, specialized components.

Below is a comprehensive list of all available blocks, categorized by their primary function. Click on any block name to view its detailed documentation.

## Basic Operations
| Block Name | Description |
|------------|-------------|
| [Store Value](basic.md#store-value) | Stores and forwards a value |
| [Print to Console](basic.md#print-to-console) | Outputs text to the console for debugging |
| [Find in Dictionary](basic.md#find-in-dictionary) | Looks up a value in a dictionary or list |
| [Agent Input](basic.md#agent-input) | Accepts user input in a workflow |
| [Agent Output](basic.md#agent-output) | Records and formats workflow results |
| [Add to Dictionary](basic.md#add-to-dictionary) | Adds a new key-value pair to a dictionary |
| [Add to List](basic.md#add-to-list) | Adds a new entry to a list |
| [Note](basic.md#note) | Displays a sticky note in the workflow |

## Data Processing
| Block Name | Description |
|------------|-------------|
| [Read CSV](csv.md#read-csv) | Processes and extracts data from CSV files |
| [Data Sampling](sampling.md#data-sampling) | Selects a subset of data using various sampling methods |

## Text Processing
| Block Name | Description |
|------------|-------------|
| [Match Text Pattern](text.md#match-text-pattern) | Checks if text matches a specified pattern |
| [Extract Text Information](text.md#extract-text-information) | Extracts specific information from text using patterns |
| [Fill Text Template](text.md#fill-text-template) | Populates a template with provided values |
| [Combine Texts](text.md#combine-texts) | Merges multiple text inputs into one |
| [Text Decoder](decoder_block.md#text-decoder) | Converts encoded text into readable format |

## AI and Language Models
| Block Name | Description |
|------------|-------------|
| [AI Structured Response Generator](llm.md#ai-structured-response-generator) | Generates structured responses using LLMs |
| [AI Text Generator](llm.md#ai-text-generator) | Produces text responses using LLMs |
| [AI Text Summarizer](llm.md#ai-text-summarizer) | Summarizes long texts using LLMs |
| [AI Conversation](llm.md#ai-conversation) | Facilitates multi-turn conversations with LLMs |
| [AI List Generator](llm.md#ai-list-generator) | Creates lists based on prompts using LLMs |

## Web and API Interactions
| Block Name | Description |
|------------|-------------|
| [Send Web Request](http.md#send-web-request) | Makes HTTP requests to specified web addresses |
| [Read RSS Feed](rss.md#read-rss-feed) | Retrieves and processes entries from RSS feeds |
| [Get Weather Information](search.md#get-weather-information) | Fetches current weather data for a location |
| [Google Maps Search](google_maps.md#google-maps-search) | Searches for local businesses using Google Maps API |

## Social Media and Content
| Block Name | Description |
|------------|-------------|
| [Get Reddit Posts](reddit.md#get-reddit-posts) | Retrieves posts from specified subreddits |
| [Post Reddit Comment](reddit.md#post-reddit-comment) | Posts comments on Reddit |
| [Publish to Medium](medium.md#publish-to-medium) | Publishes content directly to Medium |
| [Read Discord Messages](discord.md#read-discord-messages) | Retrieves messages from Discord channels |
| [Send Discord Message](discord.md#send-discord-message) | Sends messages to Discord channels |

## Search and Information Retrieval
| Block Name | Description |
|------------|-------------|
| [Get Wikipedia Summary](search.md#get-wikipedia-summary) | Fetches summaries of topics from Wikipedia |
| [Search The Web](search.md#search-the-web) | Performs web searches and returns results |
| [Extract Website Content](search.md#extract-website-content) | Retrieves and extracts content from websites |

## Time and Date
| Block Name | Description |
|------------|-------------|
| [Get Current Time](time_blocks.md#get-current-time) | Provides the current time |
| [Get Current Date](time_blocks.md#get-current-date) | Provides the current date |
| [Get Current Date and Time](time_blocks.md#get-current-date-and-time) | Provides both current date and time |
| [Countdown Timer](time_blocks.md#countdown-timer) | Acts as a countdown timer |

## Math and Calculations
| Block Name | Description |
|------------|-------------|
| [Calculator](maths.md#calculator) | Performs basic mathematical operations |
| [Count Items](maths.md#count-items) | Counts items in a collection |

## Media Generation
| Block Name | Description |
|------------|-------------|
| [Ideogram Model](ideogram.md#ideogram-model) | Generates images based on text prompts |
| [Create Talking Avatar Video](talking_head.md#create-talking-avatar-video) | Creates videos with talking avatars |
| [Unreal Text to Speech](text_to_speech_block.md#unreal-text-to-speech) | Converts text to speech using Unreal Speech API |
| [AI Shortform Video Creator](ai_shortform_video_block.md#ai-shortform-video-creator) | Generates short-form videos using AI |
| [Replicate Flux Advanced Model](replicate_flux_advanced.md#replicate-flux-advanced-model) | Creates images using Replicate's Flux models |

## Miscellaneous
| Block Name | Description |
|------------|-------------|
| [Transcribe YouTube Video](youtube.md#transcribe-youtube-video) | Transcribes audio from YouTube videos |
| [Send Email](email_block.md#send-email) | Sends emails using SMTP |
| [Condition Block](branching.md#condition-block) | Evaluates conditions for workflow branching |
| [Step Through Items](iteration.md#step-through-items) | Iterates through lists or dictionaries |

## Google Services
| Block Name | Description |
|------------|-------------|
| [Gmail Read](google/gmail.md#gmail-read) | Retrieves and reads emails from a Gmail account |
| [Gmail Send](google/gmail.md#gmail-send) | Sends emails using a Gmail account |
| [Gmail List Labels](google/gmail.md#gmail-list-labels) | Retrieves all labels from a Gmail account |
| [Gmail Add Label](google/gmail.md#gmail-add-label) | Adds a label to a specific email in a Gmail account |
| [Gmail Remove Label](google/gmail.md#gmail-remove-label) | Removes a label from a specific email in a Gmail account |
| [Google Sheets Read](google/sheet.md#google-sheets-read) | Reads data from a Google Sheets spreadsheet |
| [Google Sheets Write](google/sheet.md#google-sheets-write) | Writes data to a Google Sheets spreadsheet |
| [Google Maps Search](google_maps.md#google-maps-search) | Searches for local businesses using the Google Maps API |

## GitHub Integration
| Block Name | Description |
|------------|-------------|
| [GitHub Comment](github/issues.md#github-comment) | Posts comments on GitHub issues or pull requests |
| [GitHub Make Issue](github/issues.md#github-make-issue) | Creates new issues on GitHub repositories |
| [GitHub Read Issue](github/issues.md#github-read-issue) | Retrieves information about a specific GitHub issue |
| [GitHub List Issues](github/issues.md#github-list-issues) | Retrieves a list of issues from a GitHub repository |
| [GitHub Add Label](github/issues.md#github-add-label) | Adds a label to a GitHub issue or pull request |
| [GitHub Remove Label](github/issues.md#github-remove-label) | Removes a label from a GitHub issue or pull request |
| [GitHub Assign Issue](github/issues.md#github-assign-issue) | Assigns a user to a GitHub issue |
| [GitHub List Tags](github/repo.md#github-list-tags) | Retrieves and lists all tags for a specified GitHub repository |
| [GitHub List Branches](github/repo.md#github-list-branches) | Retrieves and lists all branches for a specified GitHub repository |
| [GitHub List Discussions](github/repo.md#github-list-discussions) | Retrieves and lists recent discussions for a specified GitHub repository |
| [GitHub Make Branch](github/repo.md#github-make-branch) | Creates a new branch in a GitHub repository |
| [GitHub Delete Branch](github/repo.md#github-delete-branch) | Deletes a specified branch from a GitHub repository |
| [GitHub List Pull Requests](github/pull_requests.md#github-list-pull-requests) | Retrieves a list of pull requests from a specified GitHub repository |
| [GitHub Make Pull Request](github/pull_requests.md#github-make-pull-request) | Creates a new pull request in a specified GitHub repository |
| [GitHub Read Pull Request](github/pull_requests.md#github-read-pull-request) | Retrieves detailed information about a specific GitHub pull request |
| [GitHub Assign PR Reviewer](github/pull_requests.md#github-assign-pr-reviewer) | Assigns a reviewer to a specific GitHub pull request |
| [GitHub Unassign PR Reviewer](github/pull_requests.md#github-unassign-pr-reviewer) | Removes an assigned reviewer from a specific GitHub pull request |
| [GitHub List PR Reviewers](github/pull_requests.md#github-list-pr-reviewers) | Retrieves a list of all assigned reviewers for a specific GitHub pull request |

This comprehensive list covers all the blocks available in AutoGPT. Each block is designed to perform a specific task, and they can be combined to create powerful, automated workflows. For more detailed information on each block, click on its name to view the full documentation.
Loading

0 comments on commit 89fd196

Please sign in to comment.