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

196 lines
4.2 KiB
Markdown

# 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
```bash
# 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
```python
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
```bash
# 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:
```python
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! 🚀