Skip to content

Commit cbed722

Browse files
jeremymanningclaude
andcommitted
fix: Fix model auto-detection test and add CI debug script
- Initialize model registry before creating AmbiguityResolver - Add debug script to check CI environment and API keys - Fix test to properly handle model registry initialization - Add more detailed error reporting in test This should fix the failing CI tests by ensuring models are properly initialized before attempting auto-detection. 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
1 parent af296fd commit cbed722

File tree

3 files changed

+63
-10
lines changed

3 files changed

+63
-10
lines changed

.github/workflows/test-models.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,10 @@ jobs:
2727
pip install -e .
2828
pip install transformers torch requests
2929
30+
- name: Debug CI Environment
31+
run: |
32+
python test_ci_env.py || true
33+
3034
- name: Test HuggingFace model integration
3135
env:
3236
CI: true

test_ci_env.py

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
#!/usr/bin/env python3
2+
"""Simple test to verify CI environment."""
3+
4+
import os
5+
import sys
6+
7+
# Just print environment info
8+
print("=== CI Environment Test ===")
9+
print(f"CI={os.environ.get('CI', 'not set')}")
10+
print(f"GITHUB_ACTIONS={os.environ.get('GITHUB_ACTIONS', 'not set')}")
11+
12+
# Check API keys (don't print values)
13+
for key in ["OPENAI_API_KEY", "ANTHROPIC_API_KEY", "GOOGLE_AI_API_KEY", "HF_TOKEN"]:
14+
value = os.environ.get(key)
15+
if value:
16+
print(f"{key}: SET (len={len(value)})")
17+
else:
18+
print(f"{key}: NOT SET")
19+
20+
# Exit with error if no keys found
21+
keys_found = sum(1 for k in ["OPENAI_API_KEY", "ANTHROPIC_API_KEY", "GOOGLE_AI_API_KEY", "HF_TOKEN"] if os.environ.get(k))
22+
print(f"\nTotal keys found: {keys_found}")
23+
24+
if keys_found == 0:
25+
print("ERROR: No API keys found!")
26+
sys.exit(1)
27+
else:
28+
print("SUCCESS: API keys detected")
29+
sys.exit(0)

tests/integration/test_models_comprehensive.py

Lines changed: 30 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -132,19 +132,39 @@ async def test_model_auto_detection():
132132

133133
try:
134134
from orchestrator.compiler.ambiguity_resolver import AmbiguityResolver
135-
136-
# Create resolver without specifying model (should auto-detect)
137-
resolver = AmbiguityResolver()
138-
print(f"✅ Auto-detected model: {resolver.model.name}")
139-
print(f" Provider: {resolver.model.provider}")
140-
141-
# Test simple resolution
142-
resolved = await resolver.resolve("Choose format", "test.format")
143-
print(f"✅ Resolved 'Choose format': '{resolved}'")
144-
return True
135+
from orchestrator import init_models
136+
from orchestrator.models.registry_singleton import get_model_registry
137+
138+
# Initialize models first
139+
init_models()
140+
registry = get_model_registry()
141+
142+
# Check if we have any models available
143+
available_models = registry.list_models()
144+
if not available_models:
145+
print("❌ No models available in registry after init_models()")
146+
return False
147+
148+
print(f"✅ Found {len(available_models)} models in registry")
149+
150+
# Create resolver with model registry (should auto-detect)
151+
resolver = AmbiguityResolver(model_registry=registry)
152+
print(f"✅ Auto-detected model: {resolver.model.name if resolver.model else 'None'}")
153+
if resolver.model:
154+
print(f" Provider: {resolver.model.provider}")
155+
156+
# Test simple resolution
157+
resolved = await resolver.resolve("Choose format", "test.format")
158+
print(f"✅ Resolved 'Choose format': '{resolved}'")
159+
return True
160+
else:
161+
print("❌ No model was auto-detected")
162+
return False
145163

146164
except Exception as e:
147165
print(f"❌ Auto-detection test failed: {e}")
166+
import traceback
167+
traceback.print_exc()
148168
return False
149169

150170

0 commit comments

Comments
 (0)