An agent for agents to explore the web
This project uses uv for dependency management.
# Clone the repository
git clone <repository-url>
cd AIWebExplorer
# Install dependencies
uv sync
# Activate virtual environment
source .venv/bin/activate# Run linting
uv run ruff check .
# Run formatting
uv run ruff format .
# Run type checking
uv run ruff check --select ICopy .env.example to .env and adjust the values:
# Environment setting (DEV, TEST, CI, PROD)
AWE_ENV=DEV
# Logging level (DEBUG, INFO, WARNING, ERROR, CRITICAL)
AWE_LOG_LEVEL=INFO
# LLM Provider configuration (REQUIRED)
# Supported providers: openai, togetherai, deepseek
AWE_LLM_PROVIDER=openai
# LLM Model to use (REQUIRED)
# Examples:
# - OpenAI: gpt-4, gpt-4-turbo, gpt-3.5-turbo
# - TogetherAI: meta-llama/Llama-2-70b-chat-hf, mistralai/Mixtral-8x7B-Instruct-v0.1
# - DeepSeek: deepseek-chat, deepseek-coder
AWE_LLM_MODEL=gpt-4
# API Key for the selected provider (REQUIRED)
AWE_LLM_API_KEY=your-api-key-hereAWE_ENV: Application environment (default:DEV)- Options:
DEV,TEST,CI,PROD
- Options:
AWE_LOG_LEVEL: Logging verbosity level (default:INFO)- Options:
DEBUG,INFO,WARNING,ERROR,CRITICAL
- Options:
AWE_LLM_PROVIDER: LLM provider selection (REQUIRED)- Supported providers:
openai,togetherai,deepseek - Can be overridden when creating agents programmatically
- Supported providers:
AWE_LLM_MODEL: Model identifier to use (REQUIRED)- Must be compatible with the selected provider
- Can be overridden when creating agents programmatically
AWE_LLM_API_KEY: API key for authentication (REQUIRED)- Must be valid for the selected provider
- Can be overridden when creating agents programmatically
- Provider:
openai - Models:
gpt-4,gpt-4-turbo,gpt-3.5-turbo, and more - API Key: Get from OpenAI Platform
- Provider:
togetherai - Models: Various open-source models including Llama, Mixtral, etc.
- API Key: Get from Together.ai
- Provider:
deepseek - Models:
deepseek-chat,deepseek-coder - API Key: Get from DeepSeek Platform
For comprehensive testing documentation, including how to run tests, use dependency injection for mocking, and write new tests, see the Tests README.
# Run all tests
pytest
# Run with verbose output
pytest -v
# Run specific test file
pytest tests/test_webexplorer_integration.pyPerformance evaluation reports are available in the tests/reports/ directory:
- Amazon Extraction Report - Evaluation of product information extraction from Amazon
- Wikipedia Extraction Report - Evaluation of information extraction from Wikipedia
These reports track the accuracy and performance of the WebExplorer across different types of websites and extraction tasks.
To develop a new feature:
-
Create a feature branch from
develop:git checkout develop git pull origin develop git checkout -b feature/your-feature-name
-
Work on your feature and commit changes:
git add . git commit -m "feat: add your new feature" git push origin feature/your-feature-name
-
Create a Pull Request to
developbranch -
After review and merge, delete the feature branch
For automated releases, simply commit with the release message:
git commit -m "chore: release v1.2.0"
git push origin masterThis will automatically:
- Create the version tag
- Publish to PyPI
- Create a GitHub release
-
Create a release branch from
develop:git checkout develop git pull origin develop git checkout -b release/v1.2.0
-
Update CHANGELOG.md with your changes
-
Merge to master and create version tag:
git checkout master git merge release/v1.2.0 git tag v1.2.0 git push origin master --tags
-
Merge back to develop:
git checkout develop git merge release/v1.2.0 git push origin develop
The CI/CD pipeline will automatically:
- Run tests and linting
- Build and publish to PyPI when version tags are pushed
- Create GitHub releases
Version numbering:
- Patch (1.0.0 → 1.0.1): Bug fixes
- Minor (1.0.0 → 1.1.0): New features
- Major (1.0.0 → 2.0.0): Breaking changes
[Add your license here]