Nodes

Add Knowledge#

The Add Knowledge node allows you to add knowledge to your Magick flow from a variety of data sources. This node is a fundamental building block for working with knowledge in Magick.

Inputs#

  • flow (required): The input flow to which the knowledge will be added.
  • knowledge (required): The knowledge content to be added, in string format.
  • dataType (optional, default: "auto"): The type of the knowledge data. Can be one of:
    • "auto" (default): Automatically detect the data type
    • "text": Plain text
    • "youtube_video": A YouTube video
    • "pdf_file": A PDF file
    • "web_page": A web page
    • "sitemap": A sitemap
    • "xml": An XML file
    • "docx": A Microsoft Word document
    • "docs_site": A documentation site
    • "notion": A Notion page
    • "csv": A CSV file
    • "mdx": An MDX file
    • "qna_pair": A question-answer pair
    • "image": An image file
    • "unstructured": Unstructured data
    • "json": A JSON file
    • "openapi": An OpenAPI specification
    • "gmail": A Gmail message
    • "substack": A Substack post
    • "youtube_channel": A YouTube channel
    • "discord": A Discord message
    • "custom": Custom data type
    • "rss_feed": An RSS feed
    • "beehiiv": A Beehiiv post
    • "google_drive": A Google Drive file
    • "directory": A directory
    • "slack": A Slack message
    • "dropbox": A Dropbox file
    • "text_file": A text file

Outputs#

  • flow: The output flow with the added knowledge.

Configuration#

This node has no additional configuration options.

Usage#

  1. Connect the input flow to the flow input of the Add Knowledge node.
  2. Provide the knowledge content you want to add in the knowledge input. This should be a string.
  3. (Optional) Select the appropriate dataType for your knowledge if it is not automatically detected correctly.
  4. Connect the flow output to the next node in your spell.

Example#

Here's an example of using the Add Knowledge node to add some text to a flow:

// Create a new flow
CREATE flow
 
// Add some knowledge
ADD knowledge 
  flow = flow
  knowledge = "Magick is a powerful tool for building AI apps."
 
// Use the knowledge in a spell
GET flow
TRANSFORM flow
  prompt = "Summarize this: {{flow}}"
SEND message
  content = "{{flow.summary}}"

In this example, we create a new flow, add a piece of text knowledge to it using the Add Knowledge node, and then use that knowledge in a spell to generate a summary and send it as a message.

Best Practices#

  • Make sure to provide valid, well-formatted data in the knowledge input that matches the selected dataType.
  • If the automatic data type detection is not working as expected, explicitly set the dataType to ensure correct processing.
  • Be mindful of the size of the knowledge you are adding. Very large data could impact performance.

Common Issues#

  • If the knowledge is not being added correctly, double check that the knowledge input is a valid string and the dataType is set appropriately.
  • Some data types may require additional processing or setup (e.g. authenticating to access a Google Drive file). Make sure you have completed any necessary prerequisites.