Spaces:
Sleeping
Sleeping
hugh2023
Add multi-modal agent system with media analysis, web scraping, and enhanced configuration management
adec1cb | #!/usr/bin/env python3 | |
| """ | |
| 多模态智能体系统启动脚本 | |
| """ | |
| import os | |
| import sys | |
| import argparse | |
| from pathlib import Path | |
| # 添加项目根目录到Python路径 | |
| sys.path.append(os.path.dirname(os.path.abspath(__file__))) | |
| from config import Config | |
| def check_environment(): | |
| """检查运行环境""" | |
| print("🔍 检查运行环境...") | |
| # 检查Python版本 | |
| if sys.version_info < (3, 8): | |
| print("❌ Python版本过低,需要Python 3.8+") | |
| return False | |
| print(f"✅ Python版本: {sys.version}") | |
| # 检查必要的环境变量 | |
| if not Config.validate(): | |
| print("❌ 环境变量配置不完整") | |
| print("请设置以下环境变量:") | |
| print(" - OPENAI_API_KEY") | |
| return False | |
| print("✅ 环境变量配置正确") | |
| # 检查依赖包 | |
| try: | |
| import torch | |
| import transformers | |
| import langchain | |
| import langgraph | |
| import gradio | |
| print("✅ 核心依赖包已安装") | |
| except ImportError as e: | |
| print(f"❌ 缺少依赖包: {e}") | |
| print("请运行: pip install -r requirements.txt") | |
| return False | |
| return True | |
| def run_web_interface(): | |
| """运行Web界面""" | |
| print("🌐 启动Web界面...") | |
| from app import demo | |
| demo.launch(debug=Config.DEBUG, share=False) | |
| def run_test(): | |
| """运行测试""" | |
| print("🧪 运行系统测试...") | |
| from test_agent import main as test_main | |
| test_main() | |
| def run_interactive(): | |
| """运行交互式模式""" | |
| print("💬 启动交互式模式...") | |
| from app import MultiModalAgent | |
| agent = MultiModalAgent() | |
| print("智能体已初始化,输入 'quit' 退出") | |
| while True: | |
| try: | |
| question = input("\n请输入问题: ").strip() | |
| if question.lower() in ['quit', 'exit', 'q']: | |
| break | |
| if not question: | |
| continue | |
| print("🤖 正在处理...") | |
| answer = agent(question) | |
| print(f"回答: {answer}") | |
| except KeyboardInterrupt: | |
| print("\n👋 再见!") | |
| break | |
| except Exception as e: | |
| print(f"❌ 错误: {str(e)}") | |
| def main(): | |
| """主函数""" | |
| parser = argparse.ArgumentParser(description="多模态智能体系统") | |
| parser.add_argument( | |
| "--mode", | |
| choices=["web", "test", "interactive"], | |
| default="web", | |
| help="运行模式: web(Web界面), test(测试), interactive(交互式)" | |
| ) | |
| parser.add_argument( | |
| "--debug", | |
| action="store_true", | |
| help="启用调试模式" | |
| ) | |
| args = parser.parse_args() | |
| # 设置调试模式 | |
| if args.debug: | |
| os.environ["DEBUG"] = "True" | |
| os.environ["LOG_LEVEL"] = "DEBUG" | |
| print("🚀 多模态智能体系统") | |
| print("=" * 40) | |
| # 检查环境 | |
| if not check_environment(): | |
| sys.exit(1) | |
| # 打印配置 | |
| Config.print_config() | |
| # 根据模式运行 | |
| try: | |
| if args.mode == "web": | |
| run_web_interface() | |
| elif args.mode == "test": | |
| run_test() | |
| elif args.mode == "interactive": | |
| run_interactive() | |
| except KeyboardInterrupt: | |
| print("\n👋 程序被用户中断") | |
| except Exception as e: | |
| print(f"❌ 运行错误: {str(e)}") | |
| if Config.DEBUG: | |
| import traceback | |
| traceback.print_exc() | |
| if __name__ == "__main__": | |
| main() | |