Contributing to Krishi Sahayak
June 21, 2026 · View on GitHub
Thank you for considering contributing to this project! We welcome improvements in documentation, bug fixes, feature enhancements, and new ideas.
Prerequisites
- Python 3.11+
- uv package manager
- A Groq API key
Development Setup
# 1. Fork and clone
git clone https://github.com/YOUR_USERNAME/LLM_Agri_Bot.git
cd LLM_Agri_Bot
# 2. Install dependencies
uv sync
# 3. Configure environment
cp .env.example LLM_Agri_Bot/.env
# Edit .env and add your GROQ_API_KEY
# 4. Run the app
uv run python LLM_Agri_Bot/run.py
How to Contribute
- Fork the repository.
- Create a new branch (
git checkout -b feature/your-feature-name). - Make your changes.
- Test your changes thoroughly.
- Commit and push to your fork.
- Open a Pull Request against the
mainbranch.
Project Structure
LLM_Agri_Bot/
├── app/
│ ├── routes/ # Flask blueprints (main, chat)
│ ├── services/ # LLM, Memory, STT, TTS, PromptManager
│ ├── static/ # CSS (glassmorphism), JS, images
│ └── templates/ # HTML (index.html)
├── llms.txt # AI crawler disclosure
├── .env.example # Environment template
├── run.py # Dev entry point
└── gunicorn.conf.py # Production config
Code Style
- Follow PEP 8 for Python code.
- Use type hints on all function signatures.
- Write docstrings for all public functions and classes.
- Keep comments concise but helpful.
- Class-based approach for services (SOLID principles).
Reporting Issues
- Use the GitHub issue tracker.
- Provide a clear description, steps to reproduce, and expected behavior.
- Include relevant logs, screenshots, or code snippets.
Security
- Never commit API keys, passwords, or other secrets.
- Always use environment variables for sensitive data.
- The
.envfile is git-ignored — never force-add it.
Pull Request Process
- Ensure your PR description summarizes changes clearly.
- Reference any related issues.
- Maintainers will review and may request changes.
- Once approved, your PR will be merged.
Thank you for helping make this project better!