Skip to content

Commit 7226c83

Browse files
danielbentesclaude
andcommitted
feat: initial release of SIARE open-source core
Self-Improving Agentic RAG Engine - evolve multi-agent RAG pipelines using Quality-Diversity optimization. Core components: - ProcessConfig and data models for pipeline definition - DirectorService for AI-driven evolution - ExecutionEngine for multi-agent DAG execution - GenePool for SOP versioning and ancestry tracking - QDGridManager for Quality-Diversity optimization - Evaluation service with LLM Judge metrics - Prompt evolution strategies (TextGrad, EvoPrompt, MetaPrompt) - Hallucination detection (faithfulness, groundedness, citation) - Comprehensive benchmark suite (HotpotQA, Natural Questions, BEIR) New features: - Hooks architecture for enterprise extensibility - Interactive CLI (siare init, siare evolve, siare run) 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <[email protected]>
1 parent 0ea4cbc commit 7226c83

File tree

110 files changed

+37673
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

110 files changed

+37673
-0
lines changed

.github/workflows/ci.yml

Lines changed: 78 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,78 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
branches: [main]
8+
9+
jobs:
10+
test:
11+
runs-on: ubuntu-latest
12+
strategy:
13+
fail-fast: false
14+
matrix:
15+
python-version: ["3.10", "3.11", "3.12"]
16+
17+
steps:
18+
- uses: actions/checkout@v4
19+
20+
- name: Set up Python
21+
uses: actions/setup-python@v5
22+
with:
23+
python-version: ${{ matrix.python-version }}
24+
25+
- name: Install dependencies
26+
run: |
27+
python -m pip install --upgrade pip
28+
pip install -e ".[dev,full]"
29+
30+
- name: Run linting
31+
run: |
32+
ruff check siare/
33+
34+
- name: Run type checking
35+
run: |
36+
pyright siare/
37+
38+
- name: Run tests
39+
run: |
40+
pytest tests/ -v --cov=siare --cov-report=xml
41+
42+
- name: Upload coverage
43+
uses: codecov/codecov-action@v4
44+
if: matrix.python-version == '3.11'
45+
with:
46+
files: ./coverage.xml
47+
fail_ci_if_error: false
48+
49+
build:
50+
runs-on: ubuntu-latest
51+
needs: test
52+
53+
steps:
54+
- uses: actions/checkout@v4
55+
56+
- name: Set up Python
57+
uses: actions/setup-python@v5
58+
with:
59+
python-version: "3.11"
60+
61+
- name: Install build dependencies
62+
run: |
63+
python -m pip install --upgrade pip
64+
pip install build twine
65+
66+
- name: Build package
67+
run: |
68+
python -m build
69+
70+
- name: Check package
71+
run: |
72+
twine check dist/*
73+
74+
- name: Upload artifacts
75+
uses: actions/upload-artifact@v4
76+
with:
77+
name: dist
78+
path: dist/

.gitignore

Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
# Byte-compiled / optimized / DLL files
2+
__pycache__/
3+
*.py[cod]
4+
*$py.class
5+
6+
# C extensions
7+
*.so
8+
9+
# Distribution / packaging
10+
.Python
11+
build/
12+
develop-eggs/
13+
dist/
14+
downloads/
15+
eggs/
16+
.eggs/
17+
lib/
18+
lib64/
19+
parts/
20+
sdist/
21+
var/
22+
wheels/
23+
*.egg-info/
24+
.installed.cfg
25+
*.egg
26+
27+
# PyInstaller
28+
*.manifest
29+
*.spec
30+
31+
# Installer logs
32+
pip-log.txt
33+
pip-delete-this-directory.txt
34+
35+
# Unit test / coverage reports
36+
htmlcov/
37+
.tox/
38+
.nox/
39+
.coverage
40+
.coverage.*
41+
.cache
42+
nosetests.xml
43+
coverage.xml
44+
*.cover
45+
*.py,cover
46+
.hypothesis/
47+
.pytest_cache/
48+
49+
# Translations
50+
*.mo
51+
*.pot
52+
53+
# Environments
54+
.env
55+
.venv
56+
env/
57+
venv/
58+
ENV/
59+
env.bak/
60+
venv.bak/
61+
62+
# IDE
63+
.idea/
64+
.vscode/
65+
*.swp
66+
*.swo
67+
*~
68+
69+
# macOS
70+
.DS_Store
71+
72+
# SIARE specific
73+
.siare/
74+
siare.yaml
75+
example_docs/
76+
*.log

CONTRIBUTING.md

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
# Contributing to SIARE
2+
3+
Thank you for your interest in contributing to SIARE! This document provides guidelines for contributing.
4+
5+
## Getting Started
6+
7+
1. Fork the repository
8+
2. Clone your fork: `git clone https://github.com/YOUR_USERNAME/siare.git`
9+
3. Create a virtual environment: `python -m venv venv && source venv/bin/activate`
10+
4. Install dev dependencies: `pip install -e ".[dev,full]"`
11+
12+
## Development Workflow
13+
14+
1. Create a feature branch: `git checkout -b feature/your-feature`
15+
2. Make your changes
16+
3. Run tests: `pytest tests/ -v`
17+
4. Run linting: `ruff check siare/`
18+
5. Run type checking: `pyright siare/`
19+
6. Commit your changes with a descriptive message
20+
7. Push and create a pull request
21+
22+
## Code Style
23+
24+
- Follow PEP 8
25+
- Use type hints for all public functions
26+
- Write docstrings for public classes and functions
27+
- Keep functions focused and small
28+
- Add tests for new functionality
29+
30+
## Testing
31+
32+
- Unit tests go in `tests/unit/`
33+
- Integration tests go in `tests/integration/`
34+
- Test file naming: `test_<module_name>.py`
35+
- Test function naming: `test_<function>_<scenario>_<expected>`
36+
37+
## Pull Request Guidelines
38+
39+
- Keep PRs focused on a single change
40+
- Include tests for new functionality
41+
- Update documentation as needed
42+
- Ensure CI passes before requesting review
43+
- Write a clear PR description
44+
45+
## Reporting Issues
46+
47+
When reporting bugs, please include:
48+
- Python version
49+
- SIARE version
50+
- Steps to reproduce
51+
- Expected vs actual behavior
52+
- Relevant logs or error messages
53+
54+
## Questions?
55+
56+
Open a GitHub Discussion or reach out to the maintainers.
57+
58+
## License
59+
60+
By contributing, you agree that your contributions will be licensed under the MIT License.

0 commit comments

Comments
 (0)