Welcome to the world's most comprehensive repository of Prompt Engineering techniques and implementations! 🌟 We're thrilled you're interested in contributing to this dynamic knowledge base. Your expertise and creativity can help us push the boundaries of prompt engineering technology.
We have a vibrant Discord community where contributors can discuss ideas, ask questions, and collaborate on GenAI topics. Join us at:
Don't hesitate to introduce yourself and share your thoughts!
We welcome contributions of all kinds! Here are some ways you can help:
- Add New Prompt Engineering Techniques: Create new notebooks showcasing novel prompt engineering implementations.
- Improve Existing Notebooks: Enhance, update, or expand our current tutorials.
- Fix Bugs: Help us squash bugs in existing code or explanations.
- Enhance Documentation: Improve clarity, add examples, or fix typos in our docs.
- Share Creative Ideas: Have an innovative idea for a new prompt engineering technique? We're all ears!
- Engage in Discussions: Participate in our Discord community to help shape the future of Gen AI.
Remember, no contribution is too small. Every improvement helps make this repository an even better resource for the community.
Found a problem or have a suggestion? Please create an issue on GitHub, providing as much detail as possible. You can also discuss issues in our Discord community.
- Fork and Branch: Fork the repository and create your branch from
main
. - Make Your Changes: Implement your contribution, following our best practices.
- Test: Ensure your changes work as expected.
- Follow the Style: Adhere to the coding and documentation conventions used throughout the project.
- Commit: Make your git commits informative and concise.
- Stay Updated: The main branch is frequently updated. Before opening a pull request, make sure your code is up-to-date with the current main branch and has no conflicts.
- Push and Pull Request: Push to your fork and submit a pull request.
- Discuss: Use the Discord community to discuss your contribution if you need feedback or have questions.
When adding a new prompt engineering technique to the repository, please follow these additional steps:
- Create your notebook in the
all_prompt_engineering_techniques
folder. - Update the README.md file:
- Add your new technique to the list of implementations in the README.
- Place it in the appropriate category based on complexity and type.
- Use the following format for the link:
### [Number]. [Your Technique Name 🏷️](https://github.com/NirDiamant/Prompt_Engineering/blob/main/all_prompt_engineering_techniques/your_file_name.ipynb)
- Replace
[Number]
with the appropriate number,[Your Technique Name]
with your technique's name, andyour_file_name.ipynb
with the actual name of your notebook file. - Choose an appropriate emoji that represents your technique.
- After inserting your new technique, make sure to update the numbers of all subsequent techniques to maintain the correct order.
For example:
1. [Intro-prompt-engineering-lesson 📝](hhttps://github.com/NirDiamant/Prompt_Engineering/blob/main/all_prompt_engineering_techniques/basic_prompt_construction.ipynb)
2. [Your New Technique 🆕](https://github.com/NirDiamant/Prompt_Engineering/blob/main/all_prompt_engineering_techniques/your_new_technique.ipynb)
3. [Next Technique 🔜](https://github.com/NirDiamant/Prompt_Engineering/blob/main/all_prompt_engineering_techniques/next_technique.ipynb)
Remember to increment the numbers of all techniques that come after your newly inserted implementation.
For new notebooks or significant additions to existing ones, please follow this structure:
-
Title and Overview: Clear title and brief overview of the prompt engineering technique.
-
Detailed Explanation: Cover motivation, key components, technique architecture, and conclusion.
-
Implementation: Step-by-step implementation with clear comments and explanations.
-
Usage Example: Demonstrate the technique with a practical example.
-
Additional Considerations: Discuss limitations, potential improvements, or specific use cases.
-
References: Include relevant citations or resources if you have.
To ensure consistency and readability across all notebooks:
-
Code Cell Descriptions: Each code cell should be preceded by a markdown cell with a clear, concise title describing the cell's content or purpose.
-
Consistent Formatting: Maintain consistent formatting throughout the notebook, including regular use of markdown headers, code comments, and proper indentation.
To ensure the highest quality and readability of our code:
- Write Clean Code: Follow best practices for clean, readable code.
- Use Comments: Add clear and concise comments to explain complex logic.
- Format Your Code: Use consistent formatting throughout your contribution.
- Language Model Review: After completing your code, consider passing it through a language model for additional formatting and readability improvements. This extra step can help make your code even more accessible and maintainable.
Clear documentation is crucial. Whether you're improving existing docs or adding new ones, follow the same process: fork, change, test, and submit a pull request.
We're grateful for all our contributors and excited to see how you'll help expand the world's most comprehensive prompt engineering resource. Don't hesitate to ask questions in our Discord community if you're unsure about anything.
Let's harness our collective knowledge and creativity to push the boundaries of prompt engineering technology together!
Happy contributing! 🚀