Files
pj_llama/CONTRIBUTING.md
aken1023 c6cc91da7f Initial commit: Llama API Client with full documentation
- Added complete Python client for Llama AI models
- Support for internal network endpoints (tested and working)
- Support for external network endpoints (configured)
- Interactive chat interface with multiple models
- Automatic endpoint testing and failover
- Response cleaning for special markers
- Full documentation in English and Chinese
- Complete test suite and examples
- MIT License and contribution guidelines
2025-09-19 21:38:15 +08:00

4.2 KiB

Contributing to Llama API Client

Thank you for your interest in contributing to Llama API Client! This document provides guidelines for contributing to the project.

How to Contribute

Reporting Bugs

Before creating bug reports, please check existing issues to avoid duplicates. When creating a bug report, include:

  • A clear and descriptive title
  • Steps to reproduce the issue
  • Expected behavior
  • Actual behavior
  • System information (OS, Python version, etc.)
  • Error messages or logs

Suggesting Enhancements

Enhancement suggestions are welcome! Please provide:

  • A clear and descriptive title
  • Detailed description of the proposed feature
  • Use cases and benefits
  • Possible implementation approach

Pull Requests

  1. Fork the repository and create your branch from main
  2. Follow the coding style used in the project
  3. Write clear commit messages
  4. Add tests if applicable
  5. Update documentation if needed
  6. Test your changes thoroughly

Development Setup

# Clone your fork
git clone https://github.com/yourusername/llama-api-client.git
cd llama-api-client

# Create virtual environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install dependencies
pip install -r requirements.txt

# Run tests
python quick_test.py

Coding Standards

Python Style Guide

  • Follow PEP 8
  • Use meaningful variable names
  • Add docstrings to functions and classes
  • Keep functions focused and small
  • Handle exceptions appropriately

Example Code Style

def clean_response(text: str) -> str:
    """
    Clean AI response by removing special markers.
    
    Args:
        text: Raw response text from AI
        
    Returns:
        Cleaned text without special markers
    """
    # Implementation here
    return cleaned_text

Commit Message Format

Use clear and descriptive commit messages:

  • feat: New feature
  • fix: Bug fix
  • docs: Documentation changes
  • style: Code style changes
  • refactor: Code refactoring
  • test: Test additions or changes
  • chore: Maintenance tasks

Examples:

feat: Add support for new model endpoint
fix: Handle encoding errors in Windows terminals
docs: Update README with troubleshooting section

Testing

Running Tests

# Quick connection test
python quick_test.py

# Test all models
python test_all_models.py

# Test specific endpoint
python local_api_test.py

Writing Tests

When adding new features, include appropriate tests:

def test_endpoint_connection():
    """Test if endpoint is reachable"""
    assert test_endpoint({"url": "...", "models": ["..."]})

Documentation

  • Update README.md for user-facing changes
  • Update 操作指南.md for Chinese documentation
  • Add docstrings to all public functions
  • Include usage examples for new features

Code Review Process

  1. All submissions require review before merging
  2. Reviews focus on:
    • Code quality and style
    • Test coverage
    • Documentation completeness
    • Performance implications
    • Security considerations

Areas for Contribution

Current Needs

  • Add retry logic for failed connections
  • Implement connection pooling
  • Add streaming response support
  • Create GUI interface
  • Add conversation export/import
  • Implement rate limiting
  • Add proxy support
  • Create Docker container
  • Add more language examples
  • Improve error messages

Future Features

  • Web interface
  • Mobile app support
  • Voice input/output
  • Multi-user support
  • Analytics dashboard
  • Plugin system

Community

Communication Channels

  • GitHub Issues: Bug reports and feature requests
  • GitHub Discussions: General questions and discussions
  • Pull Requests: Code contributions

Code of Conduct

  • Be respectful and inclusive
  • Welcome newcomers
  • Provide constructive feedback
  • Focus on what is best for the community
  • Show empathy towards others

Questions?

If you have questions about contributing, feel free to:

  1. Open an issue with the question label
  2. Check existing documentation
  3. Review closed issues for similar questions

License

By contributing, you agree that your contributions will be licensed under the MIT License.


Thank you for contributing to Llama API Client! 🚀