Trees of ARC is a modular-reasoning framework aimed at boosting model performance on the ARC AGI 1 dataset. The project aims to break down decision making using complex reasoning frameworks which consist of reasoning modules that abstract a reasoning task like - Input Analysis, Idea Generation, Output Parsing, etc
Each module can consist of complex reasoning frameworks that can use:
- Multiple LLM APIs
- Image Processing APIs
- A Python Interpreter
- Programatic paradigms like loops, if-else, recursion, etc
Module are can then be combine using the same features to create a framework.
Currently, in the demo_framework - you can see two modules (i) Instruction Set Generation and (ii) Output Generation
- React.js
- React Flow for interactive node visualization
- Material-UI (MUI) for UI components
- Socket.IO client for real-time updates
- Tailwind CSS for styling
- Flask (Python)
- Flask-SocketIO for WebSocket support
- Large Language Model integration
- Custom ARC puzzle processing modules
- Node.js (v14 or higher)
- Python 3.8+
- npm or yarn package manager
- Clone the repository:
git clone https://github.com/yourusername/ARCAssist.git
cd ARCAssist
- Install frontend dependencies:
npm install
- Install backend dependencies:
cd backend
pip install -r requirements.txt
- Set up environment variables:
Create a
.env
file in the root directory with the following variables:
OPENAI_API_KEY=your_api_key_here
- Start the backend server:
cd backend
python app.py
The backend server will start on port 5020.
- Start the frontend development server:
# From the root directory
npm start
The frontend will be available at http://localhost:3040
ARCAssist/
├── backend/
│ ├── app.py # Flask server
│ ├── llm_stuff.py # LLM integration
│ ├── demo_framework.py # Demo functionality
│ ├── ARC_output_generation.py
│ ├── visualisation.py
│ └── ARC_instruction_set_generation_module.py
├── src/
│ ├── App.js # Main React component
│ ├── components/ # React components
│ ├── index.css # Global styles
│ └── ...
├── public/ # Static assets
├── package.json # Frontend dependencies
└── README.md # This file
- Interactive Node Graph: Visualize the puzzle-solving process through an interactive node-based interface
- Real-time Updates: See the solution process unfold in real-time with WebSocket communication
- Matrix Visualization: Clear visual representation of ARC puzzles and their transformations
- LLM Integration: Leverage large language models for puzzle analysis and solution generation
- Step-by-step Solution: Break down complex puzzle solutions into understandable steps
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the MIT License - see the LICENSE file for details.
- The Abstraction and Reasoning Corpus (ARC) challenge
- OpenAI for LLM capabilities
- React Flow for visualization components