--- title: Knowledge Net emoji: 🔬 colorFrom: indigo colorTo: red sdk: docker app_port: 3000 pinned: true license: apache-2.0 short_description: Agentic Deep Research Workflow using Data Cascading --- # KnowledgeNet KnowledgeNet is an AI-driven framework designed to automate the research process by collecting, processing, and presenting information from various online sources. It leverages advanced web crawling, natural language processing, and data visualization techniques to deliver comprehensive research insights. ## Features - **Automated Web Crawling**: Utilize [Crawl4AI](https://github.com/sohamw03/Crawl4AI) with Playwright for efficient data extraction. - **Natural Language Processing**: Employ large language models (LLMs) for data analysis and summarization. - **Interactive Dashboard**: Visualize research findings through an intuitive React/Next.js frontend. - **Scalability**: Implement Celery with message brokers for distributed task management. - **Cloud Integration**: Deploy using AWS services for robust and scalable infrastructure. ## Architecture Overview ```mermaid graph TD User["User"] -->|Research Query| API_Gateway["AWS API Gateway"] API_Gateway --> Lambda["AWS Lambda"] Lambda --> SQS["AWS SQS (Task Queue)"] SQS --> Celery["Celery Workers (Distributed Tasks)"] Celery -->|Processes Tasks| DynamoDB["AWS DynamoDB"] Celery -->|Uploads Files| S3["AWS S3 (File Storage)"] Celery -->|Triggers Notifications| SNS["AWS SNS (Notifications)"] Celery -->|Logs Metadata| CloudWatch["AWS CloudWatch"] DynamoDB -->|Provides Data| Lambda S3 -->|Serves Content| CloudFront["AWS CloudFront (CDN)"] CloudFront -->|Delivers Content| User CloudWatch --> DevOps["DevOps Monitoring"] subgraph "AWS Infrastructure" API_Gateway Lambda SQS Celery DynamoDB S3 SNS CloudWatch CloudFront end ``` ## Installation 1. **Install UV - Package Manager (Recommended)** [https://docs.astral.sh/uv/getting-started/installation/](https://docs.astral.sh/uv/getting-started/installation/) **Install Bun - Package Manager (Recommended)** [https://bun.sh/docs/installation](https://bun.sh/docs/installation) 2. **Clone the repository** ```bash git clone https://github.com/sohamw03/knowledge_net.git cd knowledge_net ``` 3. **Backend Setup:** Navigate to the backend directory: ```bash cd backend ``` Create virtual environment and install dependencies: ```bash uv sync ``` Activate the virtual environment: ```bash source .venv/bin/activate # For Linux/Mac .venv\Scripts\activate # For Windows ``` Install playwright chromium: ```bash playwright install chromium --with-deps ``` Add environment variables to `.env` file: ```bash cp .env.example .env ``` 3. **Frontend Setup:** Navigate to the frontend directory: ```bash cd ../frontend ``` Install the dependencies: ```bash bun install --force ``` Add environment variables to `.env` file: ```bash cp .env.example .env ## Usage 1. **Start the Backend:** Ensure you're in the backend directory and the virtual environment is activated. Run the Flask-SocketIO asynchronous server: ```bash uvicorn app:app --host 0.0.0.0 --port 5000 ``` 2. **Start the Frontend:** In a new terminal, navigate to the frontend directory. Start the development server: ```bash bun dev ``` 3. **Access the Application:** Open your browser and navigate to `http://localhost:3000` to interact with KnowledgeNet. ## Contributing We welcome contributions to enhance KnowledgeNet. To contribute: 1. Fork the repository. 2. Create a new branch: ```bash git checkout -b feature/YourFeatureName ``` 3. Commit your changes: ```bash git commit -m 'Add some feature' ``` 4. Push to the branch: ```bash git push origin feature/YourFeatureName ``` 5. Open a pull request detailing your changes. ## License This project is licensed under the Apache-2.0 License. See the `LICENSE` file for more details.