134 lines
3.4 KiB
Python
134 lines
3.4 KiB
Python
"""
|
|
Configuration Check Script
|
|
Verify project configuration is correct
|
|
"""
|
|
|
|
import sys
|
|
from pathlib import Path
|
|
|
|
|
|
def check_python_version():
|
|
"""Check Python version"""
|
|
print("Checking Python version...")
|
|
if sys.version_info < (3, 10):
|
|
print(f"[ERROR] Python version too low: {sys.version}")
|
|
print(" Required: Python 3.10+")
|
|
return False
|
|
print(f"[OK] Python version: {sys.version.split()[0]}")
|
|
return True
|
|
|
|
|
|
def check_dependencies():
|
|
"""Check required packages"""
|
|
print("\nChecking dependencies...")
|
|
|
|
required_packages = {
|
|
'crewai': 'CrewAI',
|
|
'fastapi': 'FastAPI',
|
|
'uvicorn': 'Uvicorn',
|
|
'pydantic': 'Pydantic',
|
|
'pydantic_settings': 'Pydantic Settings',
|
|
'dotenv': 'python-dotenv'
|
|
}
|
|
|
|
all_ok = True
|
|
for package, name in required_packages.items():
|
|
try:
|
|
__import__(package)
|
|
print(f"[OK] {name}: Installed")
|
|
except ImportError:
|
|
print(f"[ERROR] {name}: Not installed")
|
|
all_ok = False
|
|
|
|
return all_ok
|
|
|
|
|
|
def check_env_file():
|
|
"""Check environment file"""
|
|
print("\nChecking environment configuration...")
|
|
|
|
env_file = Path('.env')
|
|
env_example = Path('.env.example')
|
|
|
|
if not env_example.exists():
|
|
print("[ERROR] .env.example file not found")
|
|
return False
|
|
|
|
print("[OK] .env.example exists")
|
|
|
|
if not env_file.exists():
|
|
print("[WARNING] .env file not found. Please copy from .env.example and configure")
|
|
print(" Command: cp .env.example .env")
|
|
return False
|
|
|
|
print("[OK] .env file exists")
|
|
|
|
# Check API Key
|
|
with open(env_file, 'r', encoding='utf-8') as f:
|
|
content = f.read()
|
|
if 'DASHSCOPE_API_KEY=your_dashscope_api_key_here' in content:
|
|
print("[WARNING] Please configure valid DashScope API Key in .env file")
|
|
return False
|
|
elif 'DASHSCOPE_API_KEY=' in content:
|
|
print("[OK] DashScope API Key configured")
|
|
|
|
return True
|
|
|
|
|
|
def check_project_structure():
|
|
"""Check project structure"""
|
|
print("\nChecking project structure...")
|
|
|
|
required_files = [
|
|
'main.py',
|
|
'agents/__init__.py',
|
|
'agents/pm_agent.py',
|
|
'agents/qa_agent.py',
|
|
'agents/dev_agent.py',
|
|
'crews/__init__.py',
|
|
'crews/sdlc_crew.py',
|
|
'models/__init__.py',
|
|
'models/qwen_config.py',
|
|
'static/index.html',
|
|
'requirements.txt'
|
|
]
|
|
|
|
all_ok = True
|
|
for file_path in required_files:
|
|
if Path(file_path).exists():
|
|
print(f"[OK] {file_path}")
|
|
else:
|
|
print(f"[ERROR] {file_path} not found")
|
|
all_ok = False
|
|
|
|
return all_ok
|
|
|
|
|
|
def main():
|
|
"""Main function"""
|
|
print("=" * 60)
|
|
print("SDLC Agent Demo - Configuration Check")
|
|
print("=" * 60)
|
|
|
|
checks = [
|
|
check_python_version(),
|
|
check_dependencies(),
|
|
check_env_file(),
|
|
check_project_structure()
|
|
]
|
|
|
|
print("\n" + "=" * 60)
|
|
if all(checks):
|
|
print("All checks passed! Ready to start the service.")
|
|
print("\nStart command:")
|
|
print(" uvicorn main:app --reload --host 0.0.0.0 --port 8000")
|
|
print("\nAccess URL:")
|
|
print(" http://localhost:8000/static/index.html")
|
|
else:
|
|
print("Some checks failed. Please fix the issues first.")
|
|
print("=" * 60)
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|