DEV Community

Hamza Zerouali
Hamza Zerouali

Posted on

Introducing Simba: Bring Your Knowledge into Your AI

Do you ever find that managing vast amounts of data and knowledge for your AI projects is more complex than it needs to be? Meet Simba – an open source, portable Knowledge Management System (KMS) designed to integrate seamlessly with any Retrieval-Augmented Generation (RAG) system. With its modern UI, modular architecture, and developer-friendly approach, Simba allows you to focus on building cutting-edge AI solutions while it takes care of the underlying knowledge management challenges.

What is Simba?

Simba is a lightweight yet powerful KMS tailored for AI projects that rely on quick and relevant retrieval of document chunks. By abstracting the complexities of data processing—such as parsing, chunking, and embedding—Simba lets you integrate a robust knowledge base directly into your RAG system with minimal fuss.

Simba demo

Key Features

Modular Architecture

  • Plug-and-Play Components: Easily swap in various vector stores (like FAISS), embedding models (from Hugging Face or OpenAI), and parsers.
  • Configurable Processing: Adjust chunk sizes, overlaps, and retrieval parameters to fine-tune the performance of your system.

Modern and Intuitive UI

  • Visualize Your Data: Interactively view and modify document chunks, ensuring that your knowledge base remains accurate and effective.
  • Seamless Integration: Designed to work with any RAG system, Simba fetches the most relevant information for your AI queries.

Developer-Centric Design

  • Straightforward Setup: Detailed installation guides and configuration files help you get started quickly—whether you're running locally or using Docker.
  • Extensible and Open Source: As a community-driven project, Simba is open for contributions and customizable to meet your specific needs.

Behind the Scenes: The Tech Stack

Simba leverages modern technologies to deliver a smooth and scalable experience:

  • Backend: Powered by Python 3.11+ with FastAPI, Simba uses Celery for handling heavy tasks like document parsing, and Redis as both a broker and result backend.
  • Frontend: A React-based user interface provides an engaging and responsive way to manage and inspect your data.
  • Deployment: With support for local setups and Docker-based deployments, Simba adapts to both development and production environments seamlessly.

Getting Started with Simba

Here’s a quick guide to get you up and running:

  1. Clone the Repository:

    git clone https://github.com/GitHamza0206/simba.git
    cd simba
    
  2. Backend Setup:

    • Ensure you have Redis installed and start the Redis server:

      redis-server
      
- Configure your environment:
Enter fullscreen mode Exit fullscreen mode
    ```bash
    cd backend
    cp .env.example .env
    # Edit the .env file with your API keys and settings (e.g., OPENAI_API_KEY)
    ```
Enter fullscreen mode Exit fullscreen mode
- Install dependencies and launch the backend:
Enter fullscreen mode Exit fullscreen mode
    ```bash
    poetry install
    poetry shell
    python main.py  # or use uvicorn main:app --reload for auto-reload
    ```
Enter fullscreen mode Exit fullscreen mode
- Optionally, access the Swagger UI at `http://0.0.0.0:8000/docs` for API testing.
Enter fullscreen mode Exit fullscreen mode
  1. Run the Parser Worker:

    celery -A tasks.parsing_tasks worker --loglevel=info
    
  2. Frontend Setup:

    cd ../frontend
    npm install
    npm run dev
    

    Open your browser at http://localhost:5173 to explore the UI.

  3. Optional Docker Deployment:

    export OPENAI_API_KEY="your_api_key_here"
    docker-compose up --build
    

Roadmap and Future Enhancements

Simba is continuously evolving. Here’s what’s coming next:

  • Enhanced Integration: Future releases will turn Simba into an importable Python package for even easier incorporation into your RAG systems.
  • Expanded Component Support: More parsers, vector stores, embedding models, and retrieval enhancements are on the way.
  • Production-Grade Features: Look forward to role-based access control, a CI/CD pipeline, and other improvements to support larger-scale deployments.

Join the Simba Community

Simba is built for developers by developers. If you’re passionate about AI and knowledge management:

  • Contribute: Fork the repository on GitHub, build new features, fix bugs, and help shape the future of Simba.
  • Engage: Open issues, share your experiences, and contribute to discussions on new ideas and improvements.

Conclusion

Simba empowers you to bring your knowledge into your AI effortlessly. Whether you’re developing a state-of-the-art RAG system or looking to optimize your document processing pipeline, Simba’s modular and open-source approach provides a robust foundation to build upon.

Give Simba a try today and transform the way you manage and leverage your data for AI!

Happy coding and see you on GitHub!

Top comments (0)