Automate software project creation with the power of Large Language Models and Vector Databases
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
- 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
| Component | Supported Options |
|---|---|
| Framework | LlamaIndex |
| Vector DB | Milvus |
| Cache | Redis |
| Model Serving | Ollama, vLLM |
# 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 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"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
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- Rapid Prototyping: Quickly generate prototypes from ideas
- Code Template Generation: Automatically create boilerplate code
- Knowledge Base: Centralized source code knowledge management
- Learning Assistant: Learn from open-source codebases
- Code Discovery: Find patterns and solutions
- Project Scaffolding: Rapid project initialization
- Teaching Tool: Illustrate programming patterns
- Assignment Generation: Automatically generate assignments
- Code Analysis: Analyze and explain source code
- Ollama - Local LLM runtime
- Milvus - Vector database
- LlamaIndex - LLM framework
- Redis - In-memory cache
⭐ If this project is helpful, please give us a star! ⭐