# -*- coding: utf-8 -*- """ 快速启动脚本 - 验证安装并展示基本功能 """ import sys from pathlib import Path def check_installation(): """检查依赖包安装情况""" print("=" * 60) print("Checking environment configuration") print("=" * 60) required_packages = { "autogen": "pyautogen", "dashscope": "dashscope", "streamlit": "streamlit", "pytest": "pytest" } missing = [] installed = [] for package, install_name in required_packages.items(): try: __import__(package) installed.append(install_name) print(f"[OK] {install_name}: Installed") except ImportError: missing.append(install_name) print(f"[MISSING] {install_name}: Not installed") print() if missing: print(f"Warning: Missing dependencies: {', '.join(missing)}") print(f"Tip: Run: pip install -r requirements.txt") return False else: print("All dependencies installed successfully!") return True def check_api_key(): """检查 API Key 配置""" import os print("\n" + "=" * 60) print("Checking API Key configuration") print("=" * 60) api_key = os.getenv("DASHSCOPE_API_KEY") if not api_key: print("[ERROR] DASHSCOPE_API_KEY environment variable not set") print("\nHow to set:") print(" Windows (PowerShell):") print(' $env:DASHSCOPE_API_KEY="your_api_key_here"') print("\n Linux/Mac:") print(' export DASHSCOPE_API_KEY="your_api_key_here"') return False else: masked_key = api_key[:4] + "..." + api_key[-4:] if len(api_key) > 8 else "***" print(f"[OK] API Key configured: {masked_key}") return True def show_project_structure(): """展示项目结构""" print("\n" + "=" * 60) print("Project Structure") print("=" * 60) structure = """ project/ +--- agents/ # Agent modules | +--- pm_agent.py # Product Manager Agent | +--- qa_agent.py # QA Engineer Agent | +--- dev_agent.py # Developer Agent | +--- orchestrator.py # Orchestrator Agent +--- config/ # Configuration | +--- llm_config.py # LLM config & prompts +--- frontend/ # Frontend UI | +--- streamlit_app.py +--- utils/ # Utilities | +--- logger.py # Logging | +--- callback_handler.py +--- tests/ # Unit tests | +--- test_agents.py +--- workspace/ # Working directory +--- logs/ # Log directory +--- autogen_sdls_system.py # Main entry +--- autogen_self_healing_demo.py # Self-healing demo +--- usage_examples.py # Usage examples +--- requirements.txt # Dependencies """ print(structure) def show_usage_guide(): """展示使用指南""" print("=" * 60) print("Usage Guide") print("=" * 60) guide = """ [Method 1] Run full SDLC workflow: python autogen_sdls_system.py [Method 2] Start Streamlit frontend: streamlit run frontend/streamlit_app.py [Method 3] Self-healing feature demo: python autogen_self_healing_demo.py [Method 4] View usage examples: python usage_examples.py [Method 5] Run unit tests: pytest tests/test_agents.py -v """ print(guide) def demo_basic_import(): """演示基本导入""" print("\n" + "=" * 60) print("Testing basic functionality") print("=" * 60) try: from config.llm_config import get_llm_config, PM_PROMPT, QA_PROMPT print("[OK] Configuration module imported") # 测试配置生成 config = get_llm_config(model="qwen3.5-flash", api_key="test") print(f"[OK] LLM config generated: {config['config_list'][0]['model']}") # 测试提示词 print(f"[OK] PM prompt length: {len(PM_PROMPT)} chars") print(f"[OK] QA prompt length: {len(QA_PROMPT)} chars") return True except Exception as e: print(f"[ERROR] Import failed: {e}") return False def main(): """主函数""" print("\n") print("=" * 60) print(" " * 15 + "AutoGen SDLC System") print(" " * 10 + "Powered by AutoGen + Qwen3.5-flash") print("=" * 60) print() # 检查环境 env_ok = check_installation() api_ok = check_api_key() # 展示项目结构 show_project_structure() # 展示使用指南 show_usage_guide() # 测试基本功能 if env_ok: demo_ok = demo_basic_import() if demo_ok: print("\nSystem initialization completed!") print("\nNext steps:") print(" 1. Get API Key from Alibaba Cloud DashScope console") print(" 2. Set env var: export DASHSCOPE_API_KEY='your_key'") print(" 3. Run: python autogen_sdls_system.py") print("\n" + "=" * 60) print("For details, see: README.md") print("=" * 60) print() if __name__ == "__main__": main()