Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat: add new knowledge contribution #117

Merged
merged 4 commits into from
Apr 11, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
52 changes: 52 additions & 0 deletions CONTRIBUTING_KNOWLEDGE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# Contributing to Prior Knowledge Augmentation

WebWand's Prior Knowledge Augmentation system is designed to enhance the tool's web navigation and task execution capabilities by leveraging a shared knowledge base. Contributions to this system help make WebWand smarter and more capable.

## What Kind of Knowledge Are We Looking For?

We seek knowledge that:
- Enhances the understanding of specific web pages or actions, making task execution more reliable.
- Includes insights into website layouts, common patterns, and user interfaces that are not immediately obvious.
- Provides rules or annotations that help the AI better interpret the purpose of elements on a page.

For example, if a website has two buttons with the same name but different functionalities, it's crucial to describe in notes how to distinguish between them.

## How to Add and Test New Knowledge

We offer two convenient ways to add and test new knowledge in real-time:
- Via Form: Within the WebWand UI settings, navigate to the "Custom Knowledge Base" and select "Add Host Knowledge with Form" to input new knowledge using a user-friendly form.
- Via JSON: If you prefer to work directly with JSON, choose "Add Host Knowledge with JSON" to enter your custom knowledge.

You can test the new knowledge by running several tasks on the relevant web pages to ensure WebWand behaves as expected.

Once you've tested various knowledge inputs and are satisfied with the new knowledge's performance, you can then copy that knowledge into the db.json file.

1. Locate the `db.json` file in the `src/helpers/knowledge` directory of the WebWand repository.
2. Add your knowledge in the JSON format, following the existing structure. `annotationRules` is optional.
```json
{
"example.com": {
"rules": [
{
"regexes": ["regular expression to match pathname (not host name)"],
"knowledge": {
"notes": ["Your insights or notes about this page or action"],
"annotationRules": [
{
"selector": "CSS selector",
"allowInvisible": true,
"allowCovered": true,
"allowAriaHidden": true
}
]
}
}
]
}
}
```
3. Please ensure your contributions are clear and concise, with `regexes` and `selector` accurately defined.

## Submitting Your Contribution

Please check out the [Contribution Guide](CONTRIBUTING.md). Share your testing process and results in your pull request to help reviewers understand the impact of your contribution. Specifically, describe how the new knowledge help WebWand acheive something it previously cannot perform correctly.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ Check out our [Troubleshooting Guide](TROUBLESHOOTING.md) for help with common p

Interested in contributing to WebWand? We'd love your help! Check out our [Contribution Guide](CONTRIBUTING.md) for guidelines on how to contribute, report bugs, suggest enhancements, and more.

We encourage everyone in the community to add new knowledge to the "Prior Knowledge Augmentation" system. Check out the default knowledge file ["db.json"](src/helpers/knowledge/db.json).
We also encourage everyone in the community to add new knowledge to the "Prior Knowledge Augmentation" system to make WebWand even smarter. For detailed instructions on what kind of knowledge we're looking for and how to test and submit it, please see our [Contributing Knowledge Guide](CONTRIBUTING_KNOWLEDGE.md).

## Credits

Expand Down
Loading