80 lines
2.5 KiB
Python
80 lines
2.5 KiB
Python
"""
|
||
实时文件保存演示脚本
|
||
展示如何在对话过程中实时创建文件
|
||
"""
|
||
import os
|
||
import sys
|
||
from pathlib import Path
|
||
|
||
sys.path.insert(0, str(Path(__file__).parent))
|
||
|
||
from autogen_sdls_system import AutoGenSDLCSystem
|
||
|
||
|
||
def demo_realtime_saving():
|
||
"""演示实时文件保存功能"""
|
||
print("=" * 70)
|
||
print("🚀 AutoGen SDLC - 实时文件保存演示")
|
||
print("=" * 70)
|
||
|
||
# 检查 API Key
|
||
api_key = os.getenv("DASHSCOPE_API_KEY")
|
||
if not api_key:
|
||
print("\n❌ 错误:未设置 DASHSCOPE_API_KEY 环境变量")
|
||
print("请运行:$env:DASHSCOPE_API_KEY='your_api_key' (PowerShell)")
|
||
print("或:export DASHSCOPE_API_KEY='your_api_key' (Linux/Mac)")
|
||
return
|
||
|
||
# 创建系统实例,使用独立的工作目录
|
||
workspace = "workspace_realtime_demo"
|
||
print(f"\n📂 工作目录:{Path(workspace).absolute()}")
|
||
|
||
system = AutoGenSDLCSystem(
|
||
api_key=api_key,
|
||
workspace_dir=workspace
|
||
)
|
||
|
||
# 简单需求用于快速演示
|
||
requirement = """
|
||
我需要一个 Python 工具函数库,包含以下功能:
|
||
1. factorial(n): 计算阶乘
|
||
2. is_prime(n): 判断质数
|
||
3. fibonacci(n): 生成斐波那契数列前 n 项
|
||
要求:每个函数都有类型注解和完整文档字符串
|
||
"""
|
||
|
||
print(f"\n📋 需求:{requirement}")
|
||
print("\n💡 提示:您会看到文件在对话过程中被实时创建...\n")
|
||
|
||
# 运行工作流
|
||
result = system.run_workflow(requirement, max_round=15)
|
||
|
||
# 显示结果
|
||
print("\n" + "=" * 70)
|
||
if result["success"]:
|
||
print("✅ 工作流成功完成!")
|
||
print(f"\n📄 摘要:\n{result['summary'][:500]}...")
|
||
|
||
# 显示生成的文件
|
||
print(f"\n📁 已保存 {len(result['saved_files'])} 个文件:")
|
||
for file in result["saved_files"]:
|
||
exists = "✓" if Path(file).exists() else "✗"
|
||
print(f" {exists} {file}")
|
||
|
||
# 显示工作目录内容
|
||
print(f"\n📂 工作目录内容:")
|
||
workspace_path = Path(workspace)
|
||
if workspace_path.exists():
|
||
for item in workspace_path.iterdir():
|
||
if item.is_file():
|
||
size = f"({item.stat().st_size} bytes)"
|
||
print(f" 📄 {item.name} {size}")
|
||
else:
|
||
print(f"❌ 工作流失败:{result.get('error', '未知错误')}")
|
||
|
||
print("\n" + "=" * 70)
|
||
|
||
|
||
if __name__ == "__main__":
|
||
demo_realtime_saving()
|