a1c00l commited on
Commit
e0d888b
·
verified ·
1 Parent(s): ef28c77

Upload test_generator.py

Browse files
Files changed (1) hide show
  1. src/aibom_generator/test_generator.py +102 -0
src/aibom_generator/test_generator.py ADDED
@@ -0,0 +1,102 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/usr/bin/env python3
2
+ """
3
+ Simple test script to verify the AIBOM generator functionality without the API layer.
4
+ This helps isolate whether the issue is with the generator or the API.
5
+ """
6
+
7
+ import os
8
+ import json
9
+ import logging
10
+ import sys
11
+ from pathlib import Path
12
+
13
+ # Configure logging
14
+ logging.basicConfig(
15
+ level=logging.INFO,
16
+ format='%(asctime)s - %(name)s - %(levelname)s - %(message)s'
17
+ )
18
+ logger = logging.getLogger(__name__)
19
+
20
+ # Define output directory
21
+ OUTPUT_DIR = "/tmp/aibom_output"
22
+ os.makedirs(OUTPUT_DIR, exist_ok=True)
23
+
24
+ def test_generator(model_id="meta-llama/Llama-2-7b-chat-hf"):
25
+ """Test the AIBOM generator functionality directly."""
26
+ logger.info(f"Testing AIBOM generator with model_id: {model_id}")
27
+
28
+ # Try different import paths to find the generator
29
+ try:
30
+ logger.info("Trying to import from src.aibom_generator.generator")
31
+ from src.aibom_generator.generator import AIBOMGenerator
32
+ logger.info("Successfully imported from src.aibom_generator.generator")
33
+ except ImportError as e:
34
+ logger.warning(f"Import from src.aibom_generator.generator failed: {e}")
35
+ try:
36
+ logger.info("Trying to import from aibom_generator.generator")
37
+ from aibom_generator.generator import AIBOMGenerator
38
+ logger.info("Successfully imported from aibom_generator.generator")
39
+ except ImportError as e:
40
+ logger.warning(f"Import from aibom_generator.generator failed: {e}")
41
+ try:
42
+ logger.info("Trying to import from generator")
43
+ from generator import AIBOMGenerator
44
+ logger.info("Successfully imported from generator")
45
+ except ImportError as e:
46
+ logger.error(f"All import attempts failed: {e}")
47
+ logger.error("Could not import AIBOMGenerator. Please check your installation.")
48
+ return False
49
+
50
+ try:
51
+ # Create generator instance
52
+ logger.info("Creating AIBOMGenerator instance")
53
+ generator = AIBOMGenerator()
54
+
55
+ # Generate AIBOM
56
+ logger.info(f"Generating AIBOM for model: {model_id}")
57
+ aibom, enhancement_report = generator.generate(
58
+ model_id=model_id,
59
+ include_inference=True,
60
+ use_best_practices=True
61
+ )
62
+
63
+ # Save AIBOM to file
64
+ filename = f"{model_id.replace('/', '_')}_aibom.json"
65
+ filepath = os.path.join(OUTPUT_DIR, filename)
66
+ logger.info(f"Saving AIBOM to: {filepath}")
67
+ with open(filepath, "w") as f:
68
+ json.dump(aibom, f, indent=2)
69
+
70
+ # Print summary
71
+ logger.info("AIBOM generation successful!")
72
+ logger.info(f"AIBOM saved to: {filepath}")
73
+
74
+ # Check if completeness score is available
75
+ if hasattr(generator, 'get_completeness_score'):
76
+ try:
77
+ logger.info("Getting completeness score")
78
+ completeness_score = generator.get_completeness_score(model_id)
79
+ logger.info(f"Completeness score: {completeness_score}")
80
+ except Exception as e:
81
+ logger.error(f"Error getting completeness score: {e}")
82
+ else:
83
+ logger.warning("get_completeness_score method not available")
84
+
85
+ return True
86
+ except Exception as e:
87
+ logger.error(f"Error in test_generator: {e}", exc_info=True)
88
+ return False
89
+
90
+ if __name__ == "__main__":
91
+ # Use command line argument for model_id if provided
92
+ model_id = sys.argv[1] if len(sys.argv) > 1 else "meta-llama/Llama-2-7b-chat-hf"
93
+
94
+ logger.info("Starting AIBOM generator test")
95
+ success = test_generator(model_id)
96
+
97
+ if success:
98
+ logger.info("Test completed successfully!")
99
+ sys.exit(0)
100
+ else:
101
+ logger.error("Test failed!")
102
+ sys.exit(1)