NovaAI / CONTRIBUTING.md
veteroner's picture
Upload 18 files
805fa80 verified

A newer version of the Gradio SDK is available: 6.3.0

Upgrade

🤝 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

# 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

# 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

# MODEL_SETUP.md rehberini takip edin
mkdir nova-ai-model
# Model dosyalarınızı bu klasöre yerleştirin

📋 Development Workflow

🌿 Branch Oluşturma

# 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 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

# Testleri çalıştırın
python -m pytest tests/

# Linting kontrolleri
flake8 .
black --check .
mypy .

# Security check
bandit -r .

📝 Commit Messages

# 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

## 📝 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

# 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

# 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

# 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

🙏 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.