First off, thank you for considering contributing to OpenDeepResearcher-API! This project aims to revolutionize AI-powered research by providing a comprehensive suite of tools for deep, automated research and analysis.
OpenDeepResearcher-API consists of several components:
- OpenDeepResearcher-API: The core REST API service
- Research Engine: The intelligent research orchestration system
- Content Processing Pipeline: Advanced web content extraction and analysis
- Multi-Provider LLM Integration: Flexible AI model integration system
Our goal is to create an open, extensible platform for automated research that can be used standalone or integrated into larger systems.
By participating in this project, you are expected to uphold our Code of Conduct:
- Use welcoming and inclusive language
- Be respectful of differing viewpoints and experiences
- Gracefully accept constructive criticism
- Focus on what is best for the community
- Show empathy towards other community members
Before creating bug reports, please check the issue list as you might find out that you don't need to create one. When you are creating a bug report, please include as many details as possible:
- Use a clear and descriptive title
- Describe the exact steps to reproduce the problem
- Provide specific examples to demonstrate the steps
- Describe the behavior you observed after following the steps
- Explain which behavior you expected to see instead and why
- Include screenshots and animated GIFs if possible
- Include your environment details
Enhancement suggestions are tracked as GitHub issues. When creating an enhancement suggestion, please include:
- Use a clear and descriptive title
- Provide a step-by-step description of the suggested enhancement
- Provide specific examples to demonstrate the steps
- Describe the current behavior and explain the behavior you expected to see instead
- Explain why this enhancement would be useful
- Fork the repo and create your branch from
main - If you've added code that should be tested, add tests
- If you've changed APIs, update the documentation
- Ensure the test suite passes
- Make sure your code lints
- Issue that pull request!
- Setting up your development environment
# Clone your fork
git clone https://github.com/<your-username>/OpenDeepResearcher-API.git
# Add upstream remote
git remote add upstream https://github.com/original/OpenDeepResearcher-API.git
# Create virtual environment
python -m venv venv-odr-310
source venv-odr-310/bin/activate # On Unix/macOS
# or
.\venv-odr-310\Scripts\activate # On Windows
# Install dependencies
pip install -r requirements.txt- Making Changes
- Create a topic branch from where you want to base your work
- Make commits of logical and atomic units
- Follow our coding style
- Add or update tests as needed
- Run tests locally before pushing
- Commit Messages We follow conventional commits. Format your commit messages as:
<type>(<scope>): <subject>
<body>
<footer>
Types:
- feat: A new feature
- fix: A bug fix
- docs: Documentation only changes
- style: Changes that don't affect the code's meaning
- refactor: Code change that neither fixes a bug nor adds a feature
- perf: Code change that improves performance
- test: Adding missing tests
- chore: Changes to the build process or auxiliary tools
Example:
feat(research): add support for PDF output format
- Implement PDF generation using WeasyPrint
- Add PDF styling templates
- Update documentation with PDF examples
Closes #123
- Follow PEP 8
- Use type hints
- Write docstrings for all public methods
- Keep functions focused and small
- Use meaningful variable names
- Use Markdown for documentation
- Include code examples where appropriate
- Keep line length to 80-100 characters
- Use proper heading hierarchy
- Include links to referenced issues/PRs
- Write unit tests for new features
- Update existing tests when modifying features
- Ensure all tests pass before submitting PR
- Include integration tests where appropriate
OpenDeepResearcher/
├── app/ # Main application code
├── tests/ # Test files
├── docs/ # Documentation
├── research_outputs/ # Generated research files
└── scripts/ # Utility scripts
- Join our Discord server
- Check the documentation
- Open an issue
- Contact the maintainers
Contributors will be recognized in:
- The project's README
- Our documentation
- Release notes
bug: Something isn't workingenhancement: New feature or requestdocumentation: Documentation only changesgood first issue: Good for newcomershelp wanted: Extra attention is neededquestion: Further information is requested
By contributing, you agree that your contributions will be licensed under the MIT License.
This project is based on Matt Shumer's original OpenDeepResearcher notebook implementation. The original work has been adapted into a REST API service with additional features like multi-provider LLM support, parallel processing, and real-time status updates.