Skip to content

An orchestrator designed to streamline the creation of base projects by leveraging multiple models.

Notifications You must be signed in to change notification settings

biabeogo147/BaseCraft

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

74 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🚀 BaseCraft - AI-Powered Project Generator

Automate software project creation with the power of Large Language Models and Vector Databases

Python Model Serving Vector DB Cache

🎯 Overview

BaseCraft is an intelligent orchestrator designed to revolutionize the software development process. By combining the power of Large Language Models (LLM), Vector Databases, and Knowledge Management, BaseCraft can:

  • Automatically generate project structures from natural language descriptions
  • 🧠 Collect and manage knowledge from GitHub repositories
  • 🔍 Perform semantic search within the codebase to aid code generation
  • 🎨 Flexibly customize with various LLM providers and configurations

📚 Knowledge Management System

  • GitHub Repository Crawling: Automatically collects and analyzes source code from GitHub
  • Vector Storage: Stores information as vector embeddings for fast retrieval
  • Semantic Search: Searches based on meaning, not just keywords

🔧 Multi-Provider Support

Component Supported Options
Framework LlamaIndex
Vector DB Milvus
Cache Redis
Model Serving Ollama, vLLM

🚀 Quick Start

Basic Usage

1. Collect knowledge from GitHub

# app/config/app_config.py
GITHUB_API_KEY = os.getenv("GITHUB_API_KEY")
REPO_NAMES = [
    # "sourabhv/FlapPyBird",
    # "clear-code-projects/FlappyBird_Python",
    "LeonMarqs/Flappy-bird-python",
    "undercase/FlappyKivy",
    "techwithtim/Flappy-Bird",
    # "filhoweuler/python-flappybird",
    # "tjwei/Flappy-Turtle",
]
  python app/github_crawl.py 

2. Create a new project

  python app/create_base_project.py 
  #requirement = (
  #"Create a complete, well-structured Python project for a simple Flappy Bird game. "
  #"The game should use a graphical library such as pygame, include clear separation of game logic, assets, and configuration files, "
  #"and provide basic features: player controls, collision detection, scoring, and a game over screen. "
  #"Include comments and documentation for each module, and ensure the code is easy to understand and extend."
  #)
  #root_dir = "FlappyBird"

🏗️ System Architecture

BaseCraft/
├── app/
│   ├── config/           # System configurations
│   ├── llm/             # LLM provider integrations
│   ├── vector_store/    # Milvus vector database management
│   ├── utils/           # Utilities and workflows
│   ├── create_base_project.py  # Core project generation
│   └── github_crawl.py         # Repository crawling
├── deploy/              # Docker and deployment configs
└── requirements.txt

⚙️ Configuration

Customize the system via app/config/app_config.py:

# LLM Configuration
API_PROVIDER = "ollama"  # or "gemini"
MODEL_USING = "llama3:2.3b"

# Vector Database
VECTORDB_NAME = "milvus"
EMBED_VECTOR_DIM = 1024

# Cache
CACHE_NAME = "redis"

# Collections
USER_IDEA_COLLECTION = "user_idea" # Store user project which is generated by LLM
GITHUB_RAW_CODE_COLLECTION = "github_raw_code" # Store raw code from GitHub repositories

🎯 Use Cases

🏢 Enterprises

  • Rapid Prototyping: Quickly generate prototypes from ideas
  • Code Template Generation: Automatically create boilerplate code
  • Knowledge Base: Centralized source code knowledge management

👨‍💻 Developers

  • Learning Assistant: Learn from open-source codebases
  • Code Discovery: Find patterns and solutions
  • Project Scaffolding: Rapid project initialization

🎓 Education

  • Teaching Tool: Illustrate programming patterns
  • Assignment Generation: Automatically generate assignments
  • Code Analysis: Analyze and explain source code

🙏 Acknowledgments


⭐ If this project is helpful, please give us a star! ⭐

🐛 Report Bug✨ Request Feature📖 Documentation

About

An orchestrator designed to streamline the creation of base projects by leveraging multiple models.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published