To get started with building custom AI tools on Moonlit, you'll only need to know a few important key concepts. If you have the time to read only one guide, this should be it!
In Moonlit, Apps are simply Input/Output processes. Each app consists of multiple input nodes, functions, and output nodes. You can create your first app from the Studio Page.
Each of the three columns has a button at the top for adding nodes to for that section.
Each node has it's own configuration, you can click on the gear button on each node to open that configuration. You'll see nodes that are missing configuration marked with the red circle warning banner, before running your apps you must make sure that all configurations are set properly.
💡 You can also resize each node by dragging along it's edges, to make the process of editing text boxes easier.
All the data passed between nodes is in string (text) format, even when working with tables and data objects, you can read more about that in our guide about working with structured data, for now we'll stick to text (unstructured data).
To pass data from one node to another, we can use the double bracket syntax as shown in the snapshot below. You can click on the underlined ID of a node to copy it and paste in into a textarea that accepts that dynamic syntax, you'll see these fields marked with 'use dynamic template syntax' at the top.
⚠️ Important to note: Apps are executed sequentially left to right, starting with the inputs, passing through each step in the functions, and finally mapping results to outputs, so when referencing a node ID 'A' in node 'B', node 'A' must come before node 'B'.
In the example below, we have a text field that allows the user to provide a topic that we pass onto the prompt in a 'Chat Model' function.
The position of your function nodes dictates whether they run in parallel or in sequence. Functions on the same column will run in parallel, otherwise it's a sequential execution as the step lines show. Use parallel execution to run apps faster but only when the nodes don't depend on any of the other's output.
You can hover over the information icon next to the node titles for the functions to read more about that node and what is outputs to give you a better idea of how you can use it.
Please reach out to us through the live chat widget on the bottom right corner or feel free to book a call with us. We're more than excited to explore and help you with your use case!