NovaAI / CONTRIBUTING.md
veteroner's picture
Upload 18 files
805fa80 verified
# 🤝 Nova AI'ya Katkıda Bulunma Rehberi
**Teknova Nova AI** projesine katkıda bulunmak istediğiniz için teşekkürler! Bu rehber, katkı sürecini kolaylaştırmak için hazırlanmıştır.
## 🎯 Katkı Türleri
### 🐛 **Bug Reports (Hata Bildirimi)**
- Detaylı hata açıklaması
- Tekrar edilebilir adımlar
- Sistem bilgileri (OS, Python version)
- Error logs ve screenshots
### ✨ **Feature Requests (Özellik İstekleri)**
- Özelliğin amacını açıklayın
- Kullanım senaryolarını belirtin
- Mevcut alternatiflerle karşılaştırın
### 🔧 **Code Contributions (Kod Katkıları)**
- Bug fixes
- Performance improvements
- New features
- Documentation updates
### 📚 **Documentation**
- README improvements
- Code comments
- Tutorial yazıları
- API documentation
## 🚀 Başlangıç Adımları
### 1️⃣ **Repository'yi Fork Edin**
```bash
# GitHub'da Fork butonuna tıklayın
# Sonra local'e clone edin:
git clone https://github.com/YOUR-USERNAME/novaai.git
cd novaai
```
### 2️⃣ **Development Environment Kurun**
```bash
# Virtual environment oluşturun
python -m venv venv
source venv/bin/activate # Linux/Mac
# venv\Scripts\activate # Windows
# Dependencies yükleyin
pip install -r requirements.txt
pip install -r requirements-dev.txt # Dev dependencies
```
### 3️⃣ **Model Dosyalarını Hazırlayın**
```bash
# MODEL_SETUP.md rehberini takip edin
mkdir nova-ai-model
# Model dosyalarınızı bu klasöre yerleştirin
```
## 📋 Development Workflow
### 🌿 **Branch Oluşturma**
```bash
# Main branch'ten yeni branch oluşturun
git checkout main
git pull origin main
git checkout -b feature/amazing-feature
# Veya bug fix için:
git checkout -b fix/bug-description
```
### 💻 **Code Style**
```python
# Python kod standartları:
# - PEP 8 compliance
# - Type hints kullanın
# - Docstrings ekleyin
def nova_chat(message: str, history: List[Dict]) -> str:
"""
Nova AI ile sohbet fonksiyonu.
Args:
message: Kullanıcı mesajı
history: Sohbet geçmişi
Returns:
Nova AI yanıtı
"""
# Implementation here
pass
```
### 🧪 **Testing**
```bash
# Testleri çalıştırın
python -m pytest tests/
# Linting kontrolleri
flake8 .
black --check .
mypy .
# Security check
bandit -r .
```
### 📝 **Commit Messages**
```bash
# Anlamlı commit messages yazın:
git commit -m "✨ Add: Nova AI temperature control feature
- Add temperature parameter to chat function
- Update Gradio interface with slider
- Add tests for temperature validation
- Update documentation
Fixes #123"
```
## 🔍 Code Review Süreci
### 📋 **Pull Request Checklist**
- [ ] Code changes test edildi
- [ ] Yeni features için testler eklendi
- [ ] Documentation güncellendi
- [ ] Commit messages açıklayıcı
- [ ] Code style check'leri geçiyor
- [ ] No breaking changes (veya belirtildi)
### 🎯 **Pull Request Template**
```markdown
## 📝 Description
Brief description of changes
## 🔧 Type of Change
- [ ] Bug fix
- [ ] New feature
- [ ] Breaking change
- [ ] Documentation update
## 🧪 Testing
- [ ] Tests pass locally
- [ ] Added tests for new features
- [ ] Manual testing completed
## 📋 Checklist
- [ ] Code follows style guidelines
- [ ] Self-review completed
- [ ] Documentation updated
- [ ] No conflicts with main branch
```
## 🛠️ Development Guidelines
### 🎯 **Nova AI Specific Guidelines**
#### 🧠 **Model Integration**
```python
# Model loading best practices:
def load_nova_model(model_path: str) -> Tuple[Any, Any]:
"""Load Nova AI model with error handling."""
try:
tokenizer = AutoTokenizer.from_pretrained(model_path)
model = AutoModelForCausalLM.from_pretrained(
model_path,
torch_dtype=torch.float16,
device_map="auto"
)
return model, tokenizer
except Exception as e:
logger.error(f"Model loading failed: {e}")
raise
```
#### 🌐 **API Design**
```python
# FastAPI endpoint conventions:
@app.post("/chat", response_model=ChatResponse)
async def chat_endpoint(request: ChatRequest) -> ChatResponse:
"""Nova AI chat endpoint with proper error handling."""
try:
# Validate input
if not request.message.strip():
raise HTTPException(400, "Message cannot be empty")
# Process with Nova AI
response = await nova_chat(request.message, request.history)
return ChatResponse(
response=response,
model="Teknova Nova AI",
timestamp=datetime.utcnow()
)
except Exception as e:
logger.error(f"Chat error: {e}")
raise HTTPException(500, "Internal server error")
```
#### 🎨 **UI/UX Standards**
```python
# Gradio interface guidelines:
with gr.Blocks(theme=gr.themes.Soft()) as demo:
gr.HTML("""
<div style="text-align: center; padding: 20px;">
<h1>🚀 Teknova Nova AI</h1>
<p>Özgün yapay zeka teknolojisi</p>
</div>
""")
# Always include:
# - Clear labeling
# - Error handling
# - Loading states
# - Responsive design
```
## 🏗️ Project Structure
```
novaai/
├── 📁 .github/
│ ├── workflows/ # GitHub Actions
│ ├── ISSUE_TEMPLATE/ # Issue templates
│ └── PULL_REQUEST_TEMPLATE.md
├── 📁 src/
│ ├── nova_ai/ # Main package
│ ├── api/ # API endpoints
│ ├── ui/ # User interfaces
│ └── utils/ # Utilities
├── 📁 tests/ # Test files
├── 📁 docs/ # Documentation
├── 📁 scripts/ # Build/deploy scripts
├── 🔧 requirements.txt
├── 🔧 requirements-dev.txt
├── 📋 pyproject.toml
└── 📖 README.md
```
## 🎯 Öncelikli Katkı Alanları
### 🔥 **High Priority**
- [ ] **Performance optimization** - Model inference speed
- [ ] **Memory management** - RAM kullanımı iyileştirmeleri
- [ ] **Error handling** - Robust error recovery
- [ ] **Testing coverage** - Unit ve integration testler
### 🌟 **Medium Priority**
- [ ] **New UI features** - Advanced chat options
- [ ] **API extensions** - Batch processing
- [ ] **Documentation** - Tutorial videos
- [ ] **Localization** - Multi-language support
### 💡 **Nice to Have**
- [ ] **Mobile optimization** - Responsive design
- [ ] **Plugin system** - Extensible architecture
- [ ] **Analytics** - Usage metrics
- [ ] **Deployment tools** - Docker, K8s support
## 🤔 Sorularınız mı Var?
### 💬 **İletişim Kanalları**
- **GitHub Discussions**: Genel sorular için
- **GitHub Issues**: Bug reports ve feature requests
- **Email**: teknova@example.com (teknik destek)
- **Discord**: Nova AI Community Server
### 📚 **Yararlı Kaynaklar**
- [Python Style Guide](https://pep8.org/)
- [Transformers Documentation](https://huggingface.co/docs/transformers)
- [FastAPI Best Practices](https://fastapi.tiangolo.com/tutorial/)
- [Gradio Documentation](https://gradio.app/docs/)
## 🙏 Teşekkürler
Nova AI projesine katkıda bulunan herkese teşekkür ederiz! Sizin katkılarınız Nova AI'yi daha da güçlü kılıyor.
### 🏆 **Katkıda Bulunanlar**
- **Teknova Team** - Proje kurucu ekibi
- **Community Contributors** - Açık kaynak katkıları
---
🚀 **Teknova Nova AI** - Birlikte daha güçlüyüz!
*Bu rehber sürekli güncellenmektedir. Önerilerinizi GitHub Discussions'ta paylaşabilirsiniz.*