AISandbox is a node-based editor that allows creating an architecture of multiple models with inputs and outputs to perform a range of tasks. Think of Figma but for designing AI systems graphically.
- Graphical Editor - Create a graph of models, with inputs and outputs.
- REST API - Run the graph as an API, with a single click.
- Self Hosted - Entire application can be self-hosted.
- Dashboard - Manage your projects, and view usage statistics.
To run the graph as an API, the code is programmatically generated in the UI, but here's a sample code
from aisandbox import execute_project
project_id: str = "91392237-fc87-48b4-b83c-59c6ce0aad9d"
api_key: str = "ais-4ad62b20-74ab-4f55-a5df-856007db6261"
inputs = [{"id": "TextInputNode-dU-gccjt6igEbAVFnYs4x", "data": {"text": "Hello!"}}]
output = execute_project(project_id, api_key, inputs)
print(output.json())
- Nextjs 13 as the web framework.
- shadcn ui for the UI components.
- reactflow for the node editor.
- Lucide for icons.
- zustand for state management.
- TailwindCSS - CSS Framework
- Supabase for user authentication and serves as the main database.
- OpenAI and Replicate to run most of the models.
- Upstash - Rate Limiting, Caching.
- The site is deployed on Verce.
├── app - The main web app
│ ├── api - API routes
│ ├── components - React components
│ | ├── dashboard - Dashboard components
│ | ├── landing - Landing page components
│ | ├── nodes - Contains components for all the nodes
| | ├── editor - Contains components for the main editor
│ | ├── ui - Shadcn UI components
| ├── fonts - Fonts
│ ├── lib - Utility functions. Redis, Stripe, Supabase clients.
│ ├── state - Zustand stores
| ├── utils - Utility functions
├── examples - Contains example code for python.
├── packages - Contains library code for python.
├── pages - The documentation website (https://aisandbox.com/docs).
├── public - Static files
To self-host this application ( at least some of it ), follow the steps :