Skip to content

Commit a226bf4

Browse files
leestottCopilot
andcommitted
Inital commit
Co-authored-by: Copilot <copilot@github.com>
1 parent 71b742e commit a226bf4

120 files changed

Lines changed: 14714 additions & 425 deletions

File tree

Some content is hidden

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

.devcontainer/devcontainer.json

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
// For format details, see https://aka.ms/devcontainer.json. For config options, see the
2+
// README at: https://github.com/devcontainers/templates/tree/main/src/python
3+
{
4+
"name": "Model Router AutoEval",
5+
// Or use a Dockerfile or Docker Compose file. More info: https://containers.dev/guide/dockerfile
6+
"image": "mcr.microsoft.com/devcontainers/python:3-3.10-bookworm",
7+
8+
// Features to add to the dev container. More info: https://containers.dev/features.
9+
"features": {
10+
"ghcr.io/devcontainers/features/azure-cli:1": {},
11+
"ghcr.io/azure/azure-dev/azd:0": {}
12+
},
13+
14+
// Use 'forwardPorts' to make a list of ports inside the container available locally.
15+
// "forwardPorts": [],
16+
17+
// Use 'postCreateCommand' to run commands after the container is created.
18+
"postCreateCommand": "pip3 install --user -r requirements.txt",
19+
20+
// Configure tool-specific properties.
21+
"customizations": {
22+
"vscode": {
23+
"extensions": [
24+
"ms-toolsai.jupyter",
25+
"ms-python.python"
26+
]
27+
}
28+
}
29+
30+
// Uncomment to connect as root instead. More info: https://aka.ms/dev-containers-non-root.
31+
// "remoteUser": "root"
32+
}

.env.example

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
# Azure Model Router endpoint
2+
AZURE_MODEL_ROUTER_ENDPOINT=https://your-resource.services.ai.azure.com/models
3+
AZURE_MODEL_ROUTER_KEY=your-model-router-api-key
4+
AZURE_MODEL_ROUTER_DEPLOYMENT=model-router
5+
6+
# Azure OpenAI endpoint (for baseline model)
7+
AZURE_OPENAI_ENDPOINT=https://your-resource.openai.azure.com
8+
AZURE_OPENAI_KEY=your-azure-openai-api-key
9+
AZURE_BASELINE_DEPLOYMENT=gpt-5
10+
11+
# Judge model (defaults to same endpoint as baseline; override to use a different model)
12+
AZURE_JUDGE_ENDPOINT=https://your-resource.openai.azure.com
13+
AZURE_JUDGE_KEY=your-azure-openai-api-key
14+
AZURE_JUDGE_DEPLOYMENT=gpt-5
15+
16+
# Microsoft Foundry (optional — for cloud evaluation via Foundry SDK)
17+
AZURE_AI_PROJECT_ENDPOINT=https://your-project.services.ai.azure.com
18+
AZURE_AI_MODEL_DEPLOYMENT_NAME=gpt-5

.github/workflows/tests.yml

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
name: Tests
2+
3+
on:
4+
push:
5+
branches: [main]
6+
pull_request:
7+
branches: [main]
8+
workflow_dispatch:
9+
10+
permissions:
11+
contents: read
12+
13+
jobs:
14+
test:
15+
name: Test (Python ${{ matrix.python-version }} on ${{ matrix.os }})
16+
runs-on: ${{ matrix.os }}
17+
strategy:
18+
fail-fast: false
19+
matrix:
20+
os: [ubuntu-latest, windows-latest, macos-latest]
21+
python-version: ["3.9", "3.11", "3.13"]
22+
23+
steps:
24+
- name: Checkout
25+
uses: actions/checkout@v4
26+
27+
- name: Set up Python ${{ matrix.python-version }}
28+
uses: actions/setup-python@v5
29+
with:
30+
python-version: ${{ matrix.python-version }}
31+
cache: pip
32+
33+
- name: Install dependencies
34+
run: |
35+
python -m pip install --upgrade pip
36+
pip install -e ".[dev,foundry,db]"
37+
38+
- name: Lint with ruff
39+
run: ruff check src/ tests/ scripts/
40+
41+
- name: Run unit tests
42+
run: pytest tests/ -v -m "not integration and not live"
43+
44+
smoke-demo:
45+
name: Smoke test the demo (no API keys)
46+
runs-on: ubuntu-latest
47+
steps:
48+
- uses: actions/checkout@v4
49+
- uses: actions/setup-python@v5
50+
with:
51+
python-version: "3.11"
52+
cache: pip
53+
- name: Install
54+
run: pip install -e .
55+
- name: Generate sample report
56+
run: python scripts/generate_sample_report.py --output-dir results/demo
57+
- name: Verify outputs exist
58+
run: |
59+
test -f results/demo/dashboard.html
60+
test -f results/demo/report.md
61+
test -f results/demo/results.json

0 commit comments

Comments
 (0)